diff --git a/apps/desktopgui/src/net/i2p/desktopgui/util/ConfigurationManager.java b/apps/desktopgui/src/net/i2p/desktopgui/util/ConfigurationManager.java
index d514f314a150470c4fb7bc3e0dc74a71a3f3028c..cc0516bd61581d88ae63109fa03914a0203a3145 100644
--- a/apps/desktopgui/src/net/i2p/desktopgui/util/ConfigurationManager.java
+++ b/apps/desktopgui/src/net/i2p/desktopgui/util/ConfigurationManager.java
@@ -78,7 +78,7 @@ public class ConfigurationManager {
 	 * @return The value of a configuration: true if found, defaultValue if not found.
 	 */
 	public boolean getBooleanConfiguration(String arg, boolean defaultValue) {
-		Boolean value = ((Boolean) booleanConfigurations.get("startWithI2P"));
+		Boolean value = booleanConfigurations.get("startWithI2P");
 		System.out.println(value);
 		if(value != null) {
 			return value;
diff --git a/apps/i2psnark/java/src/org/klomp/snark/Peer.java b/apps/i2psnark/java/src/org/klomp/snark/Peer.java
index 683b3f2217f2bc98b05460a15243d90e67fd8c41..ab15bb85ca070b7674b6aa46de1a8689be73a160 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/Peer.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/Peer.java
@@ -194,9 +194,8 @@ public class Peer implements Comparable<Peer>
    * Compares the PeerIDs.
    * @deprecated unused?
    */
-  public int compareTo(Peer o)
+  public int compareTo(Peer p)
   {
-    Peer p = (Peer)o;
     int rv = peerID.compareTo(p.peerID);
     if (rv == 0) {
         if (_id > p._id) return 1;
diff --git a/apps/i2psnark/java/src/org/klomp/snark/TrackerInfo.java b/apps/i2psnark/java/src/org/klomp/snark/TrackerInfo.java
index 09b5b64fc62a0dfaff4388164ac6f437f46a0f58..0de45da06e9211b2e29a86f84b17de94bf61a609 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/TrackerInfo.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/TrackerInfo.java
@@ -62,7 +62,7 @@ class TrackerInfo
   private TrackerInfo(Map<String, BEValue> m, byte[] my_id, byte[] infohash, MetaInfo metainfo, I2PSnarkUtil util)
     throws IOException
   {
-    BEValue reason = (BEValue)m.get("failure reason");
+    BEValue reason = m.get("failure reason");
     if (reason != null)
       {
         failure_reason = reason.getString();
@@ -72,13 +72,13 @@ class TrackerInfo
     else
       {
         failure_reason = null;
-        BEValue beInterval = (BEValue)m.get("interval");
+        BEValue beInterval = m.get("interval");
         if (beInterval == null)
           throw new InvalidBEncodingException("No interval given");
         else
           interval = beInterval.getInt();
 
-        BEValue bePeers = (BEValue)m.get("peers");
+        BEValue bePeers = m.get("peers");
         if (bePeers == null) {
           peers = Collections.emptySet();
         } else {
@@ -93,14 +93,14 @@ class TrackerInfo
             peers = p;
         }
 
-        BEValue bev = (BEValue)m.get("complete");
+        BEValue bev = m.get("complete");
         if (bev != null) try {
           complete = bev.getInt();
           if (complete < 0)
               complete = 0;
         } catch (InvalidBEncodingException ibe) {}
 
-        bev = (BEValue)m.get("incomplete");
+        bev = m.get("incomplete");
         if (bev != null) try {
           incomplete = bev.getInt();
           if (incomplete < 0)
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 ae39a7937b7b3cf30a622bdb1567400b7053c36a..db5ec397fd5c5b23e7a33e43e7857a32c6ac5147 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java
@@ -204,8 +204,7 @@ public class I2PSnarkServlet extends BasicServlet {
                     resp.sendError(404);
                 } else {
                     String base = addPaths(req.getRequestURI(), "/");
-                    @SuppressWarnings("unchecked") // TODO-Java6: Remove cast, return type is correct
-                    String listing = getListHTML(resource, base, true, method.equals("POST") ? (Map<String, String[]>) req.getParameterMap() : null);
+                    String listing = getListHTML(resource, base, true, method.equals("POST") ? req.getParameterMap() : null);
                     if (method.equals("POST")) {
                         // P-R-G
                         sendRedirect(req, resp, "");
@@ -547,7 +546,7 @@ public class I2PSnarkServlet extends BasicServlet {
 
         String stParamStr = stParam == null ? "" : "&amp;st=" + stParam;
         for (int i = 0; i < total; i++) {
-            Snark snark = (Snark)snarks.get(i);
+            Snark snark = snarks.get(i);
             boolean showPeers = showDebug || "1".equals(peerParam) || Base64.encode(snark.getInfoHash()).equals(peerParam);
             boolean hide = i < start || i >= start + pageSize;
             displaySnark(out, snark, uri, i, stats, showPeers, isDegraded, noThinsp, showDebug, hide, stParamStr);
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/TunnelRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/TunnelRenderer.java
index af61baae32e3e03471afc5dd96a43aa4715a0a4c..b9f02e5dfb76ca39ab2540fd81a691114f11fef9 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/TunnelRenderer.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/TunnelRenderer.java
@@ -78,7 +78,7 @@ public class TunnelRenderer {
         int inactive = 0;
         int displayed = 0;
         for (int i = 0; i < participating.size(); i++) {
-            HopConfig cfg = (HopConfig)participating.get(i);
+            HopConfig cfg = participating.get(i);
             long count = cfg.getProcessedMessagesCount();
             if (count <= 0) {
                 inactive++;
diff --git a/apps/streaming/java/src/net/i2p/client/streaming/impl/PacketQueue.java b/apps/streaming/java/src/net/i2p/client/streaming/impl/PacketQueue.java
index ea4418a36542319beebf1a6b7621b29315c6dd40..1fdbb943f981e1e206c9db7405b9cef3e14544c3 100644
--- a/apps/streaming/java/src/net/i2p/client/streaming/impl/PacketQueue.java
+++ b/apps/streaming/java/src/net/i2p/client/streaming/impl/PacketQueue.java
@@ -216,7 +216,7 @@ class PacketQueue implements SendMessageStatusListener {
             _connectionManager.getPacketHandler().displayPacket(packet, "SEND", suffix);
             if (I2PSocketManagerFull.pcapWriter != null &&
                 _context.getBooleanProperty(I2PSocketManagerFull.PROP_PCAP))
-                ((PacketLocal)packet).logTCPDump();
+                packet.logTCPDump();
         }
         
         if ( (packet.getSequenceNum() == 0) && (!packet.isFlagSet(Packet.FLAG_SYNCHRONIZE)) ) {
diff --git a/apps/susimail/src/src/i2p/susi/webmail/RequestWrapper.java b/apps/susimail/src/src/i2p/susi/webmail/RequestWrapper.java
index aa45beeed4252f521bcbcbcfdea1891c085863c2..1e3cdb70b1ea22963e966f763c4d55500614a4ac 100644
--- a/apps/susimail/src/src/i2p/susi/webmail/RequestWrapper.java
+++ b/apps/susimail/src/src/i2p/susi/webmail/RequestWrapper.java
@@ -154,7 +154,7 @@ class RequestWrapper {
 	{
 		String result = defaultValue;
 		if( multiPartRequest != null ) {
-			String str = (String)cache.get( name );
+			String str = cache.get(name);
 			if( str != null ) {
 				result = str;
 			}
diff --git a/apps/susimail/src/src/i2p/susi/webmail/WebMail.java b/apps/susimail/src/src/i2p/susi/webmail/WebMail.java
index b2b3797a6ec2f211dbfe9b2e5a1751f155bff485..eee7e9fbc66ff81b22fc8718238c96d95d990869 100644
--- a/apps/susimail/src/src/i2p/susi/webmail/WebMail.java
+++ b/apps/susimail/src/src/i2p/susi/webmail/WebMail.java
@@ -1211,7 +1211,7 @@ public class WebMail extends HttpServlet
 			for (Integer item : getCheckedItems(request)) {
 				int n = item.intValue();
 				for( int i = 0; i < sessionObject.attachments.size(); i++ ) {
-					Attachment attachment = (Attachment)sessionObject.attachments.get( i );
+					Attachment attachment = sessionObject.attachments.get(i);
 					if( attachment.hashCode() == n ) {
 						sessionObject.attachments.remove( i );
 						break;
diff --git a/apps/susimail/src/src/org/mortbay/servlet/MultiPartRequest.java b/apps/susimail/src/src/org/mortbay/servlet/MultiPartRequest.java
index c6987ebaef024a737b2207054cca6416f2eabb3a..88bc0296dc5901efdd6fdd412e480c2f5a3c5851 100644
--- a/apps/susimail/src/src/org/mortbay/servlet/MultiPartRequest.java
+++ b/apps/susimail/src/src/org/mortbay/servlet/MultiPartRequest.java
@@ -290,7 +290,7 @@ public class MultiPartRequest
                 {
                     String key = line.substring(0,c).trim().toLowerCase();
                     String value = line.substring(c+1,line.length()).trim();
-                    String ev = (String) part._headers.get(key);
+                    String ev = part._headers.get(key);
                     part._headers.put(key,(ev!=null)?(ev+';'+value):value);
                     //if(log.isDebugEnabled())log.debug(key+": "+value);
                     if (key.equals("content-disposition"))
diff --git a/core/java/src/gnu/crypto/prng/FortunaStandalone.java b/core/java/src/gnu/crypto/prng/FortunaStandalone.java
index 1cff8d71eb1f2a0486509db5e73e71f88228c97f..931649ec0cb8ddddda28dcb269bde412b2204c24 100644
--- a/core/java/src/gnu/crypto/prng/FortunaStandalone.java
+++ b/core/java/src/gnu/crypto/prng/FortunaStandalone.java
@@ -317,7 +317,7 @@ public class FortunaStandalone extends BasePRNGStandalone implements Serializabl
       seeded = false;
       Arrays.fill(key, (byte) 0);
       Arrays.fill(counter, (byte) 0);
-      byte[] seed = (byte[]) attributes.get(SEED);
+      byte[] seed = attributes.get(SEED);
       if (seed != null)
         addRandomBytes(seed);
     }
diff --git a/core/java/src/net/i2p/client/naming/EepGetNamingService.java b/core/java/src/net/i2p/client/naming/EepGetNamingService.java
index 69af4e5ca1482801eb5adb20dfc2a36e293fb3c7..3bc62a4d50bcb13cb5390e9ee3a79f71be5b9818 100644
--- a/core/java/src/net/i2p/client/naming/EepGetNamingService.java
+++ b/core/java/src/net/i2p/client/naming/EepGetNamingService.java
@@ -85,7 +85,7 @@ public class EepGetNamingService extends DummyNamingService {
 
         // lookup
         for (int i = 0; i < URLs.size(); i++) { 
-            String url = (String)URLs.get(i);
+            String url = URLs.get(i);
             String key = fetchAddr(url, hostname);	  	
             if (key != null) {
                 _log.error("Success: " + url + hostname);
diff --git a/core/java/src/net/metanotion/io/block/BlockFile.java b/core/java/src/net/metanotion/io/block/BlockFile.java
index a73c922521bf82126627dce590fe4efff3e499dc..d9613653f66c7c8fedb37eab8e7dd88ba35c2bb9 100644
--- a/core/java/src/net/metanotion/io/block/BlockFile.java
+++ b/core/java/src/net/metanotion/io/block/BlockFile.java
@@ -425,7 +425,7 @@ public class BlockFile {
 	 */
 	public BSkipList getIndex(String name, Serializer key, Serializer val) throws IOException {
 		// added I2P
-		BSkipList bsl = (BSkipList) openIndices.get(name);
+		BSkipList bsl = openIndices.get(name);
 		if (bsl != null)
 			return bsl;
 
@@ -465,7 +465,7 @@ public class BlockFile {
 	 *  Added I2P
 	 */
 	public void closeIndex(String name) {
-		BSkipList bsl = (BSkipList) openIndices.remove(name);
+		BSkipList bsl = openIndices.remove(name);
 		if (bsl != null)
 			bsl.flush();
 	}
diff --git a/router/java/src/net/i2p/router/InNetMessagePool.java b/router/java/src/net/i2p/router/InNetMessagePool.java
index 9e7ad2e9cea5ec0f54f0e184b174860811da24df..28296cebba446e79aa01610b1dba399eef9c9ec3 100644
--- a/router/java/src/net/i2p/router/InNetMessagePool.java
+++ b/router/java/src/net/i2p/router/InNetMessagePool.java
@@ -379,8 +379,8 @@ public class InNetMessagePool implements Service {
             Hash from = null;
             synchronized (_pendingDataMessages) {
                 if (!_pendingDataMessages.isEmpty()) {
-                    msg = (I2NPMessage)_pendingDataMessages.remove(0);
-                    from = (Hash)_pendingDataMessagesFrom.remove(0);
+                    msg = _pendingDataMessages.remove(0);
+                    from = _pendingDataMessagesFrom.remove(0);
                 }
                 remaining = _pendingDataMessages.size();
             }
@@ -402,7 +402,7 @@ public class InNetMessagePool implements Service {
             int remaining = 0;
             synchronized (_pendingGatewayMessages) {
                 if (!_pendingGatewayMessages.isEmpty())
-                    msg = (I2NPMessage)_pendingGatewayMessages.remove(0);
+                    msg = _pendingGatewayMessages.remove(0);
                 remaining = _pendingGatewayMessages.size();
             }
             if (msg != null)
@@ -422,7 +422,7 @@ public class InNetMessagePool implements Service {
                         if (_pendingGatewayMessages.isEmpty())
                             _pendingGatewayMessages.wait();
                         else
-                            msg = (I2NPMessage)_pendingGatewayMessages.remove(0);
+                            msg = _pendingGatewayMessages.remove(0);
                     }
                     if (msg != null) {
                         long before = _context.clock().now();
@@ -453,8 +453,8 @@ public class InNetMessagePool implements Service {
                         if (_pendingDataMessages.isEmpty()) {
                             _pendingDataMessages.wait();
                         } else {
-                            msg = (I2NPMessage)_pendingDataMessages.remove(0);
-                            from = (Hash)_pendingDataMessagesFrom.remove(0);
+                            msg = _pendingDataMessages.remove(0);
+                            from = _pendingDataMessagesFrom.remove(0);
                         }
                     }
                     if (msg != null) {
diff --git a/router/java/src/net/i2p/router/MultiRouter.java b/router/java/src/net/i2p/router/MultiRouter.java
index 6e4346807397289b1ba03ba7f2912d7cd2ced4de..5e8cb47608b005235a163a9ae1d1a716fd5cf5c5 100644
--- a/router/java/src/net/i2p/router/MultiRouter.java
+++ b/router/java/src/net/i2p/router/MultiRouter.java
@@ -240,7 +240,7 @@ public class MultiRouter {
         while (true) {
             int alive = 0;
             for (int i = 0; i < _routers.size(); i++) {
-                Router r = (Router)_routers.get(i);
+                Router r = _routers.get(i);
                 if (!r.isAlive()) {
                 	_out.println("Router " + i + " is dead");
                 } else {
diff --git a/router/java/src/net/i2p/router/dummy/DummyNetworkDatabaseFacade.java b/router/java/src/net/i2p/router/dummy/DummyNetworkDatabaseFacade.java
index a17cee907609238ddd9630cec213d913b30311c2..11b9419f382784ef69a46aca033b83a90107c8d2 100644
--- a/router/java/src/net/i2p/router/dummy/DummyNetworkDatabaseFacade.java
+++ b/router/java/src/net/i2p/router/dummy/DummyNetworkDatabaseFacade.java
@@ -49,12 +49,12 @@ public class DummyNetworkDatabaseFacade extends NetworkDatabaseFacade {
         else
             _context.jobQueue().addJob(onFindJob);
     }
-    public RouterInfo lookupRouterInfoLocally(Hash key) { return (RouterInfo)_routers.get(key); }
+    public RouterInfo lookupRouterInfoLocally(Hash key) { return _routers.get(key); }
     public void publish(LeaseSet localLeaseSet) {}
     public void publish(RouterInfo localRouterInfo) {}
     public LeaseSet store(Hash key, LeaseSet leaseSet) { return leaseSet; }
     public RouterInfo store(Hash key, RouterInfo routerInfo) {
-        RouterInfo rv = (RouterInfo)_routers.put(key, routerInfo);
+        RouterInfo rv = _routers.put(key, routerInfo);
         return rv;
     }
     public void unpublish(LeaseSet localLeaseSet) {}
diff --git a/router/java/src/net/i2p/router/dummy/VMCommSystem.java b/router/java/src/net/i2p/router/dummy/VMCommSystem.java
index 1d02d07b25eadabe6b47c3bd0ad9611064715757..e6c310d7c7321c6a97b2b951925bd35f72993d03 100644
--- a/router/java/src/net/i2p/router/dummy/VMCommSystem.java
+++ b/router/java/src/net/i2p/router/dummy/VMCommSystem.java
@@ -52,7 +52,7 @@ public class VMCommSystem extends CommSystemFacade {
      */
     public void processMessage(OutNetMessage msg) {
         Hash peer = msg.getTarget().getIdentity().getHash();
-        VMCommSystem peerSys = (VMCommSystem)_commSystemFacades.get(peer);
+        VMCommSystem peerSys = _commSystemFacades.get(peer);
 
         long now = _context.clock().now();
         long sendTime = now - msg.getSendBegin();
diff --git a/router/java/src/net/i2p/router/startup/LoadClientAppsJob.java b/router/java/src/net/i2p/router/startup/LoadClientAppsJob.java
index 13b489d3958d1073490548354aa3f00c87e22fb3..3fbfc381f0d0db87838f0f738dd6fdb4e618ddae 100644
--- a/router/java/src/net/i2p/router/startup/LoadClientAppsJob.java
+++ b/router/java/src/net/i2p/router/startup/LoadClientAppsJob.java
@@ -43,7 +43,7 @@ public class LoadClientAppsJob extends JobImpl {
             return;
         }
         for(int i = 0; i < apps.size(); i++) {
-            ClientAppConfig app = (ClientAppConfig) apps.get(i);
+            ClientAppConfig app = apps.get(i);
             if (app.disabled) {
                 if ("net.i2p.router.web.RouterConsoleRunner".equals(app.className)) {
                     String s = "Warning - Router console is disabled. To enable,\n edit the file " +
diff --git a/router/java/src/net/i2p/router/time/NtpClient.java b/router/java/src/net/i2p/router/time/NtpClient.java
index 2b78263f16690e0eb74f9243df4ccf2bf99e653a..4122ed9f96d437d766eafcf0370949685f56f258 100644
--- a/router/java/src/net/i2p/router/time/NtpClient.java
+++ b/router/java/src/net/i2p/router/time/NtpClient.java
@@ -70,7 +70,7 @@ class NtpClient {
             names.add(serverNames[i]);
         Collections.shuffle(names);
         for (int i = 0; i < names.size(); i++) {
-            long now = currentTime((String)names.get(i));
+            long now = currentTime(names.get(i));
             if (now > 0)
                 return now;
         }
@@ -92,7 +92,7 @@ class NtpClient {
             names.add(serverNames[i]);
         Collections.shuffle(names);
         for (int i = 0; i < names.size(); i++) {
-            long[] rv = currentTimeAndStratum((String)names.get(i));
+            long[] rv = currentTimeAndStratum(names.get(i));
             if (rv != null && rv[0] > 0)
                 return rv;
         }
diff --git a/router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java b/router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java
index c9242305ebf0edcec771b4d41a150565bb775757..bc3ad9543a820e44727230493fb3ab0a4364382c 100644
--- a/router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java
+++ b/router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java
@@ -115,7 +115,7 @@ public class CommSystemFacadeImpl extends CommSystemFacade {
         // Sum skew values
         long sum = 0;
         for (int i = first; i <= last; i++) {
-            long value = ((Long) (skews.get(i))).longValue();
+            long value = skews.get(i).longValue();
             //if (_log.shouldLog(Log.DEBUG))
             //    _log.debug("Adding clock skew " + i + " valued " + value + " s.");
             sum = sum + value;
diff --git a/router/java/src/net/i2p/router/transport/udp/TimedWeightedPriorityMessageQueue.java b/router/java/src/net/i2p/router/transport/udp/TimedWeightedPriorityMessageQueue.java
index 3f03c133fc2cc3bfc740f8e0616775d9d2ffc570..193c1751fb6b67f5e2e926087280de95dfaa1aa6 100644
--- a/router/java/src/net/i2p/router/transport/udp/TimedWeightedPriorityMessageQueue.java
+++ b/router/java/src/net/i2p/router/transport/udp/TimedWeightedPriorityMessageQueue.java
@@ -124,7 +124,7 @@ class TimedWeightedPriorityMessageQueue implements MessageQueue, OutboundMessage
                 int currentQueue = (_nextQueue + i) % _queue.length;
                 synchronized (_queue[currentQueue]) {
                     for (int j = 0; j < _queue[currentQueue].size(); j++) {
-                        OutNetMessage msg = (OutNetMessage)_queue[currentQueue].get(j);
+                        OutNetMessage msg = _queue[currentQueue].get(j);
                         Hash to = msg.getTarget().getIdentity().getHash();
                         if (_chokedPeers.contains(to))
                             continue;
@@ -239,7 +239,7 @@ class TimedWeightedPriorityMessageQueue implements MessageQueue, OutboundMessage
                 for (int i = 0; i < _queue.length; i++) {
                     synchronized (_queue[i]) {
                         for (int j = 0; j < _queue[i].size(); j++) {
-                            OutNetMessage m = (OutNetMessage)_queue[i].get(j);
+                            OutNetMessage m = _queue[i].get(j);
                             if (m.getExpiration() < now) {
                                 _bytesQueued[i] -= m.getMessageSize();
                                 removed.add(m);
@@ -252,7 +252,7 @@ class TimedWeightedPriorityMessageQueue implements MessageQueue, OutboundMessage
                 }
                 
                 for (int i = 0; i < removed.size(); i++) {
-                    OutNetMessage m = (OutNetMessage)removed.get(i);
+                    OutNetMessage m = removed.get(i);
                     m.timestamp("expirer killed it");
                     _listener.failed(m, "expired before getting on the active pool");
                 }
diff --git a/router/java/src/net/i2p/router/tunnel/BuildMessageGenerator.java b/router/java/src/net/i2p/router/tunnel/BuildMessageGenerator.java
index 42aae3ce38fe23ad8b58edc8f49c5264edd859b9..e2044305ccb6d33f21f46fffa71fa9afaf25f3d8 100644
--- a/router/java/src/net/i2p/router/tunnel/BuildMessageGenerator.java
+++ b/router/java/src/net/i2p/router/tunnel/BuildMessageGenerator.java
@@ -152,7 +152,7 @@ public abstract class BuildMessageGenerator {
         // encrypt the records so that the right elements will be visible at the right time
         for (int i = 0; i < msg.getRecordCount(); i++) {
             ByteArray rec = msg.getRecord(i);
-            Integer hopNum = (Integer)order.get(i);
+            Integer hopNum = order.get(i);
             int hop = hopNum.intValue();
             if ( (isBlank(cfg, hop)) || (!cfg.isInbound() && hop == 1) ) {
                 //if (log.shouldLog(Log.DEBUG))