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();