Author: nextgens
Date: 2006-07-05 10:10:36 +0000 (Wed, 05 Jul 2006)
New Revision: 9468

Modified:
   trunk/freenet/src/freenet/clients/http/SimpleToadletServer.java
   trunk/freenet/src/freenet/node/CPUUsageMonitor.java
   trunk/freenet/src/freenet/node/Node.java
   trunk/freenet/src/freenet/node/PeerNode.java
   trunk/freenet/src/freenet/node/TextModeClientInterfaceServer.java
Log:
Various bug fixes:
        * Fix some problems in StringCallbacks
        * Fix a potential synchronization problems
        * Limit the visibility of some classes
        * add a FIXME : it needs to be reviewed !

Modified: trunk/freenet/src/freenet/clients/http/SimpleToadletServer.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/SimpleToadletServer.java     
2006-07-05 08:28:11 UTC (rev 9467)
+++ trunk/freenet/src/freenet/clients/http/SimpleToadletServer.java     
2006-07-05 10:10:36 UTC (rev 9468)
@@ -35,7 +35,7 @@

 public class SimpleToadletServer implements ToadletContainer, Runnable {

-       public class ToadletElement {
+       private static class ToadletElement {
                public ToadletElement(Toadlet t2, String urlPrefix) {
                        t = t2;
                        prefix = urlPrefix;
@@ -76,7 +76,7 @@
                }

                public void set(String bindTo) throws 
InvalidConfigValueException {
-                       if(bindTo != get())
+                       if(!bindTo.equals(get()))
                                throw new InvalidConfigValueException("Cannot 
change FProxy bind address on the fly");
                }
        }
@@ -133,7 +133,7 @@
                }
        }

-       class FProxyAdvancedDarknetEnabledCallback implements BooleanCallback {
+       private static class FProxyAdvancedDarknetEnabledCallback implements 
BooleanCallback {

                private final SimpleToadletServer ts;


Modified: trunk/freenet/src/freenet/node/CPUUsageMonitor.java
===================================================================
--- trunk/freenet/src/freenet/node/CPUUsageMonitor.java 2006-07-05 08:28:11 UTC 
(rev 9467)
+++ trunk/freenet/src/freenet/node/CPUUsageMonitor.java 2006-07-05 10:10:36 UTC 
(rev 9468)
@@ -39,6 +39,7 @@
                 firstline = br.readLine();
                 if(firstline == null) throw new EOFException();
                 ris.close();
+                br.close();
             } catch (IOException e) {
                 if(!reportedFailedProcOpen)
                     Logger.error(this, "Failed to open /proc/stat: "+e, e);

Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java    2006-07-05 08:28:11 UTC (rev 
9467)
+++ trunk/freenet/src/freenet/node/Node.java    2006-07-05 10:10:36 UTC (rev 
9468)
@@ -653,7 +653,7 @@
        private static NodeStarter nodeStarter;

        // The watchdog will be silenced until it's true
-       private static boolean hasStarted = false;
+       private boolean hasStarted = false;

        // Debugging stuff
        private static final boolean USE_RAM_PUBKEYS_CACHE = true;

Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java        2006-07-05 08:28:11 UTC 
(rev 9467)
+++ trunk/freenet/src/freenet/node/PeerNode.java        2006-07-05 10:10:36 UTC 
(rev 9468)
@@ -286,6 +286,17 @@
         // FIXME make mandatory once everyone has upgraded
         lastGoodVersion = fs.get("lastGoodVersion");

+        String name = fs.get("myName");
+        if(name == null) throw new FSParseException("No name");
+        myName = name;
+        String testnet = fs.get("testnet");
+        testnetEnabled = testnet == null ? false : 
(testnet.equalsIgnoreCase("true") || testnet.equalsIgnoreCase("yes"));
+        if(testnetEnabled != node.testnetEnabled) {
+               String err = "Ignoring incompatible node "+detectedPeer+" - 
peer.testnet="+testnetEnabled+"("+testnet+") but 
node.testnet="+node.testnetEnabled;
+               Logger.error(this, err);
+               throw new PeerParseException(err);
+        }
+        
         nominalPeer=new Vector();
         nominalPeer.removeAllElements();
         try{
@@ -312,17 +323,6 @@
                detectedPeer = (Peer) nominalPeer.firstElement();
         }

-        String name = fs.get("myName");
-        if(name == null) throw new FSParseException("No name");
-        myName = name;
-        String testnet = fs.get("testnet");
-        testnetEnabled = testnet == null ? false : 
(testnet.equalsIgnoreCase("true") || testnet.equalsIgnoreCase("yes"));
-        if(testnetEnabled != node.testnetEnabled) {
-               String err = "Ignoring incompatible node "+detectedPeer+" - 
peer.testnet="+testnetEnabled+"("+testnet+") but 
node.testnet="+node.testnetEnabled;
-               Logger.error(this, err);
-               throw new PeerParseException(err);
-        }
-        
         // Setup incoming and outgoing setup ciphers
         byte[] nodeKey = node.identityHash;
         byte[] nodeKeyHash = node.identityHashHash;
@@ -481,6 +481,7 @@
         return false;
        }

+    //FIXME: Huh wtf ?
        private void randomizeMaxTimeBetweenPacketSends() {
         int x = Node.KEEPALIVE_INTERVAL;
         x += node.random.nextInt(x);
@@ -500,7 +501,7 @@
     /**
      * Returns an array with the advertised addresses and the detected one
      */
-    public Peer[] getHandshakeIPs(){
+    protected Peer[] getHandshakeIPs(){
         return handshakeIPs;
     }

@@ -941,10 +942,12 @@
      * Send a message, right now, on this thread, to this node.
      */
     public void send(Message req) throws NotConnectedException {
-        if(!isConnected) {
-            Logger.error(this, "Tried to send "+req+" but not connected to 
"+this, new Exception("debug"));
-            return;
-        }
+       synchronized (this) {
+            if(!isConnected()) {
+                Logger.error(this, "Tried to send "+req+" but not connected to 
"+this, new Exception("debug"));
+                return;
+            }
+               }
         node.usm.send(this, req);
     }

@@ -1537,11 +1540,13 @@
         fs.put("testnet", Boolean.toString(testnetEnabled));
         fs.put("version", version);
         fs.put("myName", myName);
-        if(myARK != null) {
-               // Decrement it because we keep the number we would like to 
fetch, not the last one fetched.
-               fs.put("ark.number", Long.toString(myARK.suggestedEdition-1));
-               fs.put("ark.pubURI", myARK.getBaseSSK().toString(false));
-        }
+        synchronized (myARK) {
+            if(myARK != null) {
+               // Decrement it because we keep the number we would like to 
fetch, not the last one fetched.
+               fs.put("ark.number", Long.toString(myARK.suggestedEdition-1));
+               fs.put("ark.pubURI", myARK.getBaseSSK().toString(false));
+            }
+               }
         return fs;
     }

@@ -1850,11 +1855,13 @@
                localNodeReceivedMessageTypes.put(messageSpecName,count);
        }

+       //FIXME: maybe return a copy insteed
        public Hashtable getLocalNodeSentMessagesToStatistic ()
        {
                return localNodeSentMessageTypes;
        }
-
+       
+       //FIXME: maybe return a copy insteed
        public Hashtable getLocalNodeReceivedMessagesFromStatistic ()
        {
                return localNodeReceivedMessageTypes;

Modified: trunk/freenet/src/freenet/node/TextModeClientInterfaceServer.java
===================================================================
--- trunk/freenet/src/freenet/node/TextModeClientInterfaceServer.java   
2006-07-05 08:28:11 UTC (rev 9467)
+++ trunk/freenet/src/freenet/node/TextModeClientInterfaceServer.java   
2006-07-05 10:10:36 UTC (rev 9468)
@@ -149,7 +149,7 @@
        }

        public void set(String val) throws InvalidConfigValueException {
-               if(val == get()) return;
+               if(val.equals(get())) return;
                throw new InvalidConfigValueException("Cannot be updated on the 
fly");
        }
     }


Reply via email to