Author: toad
Date: 2008-06-26 19:12:59 +0000 (Thu, 26 Jun 2008)
New Revision: 20780

Modified:
   branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java
   branches/db4o/freenet/src/freenet/node/fcp/ClientPut.java
   branches/db4o/freenet/src/freenet/node/fcp/ClientPutBase.java
   branches/db4o/freenet/src/freenet/node/fcp/ClientPutDir.java
   branches/db4o/freenet/src/freenet/node/fcp/ClientRequest.java
Log:
Fix NPE sending Persistent* messages on connect

Modified: branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java   2008-06-26 
19:03:26 UTC (rev 20779)
+++ branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java   2008-06-26 
19:12:59 UTC (rev 20780)
@@ -299,7 +299,7 @@
                                throw e;
                        }
                        if(persistenceType != PERSIST_CONNECTION && !noTags) {
-                               FCPMessage msg = persistentTagMessage();
+                               FCPMessage msg = 
persistentTagMessage(container);
                                client.queueClientRequestMessage(msg, 0, 
container);
                        }
        }
@@ -311,7 +311,7 @@
                        }
                        getter.start(container, context);
                        if(persistenceType != PERSIST_CONNECTION && !finished) {
-                               FCPMessage msg = persistentTagMessage();
+                               FCPMessage msg = 
persistentTagMessage(container);
                                client.queueClientRequestMessage(msg, 0, 
container);
                        }
                        synchronized(this) {
@@ -466,7 +466,7 @@
                }
                if(!onlyData) {
                        if(includePersistentRequest) {
-                               FCPMessage msg = persistentTagMessage();
+                               FCPMessage msg = 
persistentTagMessage(container);
                                handler.queue(msg);
                        }
                        if(progressPending != null)
@@ -483,7 +483,12 @@
                        handler.queue(allDataPending);
        }

-       protected FCPMessage persistentTagMessage() {
+       protected FCPMessage persistentTagMessage(ObjectContainer container) {
+               if(persistenceType == PERSIST_FOREVER) {
+                       container.activate(uri, 5);
+                       container.activate(fctx, 1);
+                       container.activate(client, 1);
+               }
                return new PersistentGet(identifier, uri, verbosity, 
priorityClass, returnType, persistenceType, targetFile, tempFile, clientToken, 
client.isGlobalQueue, started, fctx.maxNonSplitfileRetries, binaryBlob, 
fctx.maxOutputLength);
        }


Modified: branches/db4o/freenet/src/freenet/node/fcp/ClientPut.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/ClientPut.java   2008-06-26 
19:03:26 UTC (rev 20779)
+++ branches/db4o/freenet/src/freenet/node/fcp/ClientPut.java   2008-06-26 
19:12:59 UTC (rev 20780)
@@ -338,7 +338,7 @@
                                client.lowLevelClient,
                                oldProgress, targetFilename, binaryBlob);
                if(persistenceType != PERSIST_CONNECTION) {
-                       FCPMessage msg = persistentTagMessage();
+                       FCPMessage msg = persistentTagMessage(null);
                        client.queueClientRequestMessage(msg, 0, null);
                }

@@ -348,7 +348,7 @@
                if(persistenceType != PERSIST_CONNECTION)
                        client.register(this, false, container);
                if(persistenceType != PERSIST_CONNECTION && !noTags) {
-                       FCPMessage msg = persistentTagMessage();
+                       FCPMessage msg = persistentTagMessage(container);
                        client.queueClientRequestMessage(msg, 0, container);
                }
        }
