Author: dbkr
Date: 2006-06-11 17:59:37 +0000 (Sun, 11 Jun 2006)
New Revision: 9160

Modified:
   trunk/freenet/src/freenet/node/Node.java
   trunk/freenet/src/freenet/node/NodeStarter.java
   trunk/freenet/src/freenet/node/Version.java
Log:
Separate shutting the node down and bringing it to a safe state, since the 
wrapper *really* gets in a tizz if System.exit() is called more than once. Bump 
the version too, since this may fix all manner of shutdown/restart/update 
related bugs.


Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java    2006-06-11 17:55:25 UTC (rev 
9159)
+++ trunk/freenet/src/freenet/node/Node.java    2006-06-11 17:59:37 UTC (rev 
9160)
@@ -2776,9 +2776,18 @@
        }

        public void exit(){
+               this.park();
+               System.out.println("Goodbye. from "+this);
+               System.exit(0);
+       }
+       
+       /**
+        * Get the node into a state where it can be stopped safely
+        * May be called twice - once in exit (above) and then again
+        * from the wrapper triggered by calling System.exit(). Beware!
+        */
+       public void park() {
                config.store();
-        System.out.println("Goodbye. from "+this);
-        System.exit(0);
        }

        public NodeUpdater getNodeUpdater(){

Modified: trunk/freenet/src/freenet/node/NodeStarter.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeStarter.java     2006-06-11 17:55:25 UTC 
(rev 9159)
+++ trunk/freenet/src/freenet/node/NodeStarter.java     2006-06-11 17:59:37 UTC 
(rev 9160)
@@ -158,7 +158,7 @@
      */
     public int stop( int exitCode )
     {
-       node.exit();
+       node.park();
        // see #354
        WrapperManager.signalStopping(120000);


Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-06-11 17:55:25 UTC (rev 
9159)
+++ trunk/freenet/src/freenet/node/Version.java 2006-06-11 17:59:37 UTC (rev 
9160)
@@ -18,7 +18,7 @@
        public static final String protocolVersion = "1.0";

        /** The build number of the current revision */
-       private static final int buildNumber = 804;
+       private static final int buildNumber = 805;

        /** Oldest build of Fred we will talk to */
        private static final int lastGoodBuild = 765;


Reply via email to