Author: toad
Date: 2008-04-16 18:33:27 +0000 (Wed, 16 Apr 2008)
New Revision: 19376
Modified:
trunk/freenet/src/freenet/client/async/BackgroundBlockEncoder.java
trunk/freenet/src/freenet/client/async/SingleFileFetcher.java
trunk/freenet/src/freenet/clients/http/QueueToadlet.java
trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties
trunk/freenet/src/freenet/node/DNSRequester.java
trunk/freenet/src/freenet/node/NodeClientCore.java
trunk/freenet/src/freenet/node/RequestStarter.java
trunk/freenet/src/freenet/node/TestnetHandler.java
trunk/freenet/src/freenet/node/TestnetStatusUploader.java
trunk/freenet/src/freenet/node/TextModeClientInterfaceServer.java
trunk/freenet/src/freenet/node/fcp/ClientPutComplexDirMessage.java
trunk/freenet/src/freenet/node/fcp/ClientPutDir.java
trunk/freenet/src/freenet/node/fcp/ClientPutDiskDirMessage.java
trunk/freenet/src/freenet/node/fcp/FCPClient.java
trunk/freenet/src/freenet/node/fcp/FCPConnectionHandler.java
trunk/freenet/src/freenet/node/fcp/FCPMessage.java
trunk/freenet/src/freenet/node/fcp/FCPServer.java
trunk/freenet/src/freenet/node/fcp/PersistentPutDir.java
trunk/freenet/src/freenet/node/fcp/RemovePersistentRequest.java
trunk/freenet/src/freenet/node/fcp/RequestCompletionCallback.java
trunk/freenet/src/freenet/pluginmanager/FredPluginFCP.java
trunk/freenet/src/freenet/pluginmanager/PluginManager.java
trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
trunk/freenet/src/freenet/support/PooledExecutor.java
trunk/freenet/test/freenet/support/FieldsTest.java
Log:
Another temporary revert.
Modified: trunk/freenet/src/freenet/client/async/BackgroundBlockEncoder.java
===================================================================
--- trunk/freenet/src/freenet/client/async/BackgroundBlockEncoder.java
2008-04-16 18:29:03 UTC (rev 19375)
+++ trunk/freenet/src/freenet/client/async/BackgroundBlockEncoder.java
2008-04-16 18:33:27 UTC (rev 19376)
@@ -3,15 +3,13 @@
import java.lang.ref.SoftReference;
import java.util.ArrayList;
-import freenet.node.PrioRunnable;
import freenet.support.Logger;
-import freenet.support.io.NativeThread;
/**
* Keeps a queue of SingleBlockInserter's to encode.
* Encodes them.
*/
-public class BackgroundBlockEncoder implements PrioRunnable {
+public class BackgroundBlockEncoder implements Runnable {
// Minimize memory usage at the cost of having to encode from the end
private final ArrayList queue;
@@ -71,8 +69,4 @@
}
}
- public int getPriority() {
- return NativeThread.MIN_PRIORITY;
- }
-
}
Modified: trunk/freenet/src/freenet/client/async/SingleFileFetcher.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SingleFileFetcher.java
2008-04-16 18:29:03 UTC (rev 19375)
+++ trunk/freenet/src/freenet/client/async/SingleFileFetcher.java
2008-04-16 18:33:27 UTC (rev 19376)
@@ -241,14 +241,14 @@
if(logMINOR) Logger.minor(this, "Is simple
manifest");
String name;
if(metaStrings.isEmpty())
- throw new
FetchException(FetchException.NOT_ENOUGH_PATH_COMPONENTS, -1, false, null,
uri.addMetaStrings(new String[] { "" }));
+ throw new
FetchException(FetchException.NOT_ENOUGH_PATH_COMPONENTS, -1, false, null,
thisKey.addMetaStrings(new String[] { "" }));
else name = removeMetaString();
// Since metadata is a document, we just
replace metadata here
if(logMINOR) Logger.minor(this, "Next
meta-string: "+name);
if(name == null) {
metadata =
metadata.getDefaultDocument();
if(metadata == null)
- throw new
FetchException(FetchException.NOT_ENOUGH_PATH_COMPONENTS, -1, false, null,
uri.addMetaStrings(new String[] { "" }));
+ throw new
FetchException(FetchException.NOT_ENOUGH_PATH_COMPONENTS, -1, false, null,
thisKey.addMetaStrings(new String[] { "" }));
} else {
metadata = metadata.getDocument(name);
thisKey = thisKey.pushMetaString(name);
@@ -488,7 +488,7 @@
// It would be useful
to be able to fetch the data ...
// On the other hand
such inserts could cause unpredictable results?
// Would be useful to
make a redirect to the key we actually fetched.
- rcb.onFailure(new
FetchException(FetchException.INVALID_METADATA, "Invalid metadata: too many
path components in redirects", uri.dropLastMetaStrings(1)), this);
+ rcb.onFailure(new
FetchException(FetchException.INVALID_METADATA, "Invalid metadata: too many
path components in redirects", thisKey), this);
} else {
//
TOO_MANY_PATH_COMPONENTS
// report to user
Modified: trunk/freenet/src/freenet/clients/http/QueueToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/QueueToadlet.java 2008-04-16
18:29:03 UTC (rev 19375)
+++ trunk/freenet/src/freenet/clients/http/QueueToadlet.java 2008-04-16
18:33:27 UTC (rev 19376)
@@ -20,7 +20,6 @@
import java.text.NumberFormat;
import java.util.Collections;
import java.util.Comparator;
-import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
@@ -1073,8 +1072,6 @@
*/
private final HashSet completedRequestIdentifiers = new HashSet();
- private final HashMap alertsByIdentifier = new HashMap();
-
public void notifyFailure(ClientRequest req) {
// FIXME do something???
}
@@ -1212,22 +1209,14 @@
L10n.addL10nSubstitution(text,
"QueueToadlet.downloadSucceeded",
new String[] { "link", "/link",
"origlink", "/origlink", "filename", "size" },
new String[] { "<a
href=\"/queue/"+uri.toACIIString()+"\">", "</a>", "<a
href=\"/"+uri.toACIIString()+"\">", "</a>", name, SizeUtil.formatSize(size) } );
- UserAlert alert =
- new SimpleHTMLUserAlert(true, title, text,
UserAlert.MINOR) {
+ core.alerts.register(new SimpleHTMLUserAlert(true,
title, text, UserAlert.MINOR) {
public void onDismiss() {
synchronized(completedRequestIdentifiers) {
completedRequestIdentifiers.remove(identifier);
}
- synchronized(alertsByIdentifier) {
-
alertsByIdentifier.remove(identifier);
- }
saveCompletedIdentifiersOffThread();
}
- };
- core.alerts.register(alert);
- synchronized(alertsByIdentifier) {
- alertsByIdentifier.put(identifier, alert);
- }
+ });
} else if(req instanceof ClientPut) {
FreenetURI uri = ((ClientPut)req).getFinalURI();
long size = ((ClientPut)req).getDataSize();
@@ -1237,48 +1226,32 @@
L10n.addL10nSubstitution(text,
"QueueToadlet.uploadSucceeded",
new String[] { "link", "/link",
"filename", "size" },
new String[] { "<a
href=\"/"+uri.toACIIString()+"\">", "</a>", name, SizeUtil.formatSize(size) } );
- UserAlert alert =
- new SimpleHTMLUserAlert(true, title, text,
UserAlert.MINOR) {
+ core.alerts.register(new SimpleHTMLUserAlert(true,
title, text, UserAlert.MINOR) {
public void onDismiss() {
synchronized(completedRequestIdentifiers) {
completedRequestIdentifiers.remove(identifier);
}
- synchronized(alertsByIdentifier) {
-
alertsByIdentifier.remove(identifier);
- }
saveCompletedIdentifiersOffThread();
}
- };
- core.alerts.register(alert);
- synchronized(alertsByIdentifier) {
- alertsByIdentifier.put(identifier, alert);
- }
+ });
} else if(req instanceof ClientPutDir) {
FreenetURI uri = ((ClientPutDir)req).getFinalURI();
long size = ((ClientPutDir)req).getTotalDataSize();
int files = ((ClientPutDir)req).getNumberOfFiles();
String name = uri.getPreferredFilename();
- String title = l10n("siteUploadSucceededTitle",
"filename", name);
+ String title =
l10n("QueueToadlet.siteUploadSucceededTitle", "filename", name);
HTMLNode text = new HTMLNode("div");
L10n.addL10nSubstitution(text,
"QueueToadlet.siteUploadSucceeded",
new String[] { "link", "/link",
"filename", "size", "files" },
new String[] { "<a
href=\"/"+uri.toACIIString()+"\">", "</a>", name, SizeUtil.formatSize(size),
Integer.toString(files) } );
- UserAlert alert =
- new SimpleHTMLUserAlert(true, title, text,
UserAlert.MINOR) {
+ core.alerts.register(new SimpleHTMLUserAlert(true,
title, text, UserAlert.MINOR) {
public void onDismiss() {
synchronized(completedRequestIdentifiers) {
completedRequestIdentifiers.remove(identifier);
}
- synchronized(alertsByIdentifier) {
-
alertsByIdentifier.remove(identifier);
- }
saveCompletedIdentifiersOffThread();
}
- };
- core.alerts.register(alert);
- synchronized(alertsByIdentifier) {
- alertsByIdentifier.put(identifier, alert);
- }
+ });
}
}
@@ -1286,17 +1259,4 @@
return L10n.getString("QueueToadlet."+key, pattern, value);
}
- public void onRemove(ClientRequest req) {
- String identifier = req.getIdentifier();
- synchronized(completedRequestIdentifiers) {
- completedRequestIdentifiers.remove(identifier);
- }
- UserAlert alert;
- synchronized(alertsByIdentifier) {
- alert = (UserAlert)
alertsByIdentifier.remove(identifier);
- }
- core.alerts.unregister(alert);
- saveCompletedIdentifiersOffThread();
- }
-
}
Modified: trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties
===================================================================
--- trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties 2008-04-16
18:29:03 UTC (rev 19375)
+++ trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties 2008-04-16
18:33:27 UTC (rev 19376)
@@ -1018,7 +1018,7 @@
StatisticsToadlet.swapOutput=Swapping Output: ${total}.
StatisticsToadlet.threadDumpButton=Generate a Thread Dump
StatisticsToadlet.threads=Running threads: ${running}/${max}
-StatisticsToadlet.threadsByPriority=Pooled threads by priority
+StatisticsToadlet.threadsByPriority=Threads by priority
StatisticsToadlet.totalOverhead=Total non-request overhead: ${rate}/sec
(${percent}%).
StatisticsToadlet.priority=Priority
StatisticsToadlet.resendBytes=Resent bytes: ${total}
Modified: trunk/freenet/src/freenet/node/DNSRequester.java
===================================================================
--- trunk/freenet/src/freenet/node/DNSRequester.java 2008-04-16 18:29:03 UTC
(rev 19375)
+++ trunk/freenet/src/freenet/node/DNSRequester.java 2008-04-16 18:33:27 UTC
(rev 19376)
@@ -13,6 +13,7 @@
*/
public class DNSRequester implements Runnable {
+ final Thread myThread;
final Node node;
private long lastLogTime;
// Only set when doing simulations.
@@ -20,12 +21,14 @@
DNSRequester(Node node) {
this.node = node;
+ myThread = new Thread(this, "DNSRequester thread for
"+node.getDarknetPortNumber());
+ myThread.setDaemon(true);
}
void start() {
Logger.normal(this, "Starting DNSRequester");
System.out.println("Starting DNSRequester");
- node.executor.execute(this, "DNSRequester thread for
"+node.getDarknetPortNumber());
+ myThread.start();
}
public void run() {
Modified: trunk/freenet/src/freenet/node/NodeClientCore.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeClientCore.java 2008-04-16 18:29:03 UTC
(rev 19375)
+++ trunk/freenet/src/freenet/node/NodeClientCore.java 2008-04-16 18:33:27 UTC
(rev 19376)
@@ -116,6 +116,7 @@
static final int MAX_CACHED_ELEMENTS = 256*1024; // equally arbitrary!
FIXME hopefully we can cache many of these though
private UserAlert startingUpAlert;
+ private final NativeThread backgroundBlockEncoderThread;
NodeClientCore(Node node, Config config, SubConfig nodeConfig, File
nodeDir, int portNumber, int sortOrder, SimpleFieldSet oldThrottleFS,
SimpleFieldSet oldConfig, SubConfig fproxyConfig, SimpleToadletServer toadlets)
throws NodeInitException {
this.node = node;
@@ -130,6 +131,8 @@
else prio = NativeThread.MIN_PRIORITY;
clientSlowSerialExecutor[i] = new SerialExecutor(prio);
}
+ backgroundBlockEncoderThread = new
NativeThread(backgroundBlockEncoder, "Background block encoder",
NativeThread.MIN_PRIORITY, false);
+ backgroundBlockEncoderThread.setDaemon(true);
byte[] pwdBuf = new byte[16];
random.nextBytes(pwdBuf);
this.formPassword = Base64.encode(pwdBuf);
@@ -393,7 +396,7 @@
}
public void start(Config config) throws NodeInitException {
- node.executor.execute(backgroundBlockEncoder, "Background block
encoder");
+ backgroundBlockEncoderThread.start();
persister.start();
if(fcpServer != null)
fcpServer.maybeStart();
Modified: trunk/freenet/src/freenet/node/RequestStarter.java
===================================================================
--- trunk/freenet/src/freenet/node/RequestStarter.java 2008-04-16 18:29:03 UTC
(rev 19375)
+++ trunk/freenet/src/freenet/node/RequestStarter.java 2008-04-16 18:33:27 UTC
(rev 19376)
@@ -81,7 +81,9 @@
}
void start() {
- core.getExecutor().execute(this, name);
+ Thread t = new Thread(this, name);
+ t.setDaemon(true);
+ t.start();
}
final String name;
Modified: trunk/freenet/src/freenet/node/TestnetHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/TestnetHandler.java 2008-04-16 18:29:03 UTC
(rev 19375)
+++ trunk/freenet/src/freenet/node/TestnetHandler.java 2008-04-16 18:33:27 UTC
(rev 19376)
@@ -62,12 +62,15 @@
}
public void start() {
- node.executor.execute(this, "Testnet handler thread");
+ serverThread = new Thread(this, "Testnet handler thread");
+ serverThread.setDaemon(true);
+ serverThread.start();
uploader.start();
System.err.println("Started testnet handler on port
"+testnetPort);
}
private final Node node;
+ private Thread serverThread;
private ServerSocket server;
private int testnetPort;
Modified: trunk/freenet/src/freenet/node/TestnetStatusUploader.java
===================================================================
--- trunk/freenet/src/freenet/node/TestnetStatusUploader.java 2008-04-16
18:29:03 UTC (rev 19375)
+++ trunk/freenet/src/freenet/node/TestnetStatusUploader.java 2008-04-16
18:33:27 UTC (rev 19376)
@@ -34,10 +34,13 @@
}
void start() {
- node.executor.execute(this, "TestnetStatusUploader thread");
+ uploaderThread = new Thread(this, "TestnetStatusUploader
thread");
+ uploaderThread.setDaemon(true);
+ uploaderThread.start();
}
private final Node node;
+ private Thread uploaderThread;
private final int updateInterval;
private Socket client;
Modified: trunk/freenet/src/freenet/node/TextModeClientInterfaceServer.java
===================================================================
--- trunk/freenet/src/freenet/node/TextModeClientInterfaceServer.java
2008-04-16 18:29:03 UTC (rev 19375)
+++ trunk/freenet/src/freenet/node/TextModeClientInterfaceServer.java
2008-04-16 18:33:27 UTC (rev 19376)
@@ -93,7 +93,9 @@
HighLevelSimpleClient client =
core.makeClient(RequestStarter.INTERACTIVE_PRIORITY_CLASS, true);
TextModeClientInterface directTMCI =
new TextModeClientInterface(node, client,
core.downloadDir, System.in, System.out);
- node.executor.execute(directTMCI, "Direct text mode
interface");
+ Thread t = new Thread(directTMCI, "Direct text mode
interface");
+ t.setDaemon(true);
+ t.start();
core.setDirectTMCI(directTMCI);
}
Modified: trunk/freenet/src/freenet/node/fcp/ClientPutComplexDirMessage.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientPutComplexDirMessage.java
2008-04-16 18:29:03 UTC (rev 19375)
+++ trunk/freenet/src/freenet/node/fcp/ClientPutComplexDirMessage.java
2008-04-16 18:33:27 UTC (rev 19376)
@@ -144,7 +144,7 @@
// Then simply create the ClientPutDir.
HashMap manifestElements = new HashMap();
convertFilesByNameToManifestElements(filesByName,
manifestElements, node);
- handler.startClientPutDir(this, manifestElements, false);
+ handler.startClientPutDir(this, manifestElements);
}
/**
Modified: trunk/freenet/src/freenet/node/fcp/ClientPutDir.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientPutDir.java 2008-04-16
18:29:03 UTC (rev 19375)
+++ trunk/freenet/src/freenet/node/fcp/ClientPutDir.java 2008-04-16
18:33:27 UTC (rev 19376)
@@ -36,15 +36,13 @@
private final long totalSize;
private final int numberOfFiles;
private static boolean logMINOR;
- private final boolean wasDiskPut;
public ClientPutDir(FCPConnectionHandler handler, ClientPutDirMessage
message,
- HashMap manifestElements, boolean wasDiskPut) throws
IdentifierCollisionException, MalformedURLException {
+ HashMap manifestElements) throws
IdentifierCollisionException, MalformedURLException {
super(message.uri, message.identifier, message.verbosity,
handler,
message.priorityClass, message.persistenceType,
message.clientToken, message.global,
message.getCHKOnly, message.dontCompress,
message.maxRetries, message.earlyEncode);
logMINOR = Logger.shouldLog(Logger.MINOR, this);
- this.wasDiskPut = wasDiskPut;
this.manifestElements = manifestElements;
this.defaultName = message.defaultName;
makePutter();
@@ -71,7 +69,6 @@
public ClientPutDir(FCPClient client, FreenetURI uri, String
identifier, int verbosity, short priorityClass, short persistenceType, String
clientToken, boolean getCHKOnly, boolean dontCompress, int maxRetries, File
dir, String defaultName, boolean allowUnreadableFiles, boolean global, boolean
earlyEncode) throws FileNotFoundException, IdentifierCollisionException,
MalformedURLException {
super(uri, identifier, verbosity , null, client, priorityClass,
persistenceType, clientToken, global, getCHKOnly, dontCompress, maxRetries,
earlyEncode);
- wasDiskPut = true;
logMINOR = Logger.shouldLog(Logger.MINOR, this);
this.manifestElements = makeDiskDirManifest(dir, "",
allowUnreadableFiles);
this.defaultName = defaultName;
@@ -145,11 +142,6 @@
logMINOR = Logger.shouldLog(Logger.MINOR, this);
SimpleFieldSet files = fs.subset("Files");
defaultName = fs.get("DefaultName");
- String type = fs.get("PutDirType");
- if(type.equals("disk"))
- wasDiskPut = true;
- else
- wasDiskPut = false;
// Flattened for disk, sort out afterwards
int fileCount = 0;
long size = 0;
@@ -276,7 +268,6 @@
// Storing it directly would be a PITA.
ManifestElement[] elements =
SimpleManifestPutter.flatten(manifestElements);
fs.putSingle("DefaultName", defaultName);
- fs.putSingle("PutDirType", wasDiskPut ? "disk" : "complex");
for(int i=0;i<elements.length;i++) {
String num = Integer.toString(i);
ManifestElement e = elements[i];
@@ -316,7 +307,7 @@
protected FCPMessage persistentTagMessage() {
return new PersistentPutDir(identifier, publicURI, verbosity,
priorityClass,
- persistenceType, global, defaultName,
manifestElements, clientToken, started, ctx.maxInsertRetries, wasDiskPut);
+ persistenceType, global, defaultName,
manifestElements, clientToken, started, ctx.maxInsertRetries);
}
protected String getTypeName() {
Modified: trunk/freenet/src/freenet/node/fcp/ClientPutDiskDirMessage.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/ClientPutDiskDirMessage.java
2008-04-16 18:29:03 UTC (rev 19375)
+++ trunk/freenet/src/freenet/node/fcp/ClientPutDiskDirMessage.java
2008-04-16 18:33:27 UTC (rev 19376)
@@ -54,7 +54,7 @@
// Create a directory listing of Buckets of data, mapped to
ManifestElement's.
// Directories are sub-HashMap's.
HashMap buckets = makeBucketsByName(dirname, "");
- handler.startClientPutDir(this, buckets, true);
+ handler.startClientPutDir(this, buckets);
}
/**
Modified: trunk/freenet/src/freenet/node/fcp/FCPClient.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/FCPClient.java 2008-04-16 18:29:03 UTC
(rev 19375)
+++ trunk/freenet/src/freenet/node/fcp/FCPClient.java 2008-04-16 18:33:27 UTC
(rev 19376)
@@ -159,8 +159,6 @@
if(logMINOR) Logger.minor(this, "Killing request "+req);
req.cancel();
}
- if(completionCallback != null)
- completionCallback.onRemove(req);
server.forceStorePersistentRequests();
}
Modified: trunk/freenet/src/freenet/node/fcp/FCPConnectionHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/FCPConnectionHandler.java
2008-04-16 18:29:03 UTC (rev 19375)
+++ trunk/freenet/src/freenet/node/fcp/FCPConnectionHandler.java
2008-04-16 18:33:27 UTC (rev 19376)
@@ -243,7 +243,7 @@
}
}
- public void startClientPutDir(ClientPutDirMessage message, HashMap
buckets, boolean wasDiskPut) {
+ public void startClientPutDir(ClientPutDirMessage message, HashMap
buckets) {
if(Logger.shouldLog(Logger.MINOR, this))
Logger.minor(this, "Start ClientPutDir");
String id = message.identifier;
@@ -261,7 +261,7 @@
}
if(success) {
try {
- cp = new ClientPutDir(this, message, buckets,
wasDiskPut);
+ cp = new ClientPutDir(this, message, buckets);
} catch (IdentifierCollisionException e) {
success = false;
} catch (MalformedURLException e) {
@@ -447,17 +447,4 @@
}
}
}
-
- public ClientRequest removeRequestByIdentifier(String identifier,
boolean kill) {
- ClientRequest req;
- synchronized(this) {
- req = (ClientRequest)
requestsByIdentifier.remove(identifier);
- }
- if(req != null) {
- req.requestWasRemoved();
- if(kill)
- req.cancel();
- }
- return req;
- }
}
Modified: trunk/freenet/src/freenet/node/fcp/FCPMessage.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/FCPMessage.java 2008-04-16 18:29:03 UTC
(rev 19375)
+++ trunk/freenet/src/freenet/node/fcp/FCPMessage.java 2008-04-16 18:33:27 UTC
(rev 19376)
@@ -77,8 +77,7 @@
return new ModifyPersistentRequest(fs);
if(name.equals(RemovePeer.NAME))
return new RemovePeer(fs);
- if(name.equals(RemovePersistentRequest.NAME)
- ||
name.equals(RemovePersistentRequest.ALT_NAME))
+ if(name.equals(RemovePersistentRequest.NAME))
return new RemovePersistentRequest(fs);
if(name.equals(ShutdownMessage.NAME))
return new ShutdownMessage();
Modified: trunk/freenet/src/freenet/node/fcp/FCPServer.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/FCPServer.java 2008-04-16 18:29:03 UTC
(rev 19375)
+++ trunk/freenet/src/freenet/node/fcp/FCPServer.java 2008-04-16 18:33:27 UTC
(rev 19376)
@@ -88,7 +88,9 @@
private boolean hasFinishedStart;
private void startPersister() {
- node.executor.execute(persister = new FCPServerPersister(),
"FCP request persister");
+ Thread t = new Thread(persister = new FCPServerPersister(),
"FCP request persister");
+ t.setDaemon(true);
+ t.start();
}
private void killPersister() {
Modified: trunk/freenet/src/freenet/node/fcp/PersistentPutDir.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/PersistentPutDir.java 2008-04-16
18:29:03 UTC (rev 19375)
+++ trunk/freenet/src/freenet/node/fcp/PersistentPutDir.java 2008-04-16
18:33:27 UTC (rev 19376)
@@ -31,11 +31,10 @@
final String token;
final boolean started;
final int maxRetries;
- final boolean wasDiskPut;
public PersistentPutDir(String identifier, FreenetURI uri, int
verbosity,
short priorityClass, short persistenceType, boolean
global,
- String defaultName, HashMap manifestElements, String
token, boolean started, int maxRetries, boolean wasDiskPut) {
+ String defaultName, HashMap manifestElements, String
token, boolean started, int maxRetries) {
this.identifier = identifier;
this.uri = uri;
this.verbosity = verbosity;
@@ -47,7 +46,6 @@
this.token = token;
this.started = started;
this.maxRetries = maxRetries;
- this.wasDiskPut = wasDiskPut;
}
public SimpleFieldSet getFieldSet() {
@@ -58,7 +56,6 @@
fs.putSingle("Persistence",
ClientRequest.persistenceTypeString(persistenceType));
fs.put("PriorityClass", priorityClass);
fs.putSingle("Global", Boolean.toString(global));
- fs.putSingle("PutDirType", wasDiskPut ? "disk" : "complex");
SimpleFieldSet files = new SimpleFieldSet(false);
// Flatten the hierarchy, it can be reconstructed on restarting.
// Storing it directly would be a PITA.
Modified: trunk/freenet/src/freenet/node/fcp/RemovePersistentRequest.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/RemovePersistentRequest.java
2008-04-16 18:29:03 UTC (rev 19375)
+++ trunk/freenet/src/freenet/node/fcp/RemovePersistentRequest.java
2008-04-16 18:33:27 UTC (rev 19376)
@@ -11,8 +11,7 @@
*/
public class RemovePersistentRequest extends FCPMessage {
- final static String NAME = "RemoveRequest";
- final static String ALT_NAME = "RemovePersistentRequest";
+ final static String NAME = "RemovePersistentRequest";
final String identifier;
final boolean global;
@@ -39,15 +38,9 @@
FCPClient client = global ? handler.server.globalClient :
handler.getClient();
ClientRequest req = client.getRequest(identifier);
if(req==null){
- if(!global)
- req = handler.removeRequestByIdentifier(identifier,
true);
- if(req == null) {
- Logger.error(this, "Huh ? the request is null!");
- return;
- }
- } else {
- client.removeByIdentifier(identifier, true);
+ Logger.error(this, "Huh ? the request is null!");
+ return;
}
-
+ client.removeByIdentifier(identifier, true);
}
}
Modified: trunk/freenet/src/freenet/node/fcp/RequestCompletionCallback.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/RequestCompletionCallback.java
2008-04-16 18:29:03 UTC (rev 19375)
+++ trunk/freenet/src/freenet/node/fcp/RequestCompletionCallback.java
2008-04-16 18:33:27 UTC (rev 19376)
@@ -12,9 +12,4 @@
*/
public void notifyFailure(ClientRequest req);
- /**
- * Callback when a request is removed
- */
- public void onRemove(ClientRequest req);
-
}
Modified: trunk/freenet/src/freenet/pluginmanager/FredPluginFCP.java
===================================================================
--- trunk/freenet/src/freenet/pluginmanager/FredPluginFCP.java 2008-04-16
18:29:03 UTC (rev 19375)
+++ trunk/freenet/src/freenet/pluginmanager/FredPluginFCP.java 2008-04-16
18:33:27 UTC (rev 19376)
@@ -23,7 +23,7 @@
/**
* @param replysender interface to send a reply
- * @param params parameters passed in, can be null
+ * @param params parameters passed in
* @param data a bucket of data passed in, can be null
* @param access 0: direct call (plugin to plugin), 1: FCP restricted
access, 2: FCP full access
*/
Modified: trunk/freenet/src/freenet/pluginmanager/PluginManager.java
===================================================================
--- trunk/freenet/src/freenet/pluginmanager/PluginManager.java 2008-04-16
18:29:03 UTC (rev 19375)
+++ trunk/freenet/src/freenet/pluginmanager/PluginManager.java 2008-04-16
18:33:27 UTC (rev 19376)
@@ -502,10 +502,7 @@
if (logMINOR) {
Logger.minor(this, "plugin file " +
pluginFile.getAbsolutePath() + " exists: " + pluginFile.exists());
}
- int RETRIES = 5;
- for(int i=0;i<RETRIES;i++) {
if (!pluginFile.exists() || pluginFile.length() == 0) {
- try {
File tempPluginFile = null;
OutputStream pluginOutputStream = null;
URLConnection urlConnection = null;
@@ -523,9 +520,7 @@
while ((read = pluginInputStream.read(buffer))
!= -1) {
pluginOutputStream.write(buffer, 0,
read);
}
- pluginOutputStream.close();
- if(tempPluginFile.length() == 0)
- throw new
PluginNotFoundException("downloaded zero length file");
+ pluginOutputStream.close();
if(!FileUtil.renameTo(tempPluginFile,
pluginFile)) {
Logger.error(this, "could not rename
temp file to plugin file");
throw new
PluginNotFoundException("could not rename temp file to plugin file");
@@ -540,14 +535,7 @@
Closer.close(pluginOutputStream);
Closer.close(pluginInputStream);
}
- } catch (PluginNotFoundException e) {
- if(i < RETRIES-1) {
- Logger.normal(this, "Failed to load
plugin: "+e, e);
- continue;
- } else throw e;
- }
}
- }
/* now get the manifest file. */
JarFile pluginJarFile = null;
Modified: trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
===================================================================
--- trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java 2008-04-16
18:29:03 UTC (rev 19375)
+++ trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java 2008-04-16
18:33:27 UTC (rev 19376)
@@ -911,17 +911,20 @@
* <li><code>callback.routingKeyFromFullKey(); </code></li>
* <li>if <code>null</code> or <code>KeyVerifyException</code>,<code>
callback.construct().getRoutingKey()</code>,
* may throw <code>KeyVerifyException</code></li>
- * </ol>
- * <code>fullKey</code> (and hence
<code>callback.routingKeyFromFullKey(); </code>) may be
- * phantom, hence we must verify
- * <code> callback.construct().getRoutingKey() == routingkey </code>
on <code>fetch()</code>
- * </dd>
+ * <ol>
+ * <code>fullKey</code> (and hence
+ * <code>callback.routingKeyFromFullKey(); </code>) may be phantom,
hence
+ * we must verify
+ * <code> callback.construct().getRoutingKey() == routingkey </code> on
+ * <code>fetch()</code> </dd>
* </dl>
*
- * On <code>OperationStatus.KEYEXIST</code> or bad <code>
callback.construct</code>:
+ * On <code>OperationStatus.KEYEXIST</code> or bad
+ * <code> callback.construct</code>:
* <ol>
* <li>insert a database entry with random key, (minimum lru - 1); </li>
- * <li>if <code>op != OperationStatus.SUCCESS</code>,
<code>addFreeBlock()</code>.</li>
+ * <li>if <code>op != OperationStatus.SUCCESS</code>,
+ * <code>addFreeBlock()</code>.</li>
* </ol>
*
*
Modified: trunk/freenet/src/freenet/support/PooledExecutor.java
===================================================================
--- trunk/freenet/src/freenet/support/PooledExecutor.java 2008-04-16
18:29:03 UTC (rev 19375)
+++ trunk/freenet/src/freenet/support/PooledExecutor.java 2008-04-16
18:33:27 UTC (rev 19376)
@@ -15,9 +15,7 @@
*/
public class PooledExecutor implements Executor {
- /** All threads running or waiting */
private final ArrayList[] runningThreads /* <MyThread> */ = new
ArrayList[NativeThread.JAVA_PRIORITY_RANGE + 1];
- /** Threads waiting for a job */
private final ArrayList[] waitingThreads /* <MyThread> */ = new
ArrayList[runningThreads.length];
long[] threadCounter = new long[runningThreads.length];
private long jobCount;
@@ -116,7 +114,7 @@
public synchronized int[] runningThreads() {
int[] result = new int[runningThreads.length];
for(int i = 0; i < result.length; i++)
- result[i] = runningThreads[i].size() -
waitingThreads[i].size();
+ result[i] = runningThreads[i].size();
return result;
}
Modified: trunk/freenet/test/freenet/support/FieldsTest.java
===================================================================
--- trunk/freenet/test/freenet/support/FieldsTest.java 2008-04-16 18:29:03 UTC
(rev 19375)
+++ trunk/freenet/test/freenet/support/FieldsTest.java 2008-04-16 18:33:27 UTC
(rev 19376)
@@ -135,89 +135,4 @@
// expect this
}
}
-
- public void testStringToBool() {
- assertTrue(Fields.stringToBool("true"));
- assertTrue(Fields.stringToBool("TRUE"));
- assertFalse(Fields.stringToBool("false"));
- assertFalse(Fields.stringToBool("FALSE"));
-
- try {
- Fields.stringToBool("Free Tibet");
- fail();
- }
- catch(NumberFormatException e) {
- // expect this
- }
-
- try {
- Fields.stringToBool(null);
- fail();
- }
- catch(NumberFormatException e) {
- // expect this
- }
- }
-
- public void testStringToBoolWithDefault() {
- assertTrue(Fields.stringToBool("true", false));
- assertFalse(Fields.stringToBool("false", true));
- assertTrue(Fields.stringToBool("TruE", false));
- assertFalse(Fields.stringToBool("faLSE", true));
- assertTrue(Fields.stringToBool("trueXXX", true));
- assertFalse(Fields.stringToBool("XXXFalse", false));
- assertTrue(Fields.stringToBool(null, true));
- }
-
- public void testBoolToString() {
- assertEquals(Fields.boolToString(true), "true");
- assertEquals(Fields.boolToString(false), "false");
- }
-
- public void testCommaListFromString() {
- String[] expected = new String[] {"one", "two", "three",
"four"};
- String[] actual = Fields.commaList("one,two, three ,
four");
-
- for(int i = 0; i < expected.length; i++) {
- assertEquals(expected[i], actual[i]);
- }
-
- // null
- assertNull(Fields.commaList((String)null));
-
- // no items
- expected = new String[] {};
- actual = Fields.commaList("");
-
- assertTrue(expected.length == actual.length);
- }
-
- public void testStringArrayToCommaList() {
-
- String[] input = new String[] { "one", "two", "three", "four" };
-
- String expected = "one,two,three,four";
- String actual = Fields.commaList(input);
-
- assertEquals(expected, actual);
-
- // empty
- input = new String[] {};
-
- expected = "";
- actual = Fields.commaList(input);
-
- assertEquals(expected, actual);
- }
-
- public void testHashcodeForByteArray() {
- byte[] input = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7 };
-
- assertEquals(67372036, Fields.hashCode(input));
-
- // empty
- input = new byte[] {};
-
- assertEquals(0, Fields.hashCode(input));
- }
}