@@ -362,7 +362,7 @@
                try {
                        putter.start(earlyEncode, false, container, context);
                        if(persistenceType != PERSIST_CONNECTION && !finished) {
-                               FCPMessage msg = persistentTagMessage();
+                               FCPMessage msg = 
persistentTagMessage(container);
                                client.queueClientRequestMessage(msg, 0, 
container);
                        }
                        synchronized(this) {
@@ -428,7 +428,11 @@
                return putter;
        }

-       protected FCPMessage persistentTagMessage() {
+       protected FCPMessage persistentTagMessage(ObjectContainer container) {
+               if(persistenceType == PERSIST_FOREVER) {
+                       container.activate(publicURI, 5);
+                       container.activate(clientMetadata, 5);
+               }
                return new PersistentPut(identifier, publicURI, verbosity, 
priorityClass, uploadFrom, targetURI, 
                                persistenceType, origFilename, 
clientMetadata.getMIMEType(), client.isGlobalQueue,
                                getDataSize(), clientToken, started, 
ctx.maxInsertRetries, targetFilename, binaryBlob);

Modified: branches/db4o/freenet/src/freenet/node/fcp/ClientPutBase.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/ClientPutBase.java       
2008-06-26 19:03:26 UTC (rev 20779)
+++ branches/db4o/freenet/src/freenet/node/fcp/ClientPutBase.java       
2008-06-26 19:12:59 UTC (rev 20780)
@@ -330,7 +330,7 @@
                        container.activate(this, 2);
                }
                if(includePersistentRequest) {
-                       FCPMessage msg = persistentTagMessage();
+                       FCPMessage msg = persistentTagMessage(container);
                        handler.queue(msg);
                }


Modified: branches/db4o/freenet/src/freenet/node/fcp/ClientPutDir.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/ClientPutDir.java        
2008-06-26 19:03:26 UTC (rev 20779)
+++ branches/db4o/freenet/src/freenet/node/fcp/ClientPutDir.java        
2008-06-26 19:12:59 UTC (rev 20780)
@@ -87,7 +87,7 @@
                if(persistenceType != PERSIST_CONNECTION)
                        client.register(this, false, container);
                if(persistenceType != PERSIST_CONNECTION && !noTags) {
-                       FCPMessage msg = persistentTagMessage();
+                       FCPMessage msg = persistentTagMessage(container);
                        client.queueClientRequestMessage(msg, 0, container);
                }
        }
@@ -213,7 +213,7 @@
                numberOfFiles = fileCount;
                totalSize = size;
                if(persistenceType != PERSIST_CONNECTION) {
-                       FCPMessage msg = persistentTagMessage();
+                       FCPMessage msg = persistentTagMessage(container);
                        client.queueClientRequestMessage(msg, 0, container);
                }
        }
@@ -227,7 +227,7 @@
                        started = true;
                        if(logMINOR) Logger.minor(this, "Started "+putter);
                        if(persistenceType != PERSIST_CONNECTION && !finished) {
-                               FCPMessage msg = persistentTagMessage();
+                               FCPMessage msg = 
persistentTagMessage(container);
                                client.queueClientRequestMessage(msg, 0, 
container);
                        }
                        if(persistenceType == PERSIST_FOREVER)
@@ -311,7 +311,12 @@
                return fs;
        }

-       protected FCPMessage persistentTagMessage() {
+       protected FCPMessage persistentTagMessage(ObjectContainer container) {
+               if(persistenceType == PERSIST_FOREVER) {
+                       container.activate(publicURI, 5);
+                       container.activate(ctx, 1);
+                       container.activate(manifestElements, 5);
+               }
                return new PersistentPutDir(identifier, publicURI, verbosity, 
priorityClass,
                                persistenceType, global, defaultName, 
manifestElements, clientToken, started, ctx.maxInsertRetries, wasDiskPut);
        }

Modified: branches/db4o/freenet/src/freenet/node/fcp/ClientRequest.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/ClientRequest.java       
2008-06-26 19:03:26 UTC (rev 20779)
+++ branches/db4o/freenet/src/freenet/node/fcp/ClientRequest.java       
2008-06-26 19:12:59 UTC (rev 20780)
@@ -313,7 +313,7 @@

        public abstract boolean restart(ObjectContainer container, 
ClientContext context);

-       protected abstract FCPMessage persistentTagMessage();
+       protected abstract FCPMessage persistentTagMessage(ObjectContainer 
container);

        /**
         * Called after a ModifyPersistentRequest.


Reply via email to