diff --git a/apps/i2psnark/java/src/org/klomp/snark/MetaInfo.java b/apps/i2psnark/java/src/org/klomp/snark/MetaInfo.java
index 8ec5442dd00541bf16007ce9989e8b10d3462b38..dd16ec8a98dc36496686c61ae9e656077afcfade 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/MetaInfo.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/MetaInfo.java
@@ -156,11 +156,11 @@ public class MetaInfo
     if (val == null) {
         this.announce_list = null;
     } else {
-        this.announce_list = new ArrayList();
+        this.announce_list = new ArrayList<List<String>>();
         List<BEValue> bl1 = val.getList();
         for (BEValue bev : bl1) {
             List<BEValue> bl2 = bev.getList();
-            List<String> sl2 = new ArrayList();           
+            List<String> sl2 = new ArrayList<String>();           
             for (BEValue bev2 : bl2) {
                 sl2.add(bev2.getString());
             }
@@ -259,9 +259,9 @@ public class MetaInfo
         if (size == 0)
           throw new InvalidBEncodingException("zero size files list");
 
-        List<List<String>> m_files = new ArrayList(size);
-        List<List<String>> m_files_utf8 = new ArrayList(size);
-        List<Long> m_lengths = new ArrayList(size);
+        List<List<String>> m_files = new ArrayList<List<String>>(size);
+        List<List<String>> m_files_utf8 = new ArrayList<List<String>>(size);
+        List<Long> m_lengths = new ArrayList<Long>(size);
         long l = 0;
         for (int i = 0; i < list.size(); i++)
           {
@@ -287,7 +287,7 @@ public class MetaInfo
             if (path_length == 0)
               throw new InvalidBEncodingException("zero size file path list");
 
-            List<String> file = new ArrayList(path_length);
+            List<String> file = new ArrayList<String>(path_length);
             Iterator<BEValue> it = path_list.iterator();
             while (it.hasNext()) {
                 String s = it.next().getString();
@@ -310,7 +310,7 @@ public class MetaInfo
                 path_list = val.getList();
                 path_length = path_list.size();
                 if (path_length > 0) {
-                    file = new ArrayList(path_length);
+                    file = new ArrayList<String>(path_length);
                     it = path_list.iterator();
                     while (it.hasNext())
                         file.add(it.next().getString());
@@ -573,10 +573,10 @@ public class MetaInfo
    */
   public MetaInfo reannounce(String announce) throws InvalidBEncodingException
   {
-        Map<String, BEValue> m = new HashMap();
+        Map<String, BEValue> m = new HashMap<String, BEValue>();
         if (announce != null)
             m.put("announce", new BEValue(DataHelper.getUTF8(announce)));
-        Map info = createInfoMap();
+        Map<String, BEValue> info = createInfoMap();
         m.put("info", new BEValue(info));
         return new MetaInfo(m);
   }
diff --git a/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java b/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java
index c245c97a0bc3949bf06a7652cd4ccd8b647930b2..d6e00f79712d2ff7e3210eaf4bd4588bf5ace83e 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java
@@ -425,7 +425,7 @@ public class SnarkManager implements CompleteListener {
         String i2cpHost = _config.getProperty(PROP_I2CP_HOST);
         int i2cpPort = getInt(PROP_I2CP_PORT, 7654);
         String opts = _config.getProperty(PROP_I2CP_OPTS);
-        Map i2cpOpts = new HashMap();
+        Map<String, String> i2cpOpts = new HashMap<String, String>();
         if (opts != null) {
             StringTokenizer tok = new StringTokenizer(opts, " ");
             while (tok.hasMoreTokens()) {
@@ -1653,7 +1653,7 @@ public class SnarkManager implements CompleteListener {
      */
     private void monitorTorrents(File dir) {
         String fileNames[] = dir.list(TorrentFilenameFilter.instance());
-        List<String> foundNames = new ArrayList(0);
+        List<String> foundNames = new ArrayList<String>(0);
         if (fileNames != null) {
             for (int i = 0; i < fileNames.length; i++) {
                 try {
@@ -1740,7 +1740,7 @@ public class SnarkManager implements CompleteListener {
      *  @since 0.9.1
      */
     public List<Tracker> getSortedTrackers() { 
-        List<Tracker> rv = new ArrayList(_trackerMap.values());
+        List<Tracker> rv = new ArrayList<Tracker>(_trackerMap.values());
         Collections.sort(rv, new IgnoreCaseComparator());
         return rv;
     }
diff --git a/apps/i2psnark/java/src/org/klomp/snark/bencode/BDecoder.java b/apps/i2psnark/java/src/org/klomp/snark/bencode/BDecoder.java
index 2dc4e57b102c8f0473e96eb5fec609a17ea71662..db00813641b3eab2e4c98d8687cd0788e68a0778 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/bencode/BDecoder.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/bencode/BDecoder.java
@@ -281,7 +281,7 @@ public class BDecoder
                                           + (char)c + "'");
     indicator = 0;
 
-    List result = new ArrayList();
+    List<BEValue> result = new ArrayList<BEValue>();
     c = getNextIndicator();
     while (c != 'e')
       {
diff --git a/apps/i2psnark/java/src/org/klomp/snark/bencode/BEncoder.java b/apps/i2psnark/java/src/org/klomp/snark/bencode/BEncoder.java
index 9584b0d9db322e8fa1276be415cc190e46bee4a3..5e8409344f5f228735923d2bd9f90cddec536211 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/bencode/BEncoder.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/bencode/BEncoder.java
@@ -175,7 +175,7 @@ public class BEncoder
 
     // Keys must be sorted. XXX - But is this the correct order?
     Set<String> s = m.keySet();
-    List<String> l = new ArrayList(s);
+    List<String> l = new ArrayList<String>(s);
     Collections.sort(l);
 
     Iterator<String> it = l.iterator();
diff --git a/apps/i2psnark/java/src/org/klomp/snark/web/BasicServlet.java b/apps/i2psnark/java/src/org/klomp/snark/web/BasicServlet.java
index 1383ff2bb68940362b8ba692fd4b008f4f2b1047..593f7e21d3aa3f941e3d1bc959fe089ebcdd6726 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/web/BasicServlet.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/web/BasicServlet.java
@@ -27,7 +27,6 @@ import java.util.Enumeration;
 import java.util.List;
 
 import javax.servlet.ServletConfig;
-import javax.servlet.ServletContext;
 import javax.servlet.ServletException;
 import javax.servlet.UnavailableException;
 import javax.servlet.http.HttpServlet;
@@ -325,7 +324,7 @@ class BasicServlet extends HttpServlet
         long content_length = content.getContentLength();
 
         // see if there are any range headers
-        Enumeration reqRanges = request.getHeaders("Range");
+        Enumeration<?> reqRanges = request.getHeaders("Range");
 
         if (reqRanges == null || !reqRanges.hasMoreElements()) {
             // if there were no ranges, send entire entity
diff --git a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
index 222935c0a4848b32f4ffcc4fa17b439c1567d95c..bbec045e1c3c4d1b733257868210e708cb00e9ca 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
@@ -1,12 +1,8 @@
 package org.klomp.snark.web;
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.PrintWriter;
-import java.io.UnsupportedEncodingException;
-import java.net.URI;
-import java.net.URISyntaxException;
 import java.text.Collator;
 import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
@@ -16,7 +12,6 @@ import java.util.Collections;
 import java.util.Comparator;
 import java.util.Date;
 import java.util.Enumeration;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
@@ -26,14 +21,11 @@ import java.util.TreeSet;
 
 import javax.servlet.ServletConfig;
 import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import net.i2p.I2PAppContext;
 import net.i2p.data.Base64;
 import net.i2p.data.DataHelper;
-import net.i2p.util.I2PAppThread;
 import net.i2p.util.Log;
 
 import org.klomp.snark.I2PSnarkUtil;
@@ -758,8 +750,7 @@ public class I2PSnarkServlet extends BasicServlet {
             if (torrent != null) {
                 byte infoHash[] = Base64.decode(torrent);
                 if ( (infoHash != null) && (infoHash.length == 20) ) { // valid sha1
-                    for (Iterator iter = _manager.listTorrentFiles().iterator(); iter.hasNext(); ) {
-                        String name = (String)iter.next();
+                    for (String name : _manager.listTorrentFiles() ) {
                         Snark snark = _manager.getTorrent(name);
                         if ( (snark != null) && (DataHelper.eq(infoHash, snark.getInfoHash())) ) {
                             _manager.stopTorrent(snark, false);
@@ -781,8 +772,7 @@ public class I2PSnarkServlet extends BasicServlet {
             if (torrent != null) {
                 byte infoHash[] = Base64.decode(torrent);
                 if ( (infoHash != null) && (infoHash.length == 20) ) { // valid sha1
-                    for (Iterator iter = _manager.listTorrentFiles().iterator(); iter.hasNext(); ) {
-                        String name = (String)iter.next();
+                    for (String name : _manager.listTorrentFiles() ) {
                         Snark snark = _manager.getTorrent(name);
                         if ( (snark != null) && (DataHelper.eq(infoHash, snark.getInfoHash())) ) {
                             MetaInfo meta = snark.getMetaInfo();
@@ -809,8 +799,7 @@ public class I2PSnarkServlet extends BasicServlet {
             if (torrent != null) {
                 byte infoHash[] = Base64.decode(torrent);
                 if ( (infoHash != null) && (infoHash.length == 20) ) { // valid sha1
-                    for (Iterator iter = _manager.listTorrentFiles().iterator(); iter.hasNext(); ) {
-                        String name = (String)iter.next();
+                    for (String name : _manager.listTorrentFiles() ) {
                         Snark snark = _manager.getTorrent(name);
                         if ( (snark != null) && (DataHelper.eq(infoHash, snark.getInfoHash())) ) {
                             MetaInfo meta = snark.getMetaInfo();
@@ -849,7 +838,7 @@ public class I2PSnarkServlet extends BasicServlet {
                                 }
                             }
                             // step 2 make Set of dirs with reverse sort
-                            Set<File> dirs = new TreeSet(Collections.reverseOrder());
+                            Set<File> dirs = new TreeSet<File>(Collections.reverseOrder());
                             for (List<String> list : files) {
                                 for (int i = 1; i < list.size(); i++) {
                                     dirs.add(Storage.getFileFromNames(f, list.subList(0, i)));
@@ -922,8 +911,8 @@ public class I2PSnarkServlet extends BasicServlet {
                     if (announceURL.equals("none"))
                         announceURL = null;
                     _lastAnnounceURL = announceURL;
-                    List<String> backupURLs = new ArrayList();
-                    Enumeration e = req.getParameterNames();
+                    List<String> backupURLs = new ArrayList<String>();
+                    Enumeration<?> e = req.getParameterNames();
                     while (e.hasMoreElements()) {
                          Object o = e.nextElement();
                          if (!(o instanceof String))
@@ -955,7 +944,7 @@ public class I2PSnarkServlet extends BasicServlet {
                             _manager.addMessage(_("Error - Cannot mix private and public trackers in a torrent"));
                             return;
                         }
-                        announceList = new ArrayList(backupURLs.size());
+                        announceList = new ArrayList<List<String>>(backupURLs.size());
                         for (String url : backupURLs) {
                             announceList.add(Collections.singletonList(url));
                         }
@@ -1017,10 +1006,10 @@ public class I2PSnarkServlet extends BasicServlet {
         if (action.equals(_("Delete selected")) || action.equals(_("Save tracker configuration"))) {
             boolean changed = false;
             Map<String, Tracker> trackers = _manager.getTrackerMap();
-            List<String> removed = new ArrayList();
-            List<String> open = new ArrayList();
-            List<String> priv = new ArrayList();
-            Enumeration e = req.getParameterNames();
+            List<String> removed = new ArrayList<String>();
+            List<String> open = new ArrayList<String>();
+            List<String> priv = new ArrayList<String>();
+            Enumeration<?> e = req.getParameterNames();
             while (e.hasMoreElements()) {
                  Object o = e.nextElement();
                  if (!(o instanceof String))
@@ -1045,7 +1034,7 @@ public class I2PSnarkServlet extends BasicServlet {
             }
 
             open.removeAll(removed);
-            List<String> oldOpen = new ArrayList(_manager.util().getOpenTrackers());
+            List<String> oldOpen = new ArrayList<String>(_manager.util().getOpenTrackers());
             Collections.sort(oldOpen);
             Collections.sort(open);
             if (!open.equals(oldOpen))
@@ -1054,7 +1043,7 @@ public class I2PSnarkServlet extends BasicServlet {
             priv.removeAll(removed);
             // open trumps private
             priv.removeAll(open);
-            List<String> oldPriv = new ArrayList(_manager.getPrivateTrackers());
+            List<String> oldPriv = new ArrayList<String>(_manager.getPrivateTrackers());
             Collections.sort(oldPriv);
             Collections.sort(priv);
             if (!priv.equals(oldPriv))
@@ -1074,11 +1063,11 @@ public class I2PSnarkServlet extends BasicServlet {
                     _manager.saveTrackerMap();
                     // open trumps private
                     if (req.getParameter("_add_open_") != null) {
-                        List newOpen = new ArrayList(_manager.util().getOpenTrackers());
+                        List<String> newOpen = new ArrayList<String>(_manager.util().getOpenTrackers());
                         newOpen.add(aurl);
                         _manager.saveOpenTrackers(newOpen);
                     } else if (req.getParameter("_add_private_") != null) {
-                        List newPriv = new ArrayList(_manager.getPrivateTrackers());
+                        List<String> newPriv = new ArrayList<String>(_manager.getPrivateTrackers());
                         newPriv.add(aurl);
                         _manager.savePrivateTrackers(newPriv);
                     }
@@ -1141,7 +1130,7 @@ public class I2PSnarkServlet extends BasicServlet {
     }
 
     private List<Snark> getSortedSnarks(HttpServletRequest req) {
-        ArrayList<Snark> rv = new ArrayList(_manager.getTorrents());
+        ArrayList<Snark> rv = new ArrayList<Snark>(_manager.getTorrents());
         Collections.sort(rv, new TorrentNameComparator());
         return rv;
     }
@@ -1916,7 +1905,7 @@ public class I2PSnarkServlet extends BasicServlet {
         //out.write("port: <input type=\"text\" name=\"eepPort\" value=\""
         //          + _manager.util().getEepProxyPort() + "\" size=\"5\" maxlength=\"5\" /><br>\n");
 
-        Map<String, String> options = new TreeMap(_manager.util().getI2CPOptions());
+        Map<String, String> options = new TreeMap<String, String>(_manager.util().getI2CPOptions());
         out.write("<tr><td>");
         out.write(_("Inbound Settings"));
         out.write(":<td>");
@@ -2388,7 +2377,7 @@ public class I2PSnarkServlet extends BasicServlet {
                    .append(":</b> ")
                    .append(formatSize(needed));
             if (meta != null) {
-                List files = meta.getFiles();
+                List<List<String>> files = meta.getFiles();
                 int fileCount = files != null ? files.size() : 1;
                 buf.append("&nbsp;<img alt=\"\" border=\"0\" src=\"" + _imgPath + "file.png\" >&nbsp;<b>")
                    .append(_("Files"))
diff --git a/apps/i2psnark/java/src/org/klomp/snark/web/InclusiveByteRange.java b/apps/i2psnark/java/src/org/klomp/snark/web/InclusiveByteRange.java
index 17ae473a2a4c9d1eeb11a0f0e76b6b69e927eb47..e71e5e3bcc86e110fba4490a54916e98cc9fcec9 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/web/InclusiveByteRange.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/web/InclusiveByteRange.java
@@ -73,7 +73,7 @@ public class InclusiveByteRange
      * @param size Size of the resource.
      * @return List of satisfiable ranges
      */
-    public static List<InclusiveByteRange> satisfiableRanges(Enumeration headers, long size)
+    public static List<InclusiveByteRange> satisfiableRanges(Enumeration<?> headers, long size)
     {
         List<InclusiveByteRange> satRanges = null;
         
@@ -128,7 +128,7 @@ public class InclusiveByteRange
                         if (first < size)
                         {
                             if (satRanges == null)
-                                satRanges = new ArrayList(4);
+                                satRanges = new ArrayList<InclusiveByteRange>(4);
                             InclusiveByteRange range = new InclusiveByteRange(first,last);
                             satRanges.add(range);
                         }
diff --git a/apps/i2psnark/java/src/org/klomp/snark/web/MimeTypes.java b/apps/i2psnark/java/src/org/klomp/snark/web/MimeTypes.java
index e24764ff5e662eeda41684077fdbcf3aa234d9f4..f0b9af7dfdc8bd4a41f827c037f6de6ef8767a45 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/web/MimeTypes.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/web/MimeTypes.java
@@ -21,8 +21,6 @@ import java.util.MissingResourceException;
 import java.util.ResourceBundle;
 import java.util.concurrent.ConcurrentHashMap;
 
-import javax.servlet.ServletContext;
-
 
 /* ------------------------------------------------------------ */
 /**
@@ -48,7 +46,7 @@ class MimeTypes
     private final Map<String, String> _mimeMap;
 
     public MimeTypes() {
-        _mimeMap = new ConcurrentHashMap();
+        _mimeMap = new ConcurrentHashMap<String, String>();
     }
 
     /* ------------------------------------------------------------ */