Author: toad
Date: 2008-01-11 19:16:25 +0000 (Fri, 11 Jan 2008)
New Revision: 17016

Modified:
   trunk/freenet/src/freenet/node/Node.java
Log:
Synchronize myName accesses

Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java    2008-01-11 17:08:23 UTC (rev 
17015)
+++ trunk/freenet/src/freenet/node/Node.java    2008-01-11 19:16:25 UTC (rev 
17016)
@@ -134,12 +134,16 @@
                        node=n;
                }
                public String get() {
-                       if(myName.startsWith("Node id|")|| 
myName.equals("MyFirstFreenetNode")){
+                       String name;
+                       synchronized(this) {
+                               name = myName;
+                       }
+                       if(name.startsWith("Node id|")|| 
name.equals("MyFirstFreenetNode")){
                                clientCore.alerts.register(nodeNameUserAlert);
                        }else{
                                clientCore.alerts.unregister(nodeNameUserAlert);
                        }
-                       return myName;
+                       return name;
                }

                public void set(String val) throws InvalidConfigValueException {
@@ -148,7 +152,9 @@
                                throw new InvalidConfigValueException("The 
given node name is too long ("+val+')');
                        else if("".equals(val))
                                val = "~none~";
-                       myName = val;
+                       synchronized(this) {
+                               myName = val;
+                       }
                        // We'll broadcast the new name to our connected 
darknet peers via a differential node reference
                        SimpleFieldSet fs = new SimpleFieldSet(true);
                        fs.putSingle("myName", myName);


Reply via email to