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;