diff --git a/apps/addressbook/java/src/net/i2p/addressbook/Daemon.java b/apps/addressbook/java/src/net/i2p/addressbook/Daemon.java
index 4ce2e4f7141295dde75a3dc218031c23328e455e..578a348e37437c6ccd717288a83a3a7a4ab1a211 100644
--- a/apps/addressbook/java/src/net/i2p/addressbook/Daemon.java
+++ b/apps/addressbook/java/src/net/i2p/addressbook/Daemon.java
@@ -230,7 +230,7 @@ public class Daemon {
      */
     public static void update(Map<String, String> settings, String home) {
         File published = null;
-        boolean should_publish = Boolean.valueOf(settings.get("should_publish")).booleanValue();
+        boolean should_publish = Boolean.parseBoolean(settings.get("should_publish"));
         if (should_publish) 
             published = new File(home, settings
                 .get("published_addressbook"));
@@ -261,7 +261,7 @@ public class Daemon {
 
         // If false, add hosts via naming service; if true, write hosts.txt file directly
         // Default false
-        if (Boolean.valueOf(settings.get("update_direct")).booleanValue()) {
+        if (Boolean.parseBoolean(settings.get("update_direct"))) {
             // Direct hosts.txt access
             File routerFile = new File(home, settings.get("router_addressbook"));
             AddressBook master;
diff --git a/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java b/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java
index eed367e7a5fff955cdadffa4916bd88d628daa75..739b8bc06333f58f7754f33dcdcfc41173435350 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/SnarkManager.java
@@ -200,11 +200,11 @@ public class SnarkManager implements Snark.CompleteListener {
      *  @since 0.8.9
      */
     public boolean areFilesPublic() {
-        return Boolean.valueOf(_config.getProperty(PROP_FILES_PUBLIC)).booleanValue();
+        return Boolean.parseBoolean(_config.getProperty(PROP_FILES_PUBLIC));
     }
 
     public boolean shouldAutoStart() {
-        return Boolean.valueOf(_config.getProperty(PROP_AUTO_START, DEFAULT_AUTO_START)).booleanValue();
+        return Boolean.parseBoolean(_config.getProperty(PROP_AUTO_START, DEFAULT_AUTO_START));
     }
 
 /****
@@ -384,11 +384,11 @@ public class SnarkManager implements Snark.CompleteListener {
         if (ot != null)
             _util.setOpenTrackers(getOpenTrackers());
         String useOT = _config.getProperty(PROP_USE_OPENTRACKERS);
-        boolean bOT = useOT == null || Boolean.valueOf(useOT).booleanValue();
+        boolean bOT = useOT == null || Boolean.parseBoolean(useOT);
         _util.setUseOpenTrackers(bOT);
         // careful, so we can switch default to true later
-        _util.setUseDHT(Boolean.valueOf(_config.getProperty(PROP_USE_DHT,
-                                          Boolean.toString(I2PSnarkUtil.DEFAULT_USE_DHT))).booleanValue());
+        _util.setUseDHT(Boolean.parseBoolean(_config.getProperty(PROP_USE_DHT,
+                                          Boolean.toString(I2PSnarkUtil.DEFAULT_USE_DHT))));
         getDataDir().mkdirs();
         initTrackerMap();
     }
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnel.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnel.java
index 052a211f45faf8cd7f59e9a6186bd882c1d46d55..bc953d19834311ff1576a4b33f200b1985d25185 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnel.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnel.java
@@ -694,7 +694,7 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
     public void runClient(String args[], Logging l) {
         boolean isShared = true;
         if (args.length >= 3)
-            isShared = Boolean.valueOf(args[2].trim()).booleanValue();
+            isShared = Boolean.parseBoolean(args[2].trim());
         if (args.length >= 2) {
             int portNum = -1;
             try {
@@ -766,7 +766,7 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
             String proxy = "";
             boolean isShared = true;
             if (args.length > 1) {
-                if (Boolean.valueOf(args[1].trim()).booleanValue()) {
+                if (Boolean.parseBoolean(args[1].trim())) {
                     isShared = true;
                     if (args.length == 3)
                         proxy = args[2];
@@ -835,7 +835,7 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
             String proxy = "";
             boolean isShared = true;
             if (args.length > 1) {
-                if (Boolean.valueOf(args[1].trim()).booleanValue()) {
+                if (Boolean.parseBoolean(args[1].trim())) {
                     isShared = true;
                     if (args.length == 3)
                         proxy = args[2];
@@ -906,7 +906,7 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
             
             boolean isShared = true;
             if (args.length > 2) {
-                if (Boolean.valueOf(args[2].trim()).booleanValue()) {
+                if (Boolean.parseBoolean(args[2].trim())) {
                     isShared = true;
                 } else if ("false".equalsIgnoreCase(args[2].trim())) {
                     _log.warn("args[2] == [" + args[2] + "] and rejected explicitly");
@@ -973,7 +973,7 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
 
             boolean isShared = false;
             if (args.length > 1)
-                isShared = Boolean.valueOf(args[1].trim()).booleanValue();
+                isShared = Boolean.parseBoolean(args[1].trim());
 
             ownDest = !isShared;
             try {
@@ -1017,7 +1017,7 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
 
             boolean isShared = false;
             if (args.length == 2)
-                isShared = Boolean.valueOf(args[1].trim()).booleanValue();
+                isShared = Boolean.parseBoolean(args[1].trim());
 
             ownDest = !isShared;
             String privateKeyFile = null;
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClientBase.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClientBase.java
index d9fea97433b4d8381baa8701e3c5c8ba52341843..24bc2d2f7ef9428ed50bcb0bf008491a75ff58d7 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClientBase.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClientBase.java
@@ -190,11 +190,11 @@ public abstract class I2PTunnelClientBase extends I2PTunnelTask implements Runna
         // no need to load the netDb with leaseSets for destinations that will never 
         // be looked up
         boolean dccEnabled = (this instanceof I2PTunnelIRCClient) &&
-                      Boolean.valueOf(tunnel.getClientOptions().getProperty(I2PTunnelIRCClient.PROP_DCC)).booleanValue();
+                      Boolean.parseBoolean(tunnel.getClientOptions().getProperty(I2PTunnelIRCClient.PROP_DCC));
         if (!dccEnabled)
             tunnel.getClientOptions().setProperty("i2cp.dontPublishLeaseSet", "true");
         
-        boolean openNow = !Boolean.valueOf(tunnel.getClientOptions().getProperty("i2cp.delayOpen")).booleanValue();
+        boolean openNow = !Boolean.parseBoolean(tunnel.getClientOptions().getProperty("i2cp.delayOpen"));
         if (openNow) {
             while (sockMgr == null) {
                 verifySocketManager();
@@ -258,8 +258,8 @@ public abstract class I2PTunnelClientBase extends I2PTunnelTask implements Runna
                 if (sess == null) {
                     newManager = true;
                 } else if (sess.isClosed() &&
-                           Boolean.valueOf(getTunnel().getClientOptions().getProperty("i2cp.closeOnIdle")).booleanValue() &&
-                           Boolean.valueOf(getTunnel().getClientOptions().getProperty("i2cp.newDestOnResume")).booleanValue()) {
+                           Boolean.parseBoolean(getTunnel().getClientOptions().getProperty("i2cp.closeOnIdle")) &&
+                           Boolean.parseBoolean(getTunnel().getClientOptions().getProperty("i2cp.newDestOnResume"))) {
                     // build a new socket manager and a new dest if the session is closed.
                     getTunnel().removeSession(sess);
                     if (_log.shouldLog(Log.WARN))
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelConnectClient.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelConnectClient.java
index f8113382d1d247d6a74b2e2714de2088b8f629d0..04ca75e75aa069237266bfa4c2e0215cbe0e1ebd 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelConnectClient.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelConnectClient.java
@@ -253,7 +253,7 @@ public class I2PTunnelConnectClient extends I2PTunnelHTTPClientBase implements R
                     line = null;
                 } else {
                     // Add Proxy-Authentication header for next hop (outproxy)
-                    if (usingWWWProxy && Boolean.valueOf(getTunnel().getClientOptions().getProperty(PROP_OUTPROXY_AUTH)).booleanValue()) {
+                    if (usingWWWProxy && Boolean.parseBoolean(getTunnel().getClientOptions().getProperty(PROP_OUTPROXY_AUTH))) {
                         // specific for this proxy
                         String user = getTunnel().getClientOptions().getProperty(PROP_OUTPROXY_USER_PREFIX + currentProxy);
                         String pw = getTunnel().getClientOptions().getProperty(PROP_OUTPROXY_PW_PREFIX + currentProxy);
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java
index 6487956daa5d829da9e8d73cf409241c25751adb..bc7a474774d1013047a57a236f8b540f2b0e75ea 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClient.java
@@ -521,7 +521,7 @@ public class I2PTunnelHTTPClient extends I2PTunnelHTTPClientBase implements Runn
                             // Try to find an address helper in the query
                             String[] helperStrings = removeHelper(query);
                             if(helperStrings != null &&
-                                    !Boolean.valueOf(getTunnel().getClientOptions().getProperty(PROP_DISABLE_HELPER)).booleanValue()) {
+                                    !Boolean.parseBoolean(getTunnel().getClientOptions().getProperty(PROP_DISABLE_HELPER))) {
                                 query = helperStrings[0];
                                 if(query.equals("")) {
                                     query = null;
@@ -736,7 +736,7 @@ public class I2PTunnelHTTPClient extends I2PTunnelHTTPClientBase implements Runn
                     } else if(lowercaseLine.startsWith("user-agent: ")) {
                         // save for deciding whether to offer address book form
                         userAgent = lowercaseLine.substring(12);
-                        if(!Boolean.valueOf(getTunnel().getClientOptions().getProperty(PROP_USER_AGENT)).booleanValue()) {
+                        if(!Boolean.parseBoolean(getTunnel().getClientOptions().getProperty(PROP_USER_AGENT))) {
                             line = null;
                             continue;
                         }
@@ -746,13 +746,13 @@ public class I2PTunnelHTTPClient extends I2PTunnelHTTPClientBase implements Runn
                         line = null;
                         continue;
                     } else if(lowercaseLine.startsWith("referer: ") &&
-                            !Boolean.valueOf(getTunnel().getClientOptions().getProperty(PROP_REFERER)).booleanValue()) {
+                            !Boolean.parseBoolean(getTunnel().getClientOptions().getProperty(PROP_REFERER))) {
                         // Shouldn't we be more specific, like accepting in-site referers ?
                         //line = "Referer: i2p";
                         line = null;
                         continue; // completely strip the line
                     } else if(lowercaseLine.startsWith("via: ") &&
-                            !Boolean.valueOf(getTunnel().getClientOptions().getProperty(PROP_VIA)).booleanValue()) {
+                            !Boolean.parseBoolean(getTunnel().getClientOptions().getProperty(PROP_VIA))) {
                         //line = "Via: i2p";
                         line = null;
                         continue; // completely strip the line
@@ -786,7 +786,7 @@ public class I2PTunnelHTTPClient extends I2PTunnelHTTPClientBase implements Runn
                     String ok = getTunnel().getClientOptions().getProperty("i2ptunnel.gzip");
                     boolean gzip = DEFAULT_GZIP;
                     if(ok != null) {
-                        gzip = Boolean.valueOf(ok).booleanValue();
+                        gzip = Boolean.parseBoolean(ok);
                     }
                     if(gzip && !usingInternalServer) {
                         // according to rfc2616 s14.3, this *should* force identity, even if
@@ -796,7 +796,7 @@ public class I2PTunnelHTTPClient extends I2PTunnelHTTPClientBase implements Runn
                         newRequest.append("X-Accept-Encoding: x-i2p-gzip;q=1.0, identity;q=0.5, deflate;q=0, gzip;q=0, *;q=0\r\n");
                     }
                     if(!shout) {
-                        if(!Boolean.valueOf(getTunnel().getClientOptions().getProperty(PROP_USER_AGENT)).booleanValue()) {
+                        if(!Boolean.parseBoolean(getTunnel().getClientOptions().getProperty(PROP_USER_AGENT))) {
                             // let's not advertise to external sites that we are from I2P
                             if(usingWWWProxy) {
                                 newRequest.append("User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6\r\n");
@@ -806,7 +806,7 @@ public class I2PTunnelHTTPClient extends I2PTunnelHTTPClientBase implements Runn
                         }
                     }
                     // Add Proxy-Authentication header for next hop (outproxy)
-                    if(usingWWWProxy && Boolean.valueOf(getTunnel().getClientOptions().getProperty(PROP_OUTPROXY_AUTH)).booleanValue()) {
+                    if(usingWWWProxy && Boolean.parseBoolean(getTunnel().getClientOptions().getProperty(PROP_OUTPROXY_AUTH))) {
                         // specific for this proxy
                         String user = getTunnel().getClientOptions().getProperty(PROP_OUTPROXY_USER_PREFIX + currentProxy);
                         String pw = getTunnel().getClientOptions().getProperty(PROP_OUTPROXY_PW_PREFIX + currentProxy);
@@ -869,7 +869,7 @@ public class I2PTunnelHTTPClient extends I2PTunnelHTTPClientBase implements Runn
             if(usingInternalServer) {
                 // disable the add form if address helper is disabled
                 if(internalPath.equals("/add") &&
-                        Boolean.valueOf(getTunnel().getClientOptions().getProperty(PROP_DISABLE_HELPER)).booleanValue()) {
+                        Boolean.parseBoolean(getTunnel().getClientOptions().getProperty(PROP_DISABLE_HELPER))) {
                     out.write(ERR_HELPER_DISABLED);
                 } else {
                     LocalHTTPServer.serveLocalFile(out, method, internalPath, internalRawQuery, _proxyNonce);
@@ -949,7 +949,7 @@ public class I2PTunnelHTTPClient extends I2PTunnelHTTPClientBase implements Runn
             // Don't do this for eepget, which uses a user-agent of "Wget"
             if(ahelperNew && "GET".equals(method) &&
                     (userAgent == null || !userAgent.startsWith("Wget")) &&
-                    !Boolean.valueOf(getTunnel().getClientOptions().getProperty(PROP_DISABLE_HELPER)).booleanValue()) {
+                    !Boolean.parseBoolean(getTunnel().getClientOptions().getProperty(PROP_DISABLE_HELPER))) {
                 writeHelperSaveForm(out, destination, ahelperKey, targetRequest);
                 s.close();
                 return;
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClientBase.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClientBase.java
index 331c786f13331bd72900d8c229d00b63af208778..f14de68b4b1550d7ed26ae0ef8e384255a13e4d3 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClientBase.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPClientBase.java
@@ -100,7 +100,7 @@ public abstract class I2PTunnelHTTPClientBase extends I2PTunnelClientBase implem
         // Ref: RFC 2617
         // If the socket is an InternalSocket, no auth required.
         String authRequired = getTunnel().getClientOptions().getProperty(PROP_AUTH);
-        if (Boolean.valueOf(authRequired).booleanValue() ||
+        if (Boolean.parseBoolean(authRequired) ||
             (authRequired != null && "basic".equals(authRequired.toLowerCase(Locale.US)))) {
             if (s instanceof InternalSocket) {
                 if (_log.shouldLog(Log.INFO))
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java
index 5c69959adee60df464c1a72ced733e1a01b9aadf..083123b5fc698908d24a6504734094816295e628 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java
@@ -154,7 +154,7 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer {
             boolean allowGZIP = true;
             if (opts != null) {
                 String val = opts.getProperty("i2ptunnel.gzip");
-                if ( (val != null) && (!Boolean.valueOf(val).booleanValue()) ) 
+                if ( (val != null) && (!Boolean.parseBoolean(val)) ) 
                     allowGZIP = false;
             }
             if (_log.shouldLog(Log.INFO))
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelIRCClient.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelIRCClient.java
index 60d8dc0dbff058c5a20adc14c24dfb15469cf5d3..fdba9af6300a0f7ec917c91f2dfc82aeec448063 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelIRCClient.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelIRCClient.java
@@ -87,7 +87,7 @@ public class I2PTunnelIRCClient extends I2PTunnelClientBase {
         
         setName("IRC Client on " + tunnel.listenHost + ':' + localPort);
 
-        _dccEnabled = Boolean.valueOf(tunnel.getClientOptions().getProperty(PROP_DCC)).booleanValue();
+        _dccEnabled = Boolean.parseBoolean(tunnel.getClientOptions().getProperty(PROP_DCC));
         // TODO add some prudent tunnel options (or is it too late?)
 
         startRunning();
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelServer.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelServer.java
index 49b44f1c92e732f0e3f04ee75347220c4882a008..09a50ed27b90b2defe6d21317a3bd086900fd28b 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelServer.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelServer.java
@@ -191,7 +191,7 @@ public class I2PTunnelServer extends I2PTunnelTask implements Runnable {
         if (_usePool) {
             String usePool = getTunnel().getClientOptions().getProperty(PROP_USE_POOL);
             if (usePool != null)
-                _usePool = Boolean.valueOf(usePool).booleanValue();
+                _usePool = Boolean.parseBoolean(usePool);
             else
                 _usePool = DEFAULT_USE_POOL;
         }
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelController.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelController.java
index 61b7c6432426c38a5c78eb7bfdf13b1bb724cf8b..8420604c9a56afc20b554046fb38dcdeaedfb2fb 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelController.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/TunnelController.java
@@ -536,8 +536,8 @@ public class TunnelController implements Logging {
     /** default true */
     public String getSharedClient() { return _config.getProperty("sharedClient", "true"); }
     /** default true */
-    public boolean getStartOnLoad() { return Boolean.valueOf(_config.getProperty("startOnLoad", "true")).booleanValue(); }
-    public boolean getPersistentClientKey() { return Boolean.valueOf(_config.getProperty("option.persistentClientKey")).booleanValue(); }
+    public boolean getStartOnLoad() { return Boolean.parseBoolean(_config.getProperty("startOnLoad", "true")); }
+    public boolean getPersistentClientKey() { return Boolean.parseBoolean(_config.getProperty("option.persistentClientKey")); }
 
     public String getMyDestination() {
         if (_tunnel != null) {
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/SOCKS5Server.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/SOCKS5Server.java
index 0854c799351062cee9d65eebe507bc2523e7b094..912dd6b603a3ddf48160a96fc588635ae69f0fca 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/SOCKS5Server.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/SOCKS5Server.java
@@ -61,7 +61,7 @@ public class SOCKS5Server extends SOCKSServer {
         this.clientSock = clientSock;
         this.props = props;
         this.authRequired =
-                    Boolean.valueOf(props.getProperty(I2PTunnelHTTPClientBase.PROP_AUTH)).booleanValue() &&
+                    Boolean.parseBoolean(props.getProperty(I2PTunnelHTTPClientBase.PROP_AUTH)) &&
                     props.containsKey(I2PTunnelHTTPClientBase.PROP_USER) &&
                     props.containsKey(I2PTunnelHTTPClientBase.PROP_PW);
     }
@@ -181,7 +181,7 @@ public class SOCKS5Server extends SOCKSServer {
             sendRequestReply(Reply.COMMAND_NOT_SUPPORTED, AddressType.DOMAINNAME, null, "0.0.0.0", 0, out);
             throw new SOCKSException("BIND command not supported");
         case Command.UDP_ASSOCIATE:
-          /*** if(!Boolean.valueOf(tunnel.getOptions().getProperty("i2ptunnel.socks.allowUDP")).booleanValue()) {
+          /*** if(!Boolean.parseBoolean(tunnel.getOptions().getProperty("i2ptunnel.socks.allowUDP"))) {
             _log.debug("UDP ASSOCIATE command is not supported!");
             sendRequestReply(Reply.COMMAND_NOT_SUPPORTED, AddressType.DOMAINNAME, null, "0.0.0.0", 0, out);
             throw new SOCKSException("UDP ASSOCIATE command not supported");
@@ -463,7 +463,7 @@ public class SOCKS5Server extends SOCKSServer {
         I2PSocket destSock = tun.createI2PSocket(I2PAppContext.getGlobalContext().namingService().lookup(proxy), proxyOpts);
         try {
             DataOutputStream out = new DataOutputStream(destSock.getOutputStream());
-            boolean authAvail = Boolean.valueOf(props.getProperty(I2PTunnelHTTPClientBase.PROP_OUTPROXY_AUTH)).booleanValue();
+            boolean authAvail = Boolean.parseBoolean(props.getProperty(I2PTunnelHTTPClientBase.PROP_OUTPROXY_AUTH));
             String configUser =  null;
             String configPW = null;
             if (authAvail) {
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/SOCKSServerFactory.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/SOCKSServerFactory.java
index 8a373b6794ddeb8671f155018af7655b05e030ec..971f3be0402a591bf27bf98791418c2cdc7e30aa 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/SOCKSServerFactory.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/socks/SOCKSServerFactory.java
@@ -49,7 +49,7 @@ public class SOCKSServerFactory {
             switch (socksVer) {
             case 0x04:
                 // SOCKS version 4/4a
-                if (Boolean.valueOf(props.getProperty(I2PTunnelHTTPClientBase.PROP_AUTH)).booleanValue() &&
+                if (Boolean.parseBoolean(props.getProperty(I2PTunnelHTTPClientBase.PROP_AUTH)) &&
                     props.containsKey(I2PTunnelHTTPClientBase.PROP_USER) &&
                     props.containsKey(I2PTunnelHTTPClientBase.PROP_PW)) {
                     throw new SOCKSException("SOCKS 4/4a not supported when authorization is required");
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/EditBean.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/EditBean.java
index 172e3eb57632b3cb032d3a6be9c4961f0586dad8..a0c38616e80b536f8bce34b6e4f4bc480ad5de3b 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/EditBean.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/EditBean.java
@@ -114,7 +114,7 @@ public class EditBean extends IndexBean {
     public boolean isSharedClient(int tunnel) {
         TunnelController tun = getController(tunnel);
         if (tun != null)
-            return Boolean.valueOf(tun.getSharedClient()).booleanValue();
+            return Boolean.parseBoolean(tun.getSharedClient());
         else
             return false;
     }
@@ -312,7 +312,7 @@ public class EditBean extends IndexBean {
         if (tun != null) {
             Properties opts = getOptions(tun);
             if (opts != null)
-                return Boolean.valueOf(opts.getProperty(prop)).booleanValue();
+                return Boolean.parseBoolean(opts.getProperty(prop));
         }
         return false;
     }
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java
index 28950f44760aba578c004188c479e9b67647832b..2c671af121d6c2d011d3677d0ae5f8abaae52950 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java
@@ -266,7 +266,7 @@ public class IndexBean {
         }
         // Only modify other shared tunnels
         // if the current tunnel is shared, and of supported type
-        if (Boolean.valueOf(cur.getSharedClient()).booleanValue() && isClient(cur.getType())) {
+        if (Boolean.parseBoolean(cur.getSharedClient()) && isClient(cur.getType())) {
             // all clients use the same I2CP session, and as such, use the same I2CP options
             List controllers = _group.getControllers();
 
@@ -278,7 +278,7 @@ public class IndexBean {
 
                 // Only modify this non-current tunnel
                 // if it belongs to a shared destination, and is of supported type
-                if (Boolean.valueOf(c.getSharedClient()).booleanValue() && isClient(c.getType())) {
+                if (Boolean.parseBoolean(c.getSharedClient()) && isClient(c.getType())) {
                     Properties cOpt = c.getConfig("");
                     if (_tunnelQuantity != null) {
                         cOpt.setProperty("option.inbound.quantity", _tunnelQuantity);
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHelper.java
index f94f4b9c77287ae366901f13925e9d13c4193875..c3816570157cca83bff05c4b550e5be514f0866a 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigClientsHelper.java
@@ -218,7 +218,7 @@ public class ConfigClientsHelper extends HelperBase {
                         .append("<a href=\"").append(updateURL).append("\">").append(_("Update link")).append("</a><td>&nbsp;");
                 }
                 desc.append("</table>");
-                boolean enableStop = !Boolean.valueOf(appProps.getProperty("disableStop")).booleanValue();
+                boolean enableStop = !Boolean.parseBoolean(appProps.getProperty("disableStop"));
                 enableStop &= PluginStarter.isPluginRunning(app, _context);
                 boolean enableStart = !PluginStarter.isPluginRunning(app, _context);
                 renderForm(buf, app, app, false,
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHandler.java
index da0fc328e2ca162469c93d647adf0bfeeddbf920..208997fd083593a2bab86315b0694f6b3dc9d680 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHandler.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHandler.java
@@ -184,7 +184,7 @@ public class ConfigNetHandler extends FormHandler {
             String oldNPort = _context.getProperty(ConfigNetHelper.PROP_I2NP_NTCP_PORT, "");
             String oldAutoHost = _context.getProperty(ConfigNetHelper.PROP_I2NP_NTCP_AUTO_IP, "true");
             String sAutoPort = _context.getProperty(ConfigNetHelper.PROP_I2NP_NTCP_AUTO_PORT, "true");
-            boolean oldAutoPort = Boolean.valueOf(sAutoPort).booleanValue();
+            boolean oldAutoPort = Boolean.parseBoolean(sAutoPort);
             if (_ntcpHostname == null) _ntcpHostname = "";
             if (_ntcpPort == null) _ntcpPort = "";
             if (_ntcpAutoIP == null) _ntcpAutoIP = "true";
@@ -265,7 +265,7 @@ public class ConfigNetHandler extends FormHandler {
 
             changes.put(Router.PROP_DYNAMIC_KEYS, "" + _dynamicKeys);
 
-            if (Boolean.valueOf(_context.getProperty(TransportManager.PROP_ENABLE_UPNP)).booleanValue() !=
+            if (Boolean.parseBoolean(_context.getProperty(TransportManager.PROP_ENABLE_UPNP)) !=
                 _upnp) {
                 // This is minor, don't set restartRequired
                 if (_upnp)
@@ -275,7 +275,7 @@ public class ConfigNetHandler extends FormHandler {
             }
             changes.put(TransportManager.PROP_ENABLE_UPNP, "" + _upnp);
 
-            if (Boolean.valueOf(_context.getProperty(UDPTransport.PROP_LAPTOP_MODE)).booleanValue() !=
+            if (Boolean.parseBoolean(_context.getProperty(UDPTransport.PROP_LAPTOP_MODE)) !=
                 _laptop) {
                 // This is minor, don't set restartRequired
                 if (_laptop)
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigUpdateHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigUpdateHelper.java
index 8ef110c396564c89989a09682f6b08e3249f5735..07fad31975da21d62aec17baab9a651054686cf4 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigUpdateHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigUpdateHelper.java
@@ -74,15 +74,14 @@ public class ConfigUpdateHelper extends HelperBase {
     
     public String getUpdateThroughProxy() {
         String proxy = _context.getProperty(ConfigUpdateHandler.PROP_SHOULD_PROXY, ConfigUpdateHandler.DEFAULT_SHOULD_PROXY);
-        if (Boolean.valueOf(proxy).booleanValue()) 
+        if (Boolean.parseBoolean(proxy)) 
             return "<input type=\"checkbox\" class=\"optbox\" value=\"true\" name=\"updateThroughProxy\" checked=\"checked\" >";
         else
             return "<input type=\"checkbox\" class=\"optbox\" value=\"true\" name=\"updateThroughProxy\" >";
     }
     
     public String getUpdateUnsigned() {
-        String foo = _context.getProperty(ConfigUpdateHandler.PROP_UPDATE_UNSIGNED);
-        if (Boolean.valueOf(foo).booleanValue()) 
+        if (_context.getBooleanProperty(ConfigUpdateHandler.PROP_UPDATE_UNSIGNED))
             return "<input type=\"checkbox\" class=\"optbox\" value=\"true\" name=\"updateUnsigned\" checked=\"checked\" >";
         else
             return "<input type=\"checkbox\" class=\"optbox\" value=\"true\" name=\"updateUnsigned\" >";
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ContentHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/ContentHelper.java
index b56108be389334f60af91d52016b17b6cc3c5d5c..2200b9af6d3f850397f7c7690be567aa5fb2f6f3 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/ContentHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/ContentHelper.java
@@ -16,7 +16,7 @@ public class ContentHelper extends HelperBase {
      */
     public void setPage(String page) { _page = page; }
     public void setStartAtBeginning(String moo) { 
-        _startAtBeginning = Boolean.valueOf(""+moo).booleanValue(); 
+        _startAtBeginning = Boolean.parseBoolean(moo); 
     }
     public void setLang(String l) {
 /*****
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/NewsFetcher.java b/apps/routerconsole/java/src/net/i2p/router/web/NewsFetcher.java
index 23210dced01222ecc4c5daecf21c8b9c519a7775..84b5a75ee56227815c51464b1dcd628206e8c12d 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/NewsFetcher.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/NewsFetcher.java
@@ -172,7 +172,7 @@ public class NewsFetcher implements Runnable, EepGet.StatusListener {
     boolean dontInstall() {
         File test = new File(_context.getBaseDir(), "history.txt");
         boolean readonly = ((test.exists() && !test.canWrite()) || (!_context.getBaseDir().canWrite()));
-        boolean disabled = Boolean.valueOf(_context.getProperty(ConfigUpdateHandler.PROP_UPDATE_DISABLED)).booleanValue();
+        boolean disabled = _context.getBooleanProperty(ConfigUpdateHandler.PROP_UPDATE_DISABLED);
         return readonly || disabled;
     }
 
@@ -220,7 +220,7 @@ public class NewsFetcher implements Runnable, EepGet.StatusListener {
 
     public void fetchNews() {
         String newsURL = ConfigUpdateHelper.getNewsURL(_context);
-        boolean shouldProxy = Boolean.valueOf(_context.getProperty(ConfigUpdateHandler.PROP_SHOULD_PROXY, ConfigUpdateHandler.DEFAULT_SHOULD_PROXY)).booleanValue();
+        boolean shouldProxy = Boolean.parseBoolean(_context.getProperty(ConfigUpdateHandler.PROP_SHOULD_PROXY, ConfigUpdateHandler.DEFAULT_SHOULD_PROXY));
         String proxyHost = _context.getProperty(ConfigUpdateHandler.PROP_PROXY_HOST, ConfigUpdateHandler.DEFAULT_PROXY_HOST);
         int proxyPort = ConfigUpdateHandler.proxyPort(_context);
         if (_tempFile.exists())
@@ -252,7 +252,7 @@ public class NewsFetcher implements Runnable, EepGet.StatusListener {
     public boolean shouldFetchUnsigned() {
         String url = _context.getProperty(ConfigUpdateHandler.PROP_ZIP_URL);
         return url != null && url.length() > 0 &&
-               Boolean.valueOf(_context.getProperty(ConfigUpdateHandler.PROP_UPDATE_UNSIGNED)).booleanValue() &&
+               _context.getBooleanProperty(ConfigUpdateHandler.PROP_UPDATE_UNSIGNED) &&
                !dontInstall();
     }
 
@@ -265,7 +265,7 @@ public class NewsFetcher implements Runnable, EepGet.StatusListener {
         if (url == null || url.length() <= 0)
             return;
         // assume always proxied for now
-        //boolean shouldProxy = Boolean.valueOf(_context.getProperty(ConfigUpdateHandler.PROP_SHOULD_PROXY, ConfigUpdateHandler.DEFAULT_SHOULD_PROXY)).booleanValue();
+        //boolean shouldProxy = Boolean.parseBoolean(_context.getProperty(ConfigUpdateHandler.PROP_SHOULD_PROXY, ConfigUpdateHandler.DEFAULT_SHOULD_PROXY));
         String proxyHost = _context.getProperty(ConfigUpdateHandler.PROP_PROXY_HOST, ConfigUpdateHandler.DEFAULT_PROXY_HOST);
         int proxyPort = _context.getProperty(ConfigUpdateHandler.PROP_PROXY_PORT, ConfigUpdateHandler.DEFAULT_PROXY_PORT_INT);
 
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/PluginStarter.java b/apps/routerconsole/java/src/net/i2p/router/web/PluginStarter.java
index 06f2e019ca610c5a5a99156d4c76159870e4166c..60e9dd8c3a3f4f51a283f0c885f817e09a143f2d 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/PluginStarter.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/PluginStarter.java
@@ -61,12 +61,12 @@ public class PluginStarter implements Runnable {
     }
 
     static boolean pluginsEnabled(I2PAppContext ctx) {
-         return Boolean.valueOf(ctx.getProperty("router.enablePlugins", "true")).booleanValue();
+         return ctx.getBooleanPropertyDefaultTrue("router.enablePlugins");
     }
 
     public void run() {
         if (_context.getBooleanPropertyDefaultTrue("plugins.autoUpdate") &&
-            (!Boolean.valueOf(System.getProperty(UpdateHandler.PROP_UPDATE_IN_PROGRESS)).booleanValue()) &&
+            (!Boolean.parseBoolean(System.getProperty(UpdateHandler.PROP_UPDATE_IN_PROGRESS))) &&
             (!RouterVersion.VERSION.equals(_context.getProperty("router.previousVersion"))))
             updateAll(_context, true);
         startPlugins(_context);
@@ -169,7 +169,7 @@ public class PluginStarter implements Runnable {
         for (Iterator iter = props.keySet().iterator(); iter.hasNext(); ) {
             String name = (String)iter.next();
             if (name.startsWith(PREFIX) && name.endsWith(ENABLED)) {
-                if (Boolean.valueOf(props.getProperty(name)).booleanValue()) {
+                if (Boolean.parseBoolean(props.getProperty(name))) {
                     String app = name.substring(PREFIX.length(), name.lastIndexOf(ENABLED));
                     // plugins could have been started after update
                     if (isPluginRunning(app, ctx))
@@ -508,7 +508,7 @@ public class PluginStarter implements Runnable {
     public static boolean isPluginEnabled(String appName) {
         Properties props = pluginProperties();
         String prop = PREFIX + appName + ENABLED;
-        return Boolean.valueOf(props.getProperty(prop, "true")).booleanValue();
+        return Boolean.parseBoolean(props.getProperty(prop, "true"));
     }
 
     /**
@@ -519,7 +519,7 @@ public class PluginStarter implements Runnable {
     public static void disablePlugin(String appName) {
         Properties props = pluginProperties();
         String prop = PREFIX + appName + ENABLED;
-        if (Boolean.valueOf(props.getProperty(prop, "true")).booleanValue()) {
+        if (Boolean.parseBoolean(props.getProperty(prop, "true"))) {
             props.setProperty(prop, "false");
             storePluginProperties(props);
         }
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/PluginUpdateHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/PluginUpdateHandler.java
index 621c0d898bd74559e0c7acfbf3754311aa681bbf..8e895702409bf193107f855d2dac3dc9332ad702 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/PluginUpdateHandler.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/PluginUpdateHandler.java
@@ -139,7 +139,7 @@ public class PluginUpdateHandler extends UpdateHandler {
             } else {
                 updateStatus("<b>" + _("Downloading plugin from {0}", _xpi2pURL) + "</b>");
                 // use the same settings as for updater
-                boolean shouldProxy = Boolean.valueOf(_context.getProperty(ConfigUpdateHandler.PROP_SHOULD_PROXY, ConfigUpdateHandler.DEFAULT_SHOULD_PROXY)).booleanValue();
+                boolean shouldProxy = Boolean.parseBoolean(_context.getProperty(ConfigUpdateHandler.PROP_SHOULD_PROXY, ConfigUpdateHandler.DEFAULT_SHOULD_PROXY));
                 String proxyHost = _context.getProperty(ConfigUpdateHandler.PROP_PROXY_HOST, ConfigUpdateHandler.DEFAULT_PROXY_HOST);
                 int proxyPort = ConfigUpdateHandler.proxyPort(_context);
                 try {
@@ -313,7 +313,7 @@ public class PluginUpdateHandler extends UpdateHandler {
             boolean wasRunning = false;
             File destDir = new SecureDirectory(appDir, appName);
             if (destDir.exists()) {
-                if (Boolean.valueOf(props.getProperty("install-only")).booleanValue()) {
+                if (Boolean.parseBoolean(props.getProperty("install-only"))) {
                     to.delete();
                     statusDone("<b>" + _("Downloaded plugin is for new installs only, but the plugin is already installed", url) + "</b>");
                     return;
@@ -374,7 +374,7 @@ public class PluginUpdateHandler extends UpdateHandler {
                     return;
                 }
                 // do we defer extraction and installation?
-                if (Boolean.valueOf(props.getProperty("router-restart-required")).booleanValue()) {
+                if (Boolean.parseBoolean(props.getProperty("router-restart-required"))) {
                     // Yup!
                     try {
                         if(!FileUtil.copy(to, (new SecureFile( new SecureFile(appDir.getCanonicalPath() +"/" + appName +"/"+ ZIP).getCanonicalPath())) , true, true)) {
@@ -405,7 +405,7 @@ public class PluginUpdateHandler extends UpdateHandler {
                 }
                 update = true;
             } else {
-                if (Boolean.valueOf(props.getProperty("update-only")).booleanValue()) {
+                if (Boolean.parseBoolean(props.getProperty("update-only"))) {
                     to.delete();
                     statusDone("<b>" + _("Plugin is for upgrades only, but the plugin is not installed") + "</b>");
                     return;
@@ -426,7 +426,7 @@ public class PluginUpdateHandler extends UpdateHandler {
             _updated = true;
             to.delete();
             // install != update. Changing the user's settings like this is probabbly a bad idea.
-            if (Boolean.valueOf( props.getProperty("dont-start-at-install")).booleanValue()) {
+            if (Boolean.parseBoolean( props.getProperty("dont-start-at-install"))) {
                 statusDone("<b>" + _("Plugin {0} installed", appName) + "</b>");
                 if(!update) {
                     Properties pluginProps = PluginStarter.pluginProperties();
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java
index cc8a26f14c2c0c077183a7d5dbb96e9ac126b6f9..c520a2bb5635dc943cdafe7d2f86a87f7031ff6e 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java
@@ -120,8 +120,8 @@ public class SummaryHelper extends HelperBase {
     
     public boolean allowReseed() {
         return _context.netDb().isInitialized() &&
-               ((_context.netDb().getKnownRouters() < 30) ||
-                Boolean.valueOf(_context.getProperty("i2p.alwaysAllowReseed")).booleanValue());
+               (_context.netDb().getKnownRouters() < 30) ||
+                _context.getBooleanProperty("i2p.alwaysAllowReseed");
     }
     
     /** subtract one for ourselves, so if we know no other peers it displays zero */
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/UpdateHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/UpdateHandler.java
index 1492f3bb1f319f620daf69eb6e7f530f88695e6a..2b87231bb6ccc2d39a20bb279e56c7292b49cc84 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/UpdateHandler.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/UpdateHandler.java
@@ -169,7 +169,7 @@ public class UpdateHandler {
             // Alternative: In bytesTransferred(), Check the data in the output file after
             // we've received at least 56 bytes. Need a cancel() method in EepGet ?
 
-            boolean shouldProxy = Boolean.valueOf(_context.getProperty(ConfigUpdateHandler.PROP_SHOULD_PROXY, ConfigUpdateHandler.DEFAULT_SHOULD_PROXY)).booleanValue();
+            boolean shouldProxy = Boolean.parseBoolean(_context.getProperty(ConfigUpdateHandler.PROP_SHOULD_PROXY, ConfigUpdateHandler.DEFAULT_SHOULD_PROXY));
             String proxyHost = _context.getProperty(ConfigUpdateHandler.PROP_PROXY_HOST, ConfigUpdateHandler.DEFAULT_PROXY_HOST);
             int proxyPort = ConfigUpdateHandler.proxyPort(_context);
 
diff --git a/apps/sam/java/src/net/i2p/sam/SAMBridge.java b/apps/sam/java/src/net/i2p/sam/SAMBridge.java
index 114f9dd6015857672328666c7db28f3a4b24e447..aa798b8f3d6940165daaab0a3b4b4f6377ded1f9 100644
--- a/apps/sam/java/src/net/i2p/sam/SAMBridge.java
+++ b/apps/sam/java/src/net/i2p/sam/SAMBridge.java
@@ -252,7 +252,7 @@ public class SAMBridge implements Runnable {
         }
         SAMBridge bridge = new SAMBridge(host, port, opts, keyfile);
         I2PAppThread t = new I2PAppThread(bridge, "SAMListener");
-        if (Boolean.valueOf(System.getProperty("sam.shutdownOnOOM", "false")).booleanValue()) {
+        if (Boolean.parseBoolean(System.getProperty("sam.shutdownOnOOM"))) {
             t.addOOMEventThreadListener(new I2PAppThread.OOMEventListener() {
                 public void outOfMemory(OutOfMemoryError err) {
                     err.printStackTrace();
diff --git a/apps/sam/java/src/net/i2p/sam/SAMStreamSession.java b/apps/sam/java/src/net/i2p/sam/SAMStreamSession.java
index 39836c53f55f93db47d47f5d386b95988245ba4d..6a86a915cd0ca6e04e91328306013ee6ee38f78c 100644
--- a/apps/sam/java/src/net/i2p/sam/SAMStreamSession.java
+++ b/apps/sam/java/src/net/i2p/sam/SAMStreamSession.java
@@ -134,7 +134,7 @@ public class SAMStreamSession {
         
         socketMgr.addDisconnectListener(new DisconnectListener());
 
-        forceFlush = Boolean.valueOf(allprops.getProperty(PROP_FORCE_FLUSH, DEFAULT_FORCE_FLUSH)).booleanValue();
+        forceFlush = Boolean.parseBoolean(allprops.getProperty(PROP_FORCE_FLUSH, DEFAULT_FORCE_FLUSH));
         
         boolean canReceive = false;
         if (dir.equals("BOTH")) {
diff --git a/apps/streaming/java/src/net/i2p/client/streaming/ConnectionOptions.java b/apps/streaming/java/src/net/i2p/client/streaming/ConnectionOptions.java
index ee01d462c86cc52fbfe4e2ea7681812d53599bff..cd535cc310b70abc60c41b851fadbafe335cad35 100644
--- a/apps/streaming/java/src/net/i2p/client/streaming/ConnectionOptions.java
+++ b/apps/streaming/java/src/net/i2p/client/streaming/ConnectionOptions.java
@@ -764,7 +764,7 @@ class ConnectionOptions extends I2PSocketOptionsImpl {
         if (opts == null) return defaultVal;
         String val = opts.getProperty(name);
         if (val == null)  return defaultVal;
-        return Boolean.valueOf(val).booleanValue();
+        return Boolean.parseBoolean(val);
     }
 
 /****
diff --git a/apps/systray/java/src/net/i2p/apps/systray/SysTray.java b/apps/systray/java/src/net/i2p/apps/systray/SysTray.java
index f966533f3ca5df36ec83a8e539196e030d02e5a6..a6b608d90095d5dd8808b5d7139486b36c8d95b1 100644
--- a/apps/systray/java/src/net/i2p/apps/systray/SysTray.java
+++ b/apps/systray/java/src/net/i2p/apps/systray/SysTray.java
@@ -49,7 +49,7 @@ public class SysTray implements SysTrayMenuListener {
 
         _browserString = _configFile.getProperty("browser", "default");
         _portString = _configFile.getProperty("port", "7657");
-        _showIcon = Boolean.valueOf(_configFile.getProperty("visible", "true")).booleanValue();
+        _showIcon = Boolean.parseBoolean(_configFile.getProperty("visible", "true"));
 
         //if (!(new File("router.config")).exists())
         //    openRouterConsole("http://localhost:" + _portString + "/index.jsp");
diff --git a/core/java/src/freenet/support/CPUInformation/CPUID.java b/core/java/src/freenet/support/CPUInformation/CPUID.java
index 2c59dcfd1fa4f52df49128cbfbe42af3328e27f4..b295c3ac134cb1e69df0b8d953ca8c800b90f371 100644
--- a/core/java/src/freenet/support/CPUInformation/CPUID.java
+++ b/core/java/src/freenet/support/CPUInformation/CPUID.java
@@ -260,7 +260,7 @@ public class CPUID {
     private static final void loadNative() {
         try{
         String wantedProp = System.getProperty("jcpuid.enable", "true");
-        boolean wantNative = Boolean.valueOf(wantedProp).booleanValue();
+        boolean wantNative = Boolean.parseBoolean(wantedProp);
         if (wantNative) {
             boolean loaded = loadGeneric();
             if (loaded) {
diff --git a/core/java/src/net/i2p/client/I2PSessionImpl.java b/core/java/src/net/i2p/client/I2PSessionImpl.java
index c3b993e4af08cf94e65414c1224043d46aee22aa..69fc300788b288bb2bf6608808630bf621234ed9 100644
--- a/core/java/src/net/i2p/client/I2PSessionImpl.java
+++ b/core/java/src/net/i2p/client/I2PSessionImpl.java
@@ -219,7 +219,7 @@ abstract class I2PSessionImpl implements I2PSession, I2CPMessageReader.I2CPMessa
 
         // auto-add auth if required, not set in the options, and we are not in the same JVM
         if ((!_context.isRouterContext()) &&
-            Boolean.valueOf(_context.getProperty("i2cp.auth")).booleanValue() &&
+            _context.getBooleanProperty("i2cp.auth") &&
             ((!options.containsKey("i2cp.username")) || (!options.containsKey("i2cp.password")))) {
             String configUser = _context.getProperty("i2cp.username");
             String configPW = _context.getProperty("i2cp.password");
@@ -349,7 +349,7 @@ abstract class I2PSessionImpl implements I2PSession, I2CPMessageReader.I2CPMessa
                 _queue = mgr.connect();
                 _reader = new QueuedI2CPMessageReader(_queue, this);
             } else {
-                if (Boolean.valueOf(_options.getProperty(PROP_ENABLE_SSL)).booleanValue())
+                if (Boolean.parseBoolean(_options.getProperty(PROP_ENABLE_SSL)))
                     _socket = I2CPSSLSocketFactory.createSocket(_context, _hostname, _portNum);
                 else
                     _socket = new Socket(_hostname, _portNum);
@@ -976,8 +976,8 @@ abstract class I2PSessionImpl implements I2PSession, I2CPMessageReader.I2CPMessa
 
     private void startIdleMonitor() {
         _isReduced = false;
-        boolean reduce = Boolean.valueOf(_options.getProperty("i2cp.reduceOnIdle")).booleanValue();
-        boolean close = Boolean.valueOf(_options.getProperty("i2cp.closeOnIdle")).booleanValue();
+        boolean reduce = Boolean.parseBoolean(_options.getProperty("i2cp.reduceOnIdle"));
+        boolean close = Boolean.parseBoolean(_options.getProperty("i2cp.closeOnIdle"));
         if (reduce || close) {
             updateActivity();
             _context.simpleScheduler().addEvent(new SessionIdleTimer(_context, this, reduce, close), SessionIdleTimer.MINIMUM_TIME);
diff --git a/core/java/src/net/i2p/client/I2PSessionImpl2.java b/core/java/src/net/i2p/client/I2PSessionImpl2.java
index 02371eea3478222a513094219990e1f2e84ff98b..a71d7f0997e08fedd4f181a06593017396c77b5d 100644
--- a/core/java/src/net/i2p/client/I2PSessionImpl2.java
+++ b/core/java/src/net/i2p/client/I2PSessionImpl2.java
@@ -111,7 +111,7 @@ class I2PSessionImpl2 extends I2PSessionImpl {
              return false;
          String p = getOptions().getProperty("i2cp.gzip");
          if (p != null)
-             return Boolean.valueOf(p).booleanValue();
+             return Boolean.parseBoolean(p);
          return SHOULD_COMPRESS;
     }
     
diff --git a/core/java/src/net/i2p/client/I2PSimpleSession.java b/core/java/src/net/i2p/client/I2PSimpleSession.java
index 2ada1c26f4c591628ca5de45b171af534b503e78..9962c325d7df13d346416297bfc6443e65e13e5d 100644
--- a/core/java/src/net/i2p/client/I2PSimpleSession.java
+++ b/core/java/src/net/i2p/client/I2PSimpleSession.java
@@ -63,7 +63,7 @@ class I2PSimpleSession extends I2PSessionImpl2 {
                 _queue = mgr.connect();
                 _reader = new QueuedI2CPMessageReader(_queue, this);
             } else {
-                if (Boolean.valueOf(getOptions().getProperty(PROP_ENABLE_SSL)).booleanValue())
+                if (Boolean.parseBoolean(getOptions().getProperty(PROP_ENABLE_SSL)))
                     _socket = I2CPSSLSocketFactory.createSocket(_context, _hostname, _portNum);
                 else
                     _socket = new Socket(_hostname, _portNum);
diff --git a/core/java/src/net/i2p/client/RequestLeaseSetMessageHandler.java b/core/java/src/net/i2p/client/RequestLeaseSetMessageHandler.java
index cf4dfb604c4688d21a9bcdd85b472e062f39ecf0..30d8e61870a62f8e6e6b13c53a1d321c29dee798 100644
--- a/core/java/src/net/i2p/client/RequestLeaseSetMessageHandler.java
+++ b/core/java/src/net/i2p/client/RequestLeaseSetMessageHandler.java
@@ -74,7 +74,7 @@ class RequestLeaseSetMessageHandler extends HandlerImpl {
 
         leaseSet.setEncryptionKey(li.getPublicKey());
         leaseSet.setSigningKey(li.getSigningPublicKey());
-        boolean encrypt = Boolean.valueOf(session.getOptions().getProperty("i2cp.encryptLeaseSet")).booleanValue();
+        boolean encrypt = Boolean.parseBoolean(session.getOptions().getProperty("i2cp.encryptLeaseSet"));
         String sk = session.getOptions().getProperty("i2cp.leaseSetKey");
         if (encrypt && sk != null) {
             SessionKey key = new SessionKey();
diff --git a/core/java/src/net/i2p/util/NativeBigInteger.java b/core/java/src/net/i2p/util/NativeBigInteger.java
index e1a5c0bbc4c3113bb9018d546cae46ed003d3d58..5b03d687ac4bfe71a8be2667f34f483b6016588c 100644
--- a/core/java/src/net/i2p/util/NativeBigInteger.java
+++ b/core/java/src/net/i2p/util/NativeBigInteger.java
@@ -449,7 +449,7 @@ public class NativeBigInteger extends BigInteger {
     private static final void loadNative() {
         try{
             String wantedProp = System.getProperty("jbigi.enable", "true");
-            boolean wantNative = Boolean.valueOf(wantedProp).booleanValue();
+            boolean wantNative = Boolean.parseBoolean(wantedProp);
             if (wantNative) {
                 debug("trying loadGeneric");
                 boolean loaded = loadGeneric("jbigi");
diff --git a/router/java/src/net/i2p/router/Blocklist.java b/router/java/src/net/i2p/router/Blocklist.java
index 79fba4939ab06ec300ffd22744ccd011809c1735..d64f28564d93d75ee58d9c8ebf9737adefbba39b 100644
--- a/router/java/src/net/i2p/router/Blocklist.java
+++ b/router/java/src/net/i2p/router/Blocklist.java
@@ -91,7 +91,7 @@ public class Blocklist {
     static final String BLOCKLIST_FILE_DEFAULT = "blocklist.txt";
 
     public void startup() {
-        if (! Boolean.valueOf(_context.getProperty(PROP_BLOCKLIST_ENABLED, "true")).booleanValue())
+        if (! _context.getBooleanPropertyDefaultTrue(PROP_BLOCKLIST_ENABLED))
             return;
         String file = _context.getProperty(PROP_BLOCKLIST_FILE, BLOCKLIST_FILE_DEFAULT);
         // Maybe someday we'll read in multiple files and merge them
diff --git a/router/java/src/net/i2p/router/InNetMessagePool.java b/router/java/src/net/i2p/router/InNetMessagePool.java
index d576ea9fdc5c9e2aa03829208fee0f5b962e17a0..ab3b2323c9b2964b2cbcce5fd5ae266c109d8e96 100644
--- a/router/java/src/net/i2p/router/InNetMessagePool.java
+++ b/router/java/src/net/i2p/router/InNetMessagePool.java
@@ -348,7 +348,7 @@ public class InNetMessagePool implements Service {
         _dispatchThreaded = DEFAULT_DISPATCH_THREADED;
         String threadedStr = _context.getProperty(PROP_DISPATCH_THREADED);
         if (threadedStr != null) {
-            _dispatchThreaded = Boolean.valueOf(threadedStr).booleanValue();
+            _dispatchThreaded = Boolean.parseBoolean(threadedStr);
         }
         if (_dispatchThreaded) {
             _context.statManager().createRateStat("pool.dispatchDataTime", "How long a tunnel dispatch takes", "Tunnels", new long[] { 10*60*1000l, 60*60*1000l, 24*60*60*1000l });
diff --git a/router/java/src/net/i2p/router/MessageHistory.java b/router/java/src/net/i2p/router/MessageHistory.java
index e566462d12ea553f5dcc59a76ac97d4d57cda47e..5563eec2151f9af6b5e75438e81edc8b12d7768b 100644
--- a/router/java/src/net/i2p/router/MessageHistory.java
+++ b/router/java/src/net/i2p/router/MessageHistory.java
@@ -80,7 +80,7 @@ public class MessageHistory {
     String getFilename() { return _historyFile; }
     
     private void updateSettings() {
-        _doLog = Boolean.valueOf(_context.getProperty(PROP_KEEP_MESSAGE_HISTORY)).booleanValue();
+        _doLog = _context.getBooleanProperty(PROP_KEEP_MESSAGE_HISTORY);
         _historyFile = _context.getProperty(PROP_MESSAGE_HISTORY_FILENAME, DEFAULT_MESSAGE_HISTORY_FILENAME);
     }
     
diff --git a/router/java/src/net/i2p/router/Router.java b/router/java/src/net/i2p/router/Router.java
index d19006843d4d7a6153f24f8350a7c28c713f631a..c9bc66e9d1d3f5b79ce8407570974906083a57fc 100644
--- a/router/java/src/net/i2p/router/Router.java
+++ b/router/java/src/net/i2p/router/Router.java
@@ -176,7 +176,7 @@ public class Router implements RouterClock.ClockShiftListener {
 
         // Do we copy all the data files to the new directory? default false
         String migrate = System.getProperty("i2p.dir.migrate");
-        boolean migrateFiles = Boolean.valueOf(migrate).booleanValue();
+        boolean migrateFiles = Boolean.parseBoolean(migrate);
         String userDir = WorkingDir.getWorkingDir(envProps, migrateFiles);
 
         // Use the router.config file specified in the router.configLocation property
@@ -196,7 +196,7 @@ public class Router implements RouterClock.ClockShiftListener {
         envProps.putAll(_config);
 
         // This doesn't work, guess it has to be in the static block above?
-        // if (Boolean.valueOf(envProps.getProperty("router.disableIPv6")).booleanValue())
+        // if (Boolean.parseBoolean(envProps.getProperty("router.disableIPv6")))
         //    System.setProperty("java.net.preferIPv4Stack", "true");
 
         if (envProps.getProperty("i2p.dir.config") == null)
@@ -630,7 +630,7 @@ public class Router implements RouterClock.ClockShiftListener {
             return true;
         String h = _context.getProperty(PROP_HIDDEN_HIDDEN);
         if (h != null)
-            return Boolean.valueOf(h).booleanValue();
+            return Boolean.parseBoolean(h);
         return _context.commSystem().isInBadCountry();
     }
 
diff --git a/router/java/src/net/i2p/router/TunnelPoolSettings.java b/router/java/src/net/i2p/router/TunnelPoolSettings.java
index afcf1c727f9b6c6c6faaef937d73fbed766cfd39..658e644f84cfe24543000aee2583af1f11ef6edf 100644
--- a/router/java/src/net/i2p/router/TunnelPoolSettings.java
+++ b/router/java/src/net/i2p/router/TunnelPoolSettings.java
@@ -237,7 +237,7 @@ public class TunnelPoolSettings {
     
     private static final boolean getBoolean(String str, boolean defaultValue) { 
         if (str == null) return defaultValue;
-        boolean v = Boolean.valueOf(str).booleanValue() ||
+        boolean v = Boolean.parseBoolean(str) ||
                     (str != null && "YES".equals(str.toUpperCase(Locale.US)));
         return v;
     }
diff --git a/router/java/src/net/i2p/router/client/ClientManager.java b/router/java/src/net/i2p/router/client/ClientManager.java
index 71f2fc597e324a80aca0249a2f93e750a337d6d8..c1816bfd0287ad95d58f3b64e86a813e1844d764 100644
--- a/router/java/src/net/i2p/router/client/ClientManager.java
+++ b/router/java/src/net/i2p/router/client/ClientManager.java
@@ -326,7 +326,7 @@ class ClientManager {
         if (destHash == null) return true;
         ClientConnectionRunner runner = getRunner(destHash);
         if (runner == null) return true;
-        return !Boolean.valueOf(runner.getConfig().getOptions().getProperty(ClientManagerFacade.PROP_CLIENT_ONLY)).booleanValue();
+        return !Boolean.parseBoolean(runner.getConfig().getOptions().getProperty(ClientManagerFacade.PROP_CLIENT_ONLY));
     }
 
     /**
diff --git a/router/java/src/net/i2p/router/client/ClientMessageEventListener.java b/router/java/src/net/i2p/router/client/ClientMessageEventListener.java
index fa762ecabe1e9c221586155a2e595a0ae0e7828c..6e7f4a04f0504ac7aeb4057bb050d05a3608a167 100644
--- a/router/java/src/net/i2p/router/client/ClientMessageEventListener.java
+++ b/router/java/src/net/i2p/router/client/ClientMessageEventListener.java
@@ -169,7 +169,7 @@ class ClientMessageEventListener implements I2CPMessageReader.I2CPMessageEventLi
         }
 
         // Auth, since 0.8.2
-        if (_enforceAuth && Boolean.valueOf(_context.getProperty("i2cp.auth")).booleanValue()) {
+        if (_enforceAuth && _context.getBooleanProperty("i2cp.auth")) {
             String configUser = _context.getProperty("i2cp.username");
             String configPW = _context.getProperty("i2cp.password");
             if (configUser != null && configPW != null) {
diff --git a/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java b/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java
index 349dd7a5499a544e6926bc11c923c62a1e1b525c..f7090eb7ef532ef8f65e100db9979d03656d42cb 100644
--- a/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java
+++ b/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java
@@ -452,7 +452,7 @@ public class OutboundClientMessageOneShotJob extends JobImpl {
         // Per-message flag == false overrides session option which is default true
         String allow = _clientMessage.getSenderConfig().getOptions().getProperty(BUNDLE_REPLY_LEASESET);
         boolean allowLeaseBundle = SendMessageOptions.getSendLeaseSet(sendFlags) &&
-                                   (allow == null || Boolean.valueOf(allow).booleanValue());
+                                   (allow == null || Boolean.parseBoolean(allow));
         if (allowLeaseBundle) {
             // If we want an ack, bundle a leaseSet...
             //replyLeaseSet = getReplyLeaseSet(wantACK);
diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/HarvesterJob.java b/router/java/src/net/i2p/router/networkdb/kademlia/HarvesterJob.java
index 0011b2098d0d0ad7855c57fb0e017e702681d0c3..80f48623fbce0e02bf6ef4da2ef87d03f9d67271 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/HarvesterJob.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/HarvesterJob.java
@@ -45,7 +45,7 @@ class HarvesterJob extends JobImpl {
     public static final String PROP_ENABLED = "netDb.shouldHarvest";
 
     private boolean harvestDirectly() { 
-        return Boolean.valueOf(getContext().getProperty("netDb.harvestDirectly", "false")).booleanValue();
+        return getContext().getBooleanProperty("netDb.harvestDirectly");
     }
     
     public HarvesterJob(RouterContext context, KademliaNetworkDatabaseFacade facade) {
diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java
index b246c3afbdda31fab10dfa82c252151511febaa0..9a4aa09c67e8c7e5c5b7d8fd103ca1e57125c182 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java
@@ -220,7 +220,7 @@ public class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacade {
         }
         String enforce = _context.getProperty(PROP_ENFORCE_NETID);
         if (enforce != null) 
-            _enforceNetId = Boolean.valueOf(enforce).booleanValue();
+            _enforceNetId = Boolean.parseBoolean(enforce);
         else
             _enforceNetId = DEFAULT_ENFORCE_NETID;
         _ds.restart();
@@ -246,7 +246,7 @@ public class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacade {
         String dbDir = _context.getProperty(PROP_DB_DIR, DEFAULT_DB_DIR);
         String enforce = _context.getProperty(PROP_ENFORCE_NETID);
         if (enforce != null) 
-            _enforceNetId = Boolean.valueOf(enforce).booleanValue();
+            _enforceNetId = Boolean.parseBoolean(enforce);
         else
             _enforceNetId = DEFAULT_ENFORCE_NETID;
         
diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/SearchJob.java b/router/java/src/net/i2p/router/networkdb/kademlia/SearchJob.java
index c21c7cee2edc0caaae64eadc27a9161d7dfef9d8..590880aaeec2ea1824f8d5cc04cb1f1c586d5873 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/SearchJob.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/SearchJob.java
@@ -136,7 +136,7 @@ class SearchJob extends JobImpl {
         // Returning false essentially enables kademlia as a backup to floodfill for search responses.
         if (FloodfillNetworkDatabaseFacade.floodfillEnabled(ctx))
             return false;
-        return Boolean.valueOf(ctx.getProperty("netDb.floodfillOnly", DEFAULT_FLOODFILL_ONLY + "")).booleanValue();
+        return ctx.getProperty("netDb.floodfillOnly", DEFAULT_FLOODFILL_ONLY);
     }
     
 /***
diff --git a/router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java b/router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java
index 7fa12be10149bb398233a78d201204f6b7ed1d83..75b5f12982a5e5285c30989707a22a290dfff0ef 100644
--- a/router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java
+++ b/router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java
@@ -527,7 +527,7 @@ public class Reseeder {
 
 /******
     public static void main(String args[]) {
-        if ( (args != null) && (args.length == 1) && (!Boolean.valueOf(args[0]).booleanValue()) ) {
+        if ( (args != null) && (args.length == 1) && (!Boolean.parseBoolean(args[0])) ) {
             System.out.println("Not reseeding, as requested");
             return; // not reseeding on request
         }
diff --git a/router/java/src/net/i2p/router/startup/BootCommSystemJob.java b/router/java/src/net/i2p/router/startup/BootCommSystemJob.java
index c6bd62c762d3666b545ae80b7f4ebfa020c54dd4..3af4164b5eb8e0f680fca7525dfd7da05e721e4e 100644
--- a/router/java/src/net/i2p/router/startup/BootCommSystemJob.java
+++ b/router/java/src/net/i2p/router/startup/BootCommSystemJob.java
@@ -54,7 +54,7 @@ public class BootCommSystemJob extends JobImpl {
         
     private void startupDb() {
         Job bootDb = new BootNetworkDbJob(getContext());
-        boolean useTrusted = Boolean.valueOf(getContext().getProperty(PROP_USE_TRUSTED_LINKS)).booleanValue();
+        boolean useTrusted = getContext().getBooleanProperty(PROP_USE_TRUSTED_LINKS);
         if (useTrusted) {
             _log.debug("Using trusted links...");
             getContext().jobQueue().addJob(new BuildTrustedLinksJob(getContext(), bootDb));
diff --git a/router/java/src/net/i2p/router/tasks/RouterWatchdog.java b/router/java/src/net/i2p/router/tasks/RouterWatchdog.java
index 2cf889162496cd86bd673089de909b9ff418a4db..775a2c88e688117994665f398688b7a7f3497643 100644
--- a/router/java/src/net/i2p/router/tasks/RouterWatchdog.java
+++ b/router/java/src/net/i2p/router/tasks/RouterWatchdog.java
@@ -64,7 +64,7 @@ public class RouterWatchdog implements Runnable {
     
     private boolean shutdownOnHang() {
         // prop default false
-        if (!Boolean.valueOf(_context.getProperty("watchdog.haltOnHang")).booleanValue())
+        if (!_context.getBooleanProperty("watchdog.haltOnHang"))
             return false;
 
         // Client manager starts complaining after 10 minutes, and we run every minute,
diff --git a/router/java/src/net/i2p/router/time/RouterTimestamper.java b/router/java/src/net/i2p/router/time/RouterTimestamper.java
index 83576fde100678362f0707bafe385a967c3fc41b..d835b66f9c9bb939b114133f64cccf8934634ab2 100644
--- a/router/java/src/net/i2p/router/time/RouterTimestamper.java
+++ b/router/java/src/net/i2p/router/time/RouterTimestamper.java
@@ -72,7 +72,7 @@ public class RouterTimestamper extends Timestamper {
         // so the property must be set at startup.
         // We still need to be instantiated since the router calls clock().getTimestamper().waitForInitialization()
         String disabled = ctx.getProperty(PROP_DISABLED, DEFAULT_DISABLED);
-        if (Boolean.valueOf(disabled).booleanValue()) {
+        if (Boolean.parseBoolean(disabled)) {
             _initialized = true;
             return;
         }
@@ -321,7 +321,7 @@ public class RouterTimestamper extends Timestamper {
                                    _context.getProperty(PROP_QUERY_FREQUENCY, DEFAULT_QUERY_FREQUENCY));
         
         String disabled = _context.getProperty(PROP_DISABLED, DEFAULT_DISABLED);
-        _disabled = Boolean.valueOf(disabled).booleanValue();
+        _disabled = Boolean.parseBoolean(disabled);
         
         _concurringServers = Math.min(4, Math.max(1,
                               _context.getProperty(PROP_CONCURRING_SERVERS, DEFAULT_CONCURRING_SERVERS)));
diff --git a/router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java b/router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java
index e6a24e2eac3bdcf925056edee5699ff6669a786b..29f3a23d4a42dbe026f5e9bc8413552548f8f428 100644
--- a/router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java
+++ b/router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java
@@ -331,7 +331,7 @@ public class CommSystemFacadeImpl extends CommSystemFacade {
         if (_log.shouldLog(Log.INFO))
             _log.info("old: " + ohost + " config: " + name + " auto: " + enabled + " status: " + status);
         if (enabled.equals("always") ||
-            (Boolean.valueOf(enabled).booleanValue() && status == STATUS_OK)) {
+            (Boolean.parseBoolean(enabled) && status == STATUS_OK)) {
             String nhost = UDPAddr.getOption(UDPAddress.PROP_HOST);
             if (_log.shouldLog(Log.INFO))
                 _log.info("old: " + ohost + " config: " + name + " new: " + nhost);
@@ -354,7 +354,7 @@ public class CommSystemFacadeImpl extends CommSystemFacade {
             changed = true;
         } else if (ohost == null || ohost.length() <= 0) {
             return;
-        } else if (Boolean.valueOf(enabled).booleanValue() && status != STATUS_OK) {
+        } else if (Boolean.parseBoolean(enabled) && status != STATUS_OK) {
             // UDP transitioned to not-OK, turn off NTCP address
             // This will commonly happen at startup if we were initially OK
             // because UPnP was successful, but a subsequent SSU Peer Test determines
diff --git a/router/java/src/net/i2p/router/transport/GeoIP.java b/router/java/src/net/i2p/router/transport/GeoIP.java
index d4ce79ce2f4251b3f65e62c9edea75bbac085380..5b6cc813f32eaf6a2fece1af31a2476dc5a798fa 100644
--- a/router/java/src/net/i2p/router/transport/GeoIP.java
+++ b/router/java/src/net/i2p/router/transport/GeoIP.java
@@ -91,7 +91,7 @@ class GeoIP {
      */
 /******
     public void lookup() {
-        if (! Boolean.valueOf(_context.getProperty(PROP_GEOIP_ENABLED, "true")).booleanValue()) {
+        if (! _context.getBooleanPropertyDefaultTrue(PROP_GEOIP_ENABLED)) {
             _pendingSearch.clear();
             return;
         }
@@ -105,7 +105,7 @@ class GeoIP {
      * Results will be added to the table and available via get() after completion.
      */
     public void blockingLookup() {
-        if (! Boolean.valueOf(_context.getProperty(PROP_GEOIP_ENABLED, "true")).booleanValue()) {
+        if (! _context.getBooleanPropertyDefaultTrue(PROP_GEOIP_ENABLED)) {
             _pendingSearch.clear();
             return;
         }
diff --git a/router/java/src/net/i2p/router/transport/TransportManager.java b/router/java/src/net/i2p/router/transport/TransportManager.java
index 79e03112090f555b6c76a1bcf4906be18049bc64..0449bc890a3f589dec841e3baf322d4987456817 100644
--- a/router/java/src/net/i2p/router/transport/TransportManager.java
+++ b/router/java/src/net/i2p/router/transport/TransportManager.java
@@ -362,7 +362,7 @@ public class TransportManager implements TransportEventListener {
             }
             // Use UDP port for NTCP too - see comment in NTCPTransport.getRequestedPort() for why this is here
             if (t.getStyle().equals(NTCPTransport.STYLE) && port <= 0 &&
-                Boolean.valueOf(_context.getProperty(CommSystemFacadeImpl.PROP_I2NP_NTCP_AUTO_PORT)).booleanValue()) {
+                _context.getBooleanProperty(CommSystemFacadeImpl.PROP_I2NP_NTCP_AUTO_PORT)) {
                 Transport udp = getTransport(UDPTransport.STYLE);
                 if (udp != null)
                     port = t.getRequestedPort();
diff --git a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
index d3408db858b6db643f52c95dafaa3f96c110496c..0678477ce37533b450fef5aef6998644c7d79b11 100644
--- a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
+++ b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
@@ -708,7 +708,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
     private boolean getIsPortFixed() {
         String prop = _context.getProperty(PROP_FIXED_PORT);
         if (prop != null)
-            return Boolean.valueOf(prop).booleanValue();
+            return Boolean.parseBoolean(prop);
         int status = getReachabilityStatus();
         return status != CommSystemFacade.STATUS_REJECT_UNSOLICITED;
     }
@@ -1503,7 +1503,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
          *  it's usually false positives.
          ******************
         String forceIntroducers = _context.getProperty(PROP_FORCE_INTRODUCERS);
-        if ( (forceIntroducers != null) && (Boolean.valueOf(forceIntroducers).booleanValue()) ) {
+        if ( (forceIntroducers != null) && (Boolean.parseBoolean(forceIntroducers)) ) {
             if (_log.shouldLog(Log.INFO))
                 _log.info("Force introducers specified");
             return true;
diff --git a/router/java/src/net/i2p/router/tunnel/pool/TunnelPeerSelector.java b/router/java/src/net/i2p/router/tunnel/pool/TunnelPeerSelector.java
index 7679ed955cdc13a3b675a3f57a62b4f8bdb59671..a1c6f2ab7d21a43e7771f3c4f62d2159c532d96b 100644
--- a/router/java/src/net/i2p/router/tunnel/pool/TunnelPeerSelector.java
+++ b/router/java/src/net/i2p/router/tunnel/pool/TunnelPeerSelector.java
@@ -460,7 +460,7 @@ public abstract class TunnelPeerSelector {
             else 
                 val = ctx.getProperty(PROP_OUTBOUND_CLIENT_EXCLUDE_UNREACHABLE, DEFAULT_OUTBOUND_CLIENT_EXCLUDE_UNREACHABLE);
         
-        boolean rv = (val != null ? Boolean.valueOf(val).booleanValue() : def);
+        boolean rv = (val != null ? Boolean.parseBoolean(val) : def);
         //System.err.println("Filter unreachable? " + rv + " (inbound? " + isInbound + ", exploratory? " + isExploratory);
         return rv;
     }
@@ -490,7 +490,7 @@ public abstract class TunnelPeerSelector {
             else 
                 val = ctx.getProperty(PROP_OUTBOUND_CLIENT_EXCLUDE_SLOW);
         
-        boolean rv = (val != null ? Boolean.valueOf(val).booleanValue() : def);
+        boolean rv = (val != null ? Boolean.parseBoolean(val) : def);
         //System.err.println("Filter unreachable? " + rv + " (inbound? " + isInbound + ", exploratory? " + isExploratory);
         return rv;
     }
@@ -519,7 +519,7 @@ public abstract class TunnelPeerSelector {
             else 
                 val = ctx.getProperty(PROP_OUTBOUND_CLIENT_EXCLUDE_UPTIME);
         
-        boolean rv = (val != null ? Boolean.valueOf(val).booleanValue() : def);
+        boolean rv = (val != null ? Boolean.parseBoolean(val) : def);
         //System.err.println("Filter unreachable? " + rv + " (inbound? " + isInbound + ", exploratory? " + isExploratory);
         return rv;
     }