Author: toad
Date: 2008-06-28 14:50:58 +0000 (Sat, 28 Jun 2008)
New Revision: 20848

Modified:
   branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java
   branches/db4o/freenet/src/freenet/node/fcp/FCPClient.java
   branches/db4o/freenet/src/freenet/node/fcp/FCPConnectionHandler.java
   branches/db4o/freenet/src/freenet/node/fcp/FCPServer.java
   branches/db4o/freenet/src/freenet/node/fcp/GetFailedMessage.java
Log:
Activation and NPE fixes.

Modified: branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java   2008-06-28 
14:50:21 UTC (rev 20847)
+++ branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java   2008-06-28 
14:50:58 UTC (rev 20848)
@@ -341,6 +341,17 @@
        public void onSuccess(FetchResult result, ClientGetter state, 
ObjectContainer container) {
                Logger.minor(this, "Succeeded: "+identifier);
                Bucket data = result.asBucket();
+               if(persistenceType == PERSIST_FOREVER) {
+                       if(data != null)
+                               container.activate(data, 5);
+                       if(returnBucket != null)
+                               container.activate(returnBucket, 5);
+                       container.activate(client, 1);
+                       if(tempFile != null)
+                               container.activate(tempFile, 5);
+                       if(targetFile != null)
+                               container.activate(targetFile, 5);
+               }
                if(returnBucket != data && !binaryBlob) {
                        boolean failed = true;
                        synchronized(this) {
@@ -438,8 +449,11 @@
                                
container.activate(postFetchProtocolErrorMessage, 5);
                        if(handler != null)
                                handler.queue(postFetchProtocolErrorMessage);
-                       else
+                       else {
+                               if(persistenceType == PERSIST_FOREVER)
+                                       container.activate(client, 1);
                                
client.queueClientRequestMessage(postFetchProtocolErrorMessage, 0, container);
+                       }
                }

        }
@@ -450,6 +464,8 @@
                        if(persistenceType == ClientRequest.PERSIST_FOREVER)
                                container.set(this);
                } else {
+                       if(persistenceType == PERSIST_FOREVER)
+                               container.activate(client, 1);
                        client.queueClientRequestMessage(msg, 0, container);
                }
        }
@@ -460,6 +476,8 @@
                        if(persistenceType == ClientRequest.PERSIST_FOREVER)
                                container.set(this);
                }
+               if(persistenceType == PERSIST_FOREVER)
+                       container.activate(client, 1);
                client.queueClientRequestMessage(msg, 
VERBOSITY_SPLITFILE_PROGRESS, container);
        }

@@ -515,8 +533,10 @@
                if(Logger.shouldLog(Logger.MINOR, this))
                        Logger.minor(this, "Caught "+e, e);
                trySendDataFoundOrGetFailed(null, container);
-               if(persistenceType == PERSIST_FOREVER)
+               if(persistenceType == PERSIST_FOREVER) {
+                       container.activate(client, 1);
                        container.set(this);
+               }
                finish(container);
                client.notifyFailure(this, container);
        }
@@ -546,6 +566,8 @@
                }
                // notify client that request was removed
                FCPMessage msg = new 
PersistentRequestRemovedMessage(getIdentifier(), global);
+               if(persistenceType == PERSIST_FOREVER)
+                       container.activate(client, 1);
                client.queueClientRequestMessage(msg, 0, container);

                freeData(container);
@@ -657,6 +679,8 @@
                        returnBucket = null;
                }
                if(data != null) {
+                       if(persistenceType == PERSIST_FOREVER)
+                               container.activate(data, 5);
                        data.free();
                        if(persistenceType == PERSIST_FOREVER)
                                data.removeFrom(container);

Modified: branches/db4o/freenet/src/freenet/node/fcp/FCPClient.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/FCPClient.java   2008-06-28 
14:50:21 UTC (rev 20847)
+++ branches/db4o/freenet/src/freenet/node/fcp/FCPClient.java   2008-06-28 
14:50:58 UTC (rev 20848)
@@ -322,6 +322,7 @@
                        runner.queue(new DBJob() {

                                public void run(ObjectContainer container, 
ClientContext context) {
+                                       container.activate(req, 1);
                                        req.start(container, context);
                                }


Modified: branches/db4o/freenet/src/freenet/node/fcp/FCPConnectionHandler.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/FCPConnectionHandler.java        
2008-06-28 14:50:21 UTC (rev 20847)
+++ branches/db4o/freenet/src/freenet/node/fcp/FCPConnectionHandler.java        
2008-06-28 14:50:58 UTC (rev 20848)
@@ -237,6 +237,7 @@
                                                
server.core.clientContext.jobRunner.queue(new DBJob() {

                                                        public void 
run(ObjectContainer container, ClientContext context) {
+                                                               
container.activate(getter, 1);
                                                                try {
                                                                        
getter.register(container, false, false);
                                                                } catch 
(IdentifierCollisionException e) {

Modified: branches/db4o/freenet/src/freenet/node/fcp/FCPServer.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/FCPServer.java   2008-06-28 
14:50:21 UTC (rev 20847)
+++ branches/db4o/freenet/src/freenet/node/fcp/FCPServer.java   2008-06-28 
14:50:58 UTC (rev 20848)
@@ -904,6 +904,7 @@
                        core.clientContext.jobRunner.queue(new DBJob() {

                                public void run(ObjectContainer container, 
ClientContext context) {
+                                       container.activate(req, 1);
                                        try {
                                                req.start(container, context);
                                        } finally {

Modified: branches/db4o/freenet/src/freenet/node/fcp/GetFailedMessage.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/GetFailedMessage.java    
2008-06-28 14:50:21 UTC (rev 20847)
+++ branches/db4o/freenet/src/freenet/node/fcp/GetFailedMessage.java    
2008-06-28 14:50:58 UTC (rev 20848)
@@ -139,7 +139,8 @@
        public void removeFrom(ObjectContainer container) {
                if(redirectURI != null)
                        redirectURI.removeFrom(container); // URI belongs to 
the parent which is also being removed.
-               tracker.removeFrom(container);
+               if(tracker != null)
+                       tracker.removeFrom(container);
                container.delete(this);
        }



Reply via email to