Author: nextgens
Date: 2007-11-03 12:24:45 +0000 (Sat, 03 Nov 2007)
New Revision: 15668

Modified:
   trunk/freenet/src/freenet/node/Node.java
   trunk/freenet/src/freenet/node/NodeClientCore.java
Log:
The object created should be GCable... hence it's better to nullify them.

Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java    2007-11-03 11:56:23 UTC (rev 
15667)
+++ trunk/freenet/src/freenet/node/Node.java    2007-11-03 12:24:45 UTC (rev 
15668)
@@ -362,7 +362,7 @@
        public final long bootID;
        public final long startupTime;

-        public final StartupToadletServer startupPageHolder;
+        private StartupToadletServer startupPageHolder;

        public final NodeClientCore clientCore;

@@ -1261,7 +1261,7 @@

                nodeStats = new NodeStats(this, sortOrder, new 
SubConfig("node.load", config), oldThrottleFS, obwLimit, ibwLimit);

-               clientCore = new NodeClientCore(this, config, nodeConfig, 
nodeDir, getDarknetPortNumber(), sortOrder, oldThrottleFS == null ? null : 
oldThrottleFS.subset("RequestStarters"), startupPageHolder);
+               clientCore = new NodeClientCore(this, config, nodeConfig, 
nodeDir, getDarknetPortNumber(), sortOrder, oldThrottleFS == null ? null : 
oldThrottleFS.subset("RequestStarters"));

                nodeConfig.register("disableHangCheckers", false, sortOrder++, 
true, false, "Node.disableHangCheckers", "Node.disableHangCheckersLong", new 
BooleanCallback() {

@@ -2751,5 +2751,10 @@
        public long getUptime() {
                return System.currentTimeMillis() - usm.getStartedTime();
        }
-
+        
+        protected void killStartupToadlet() throws IOException {
+            startupPageHolder.kill();
+            // Give it a chance to be GCed
+            startupPageHolder = null;
+        }
 }

Modified: trunk/freenet/src/freenet/node/NodeClientCore.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeClientCore.java  2007-11-03 11:56:23 UTC 
(rev 15667)
+++ trunk/freenet/src/freenet/node/NodeClientCore.java  2007-11-03 12:24:45 UTC 
(rev 15668)
@@ -16,7 +16,6 @@
 import freenet.clients.http.bookmark.BookmarkManager;
 import freenet.clients.http.FProxyToadlet;
 import freenet.clients.http.SimpleToadletServer;
-import freenet.clients.http.StartupToadletServer;
 import freenet.clients.http.filter.FilterCallback;
 import freenet.clients.http.filter.FoundURICallback;
 import freenet.clients.http.filter.GenericReadFilterCallback;
@@ -114,7 +113,7 @@
        static final long MAX_ARCHIVED_FILE_SIZE = 1024*1024; // arbitrary... 
FIXME
        static final int MAX_CACHED_ELEMENTS = 256*1024; // equally arbitrary! 
FIXME hopefully we can cache many of these though

-       NodeClientCore(Node node, Config config, SubConfig nodeConfig, File 
nodeDir, int portNumber, int sortOrder, SimpleFieldSet oldThrottleFS, 
StartupToadletServer sts) throws NodeInitException {
+       NodeClientCore(Node node, Config config, SubConfig nodeConfig, File 
nodeDir, int portNumber, int sortOrder, SimpleFieldSet oldThrottleFS) throws 
NodeInitException {
                this.node = node;
                this.nodeStats = node.nodeStats;
                this.random = node.random;
@@ -352,7 +351,7 @@
                // FProxy
                // FIXME this is a hack, the real way to do this is plugins
                try {
-                        sts.kill();
+                        node.killStartupToadlet();
                        toadletContainer = 
FProxyToadlet.maybeCreateFProxyEtc(this, node, config, fproxyConfig);
                } catch (IOException e) {
                        e.printStackTrace();


Reply via email to