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


Reply via email to