Author: toad
Date: 2008-06-25 17:32:55 +0000 (Wed, 25 Jun 2008)
New Revision: 20699

Modified:
   branches/db4o/freenet/src/freenet/clients/http/QueueToadlet.java
   branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java
   branches/db4o/freenet/src/freenet/node/fcp/ClientPutBase.java
   branches/db4o/freenet/src/freenet/node/fcp/FCPClient.java
   branches/db4o/freenet/src/freenet/node/fcp/RequestCompletionCallback.java
Log:
Activation issues with QueueToadlet notifications.

Modified: branches/db4o/freenet/src/freenet/clients/http/QueueToadlet.java
===================================================================
--- branches/db4o/freenet/src/freenet/clients/http/QueueToadlet.java    
2008-06-25 17:24:37 UTC (rev 20698)
+++ branches/db4o/freenet/src/freenet/clients/http/QueueToadlet.java    
2008-06-25 17:32:55 UTC (rev 20699)
@@ -1096,15 +1096,15 @@

        private final HashMap alertsByIdentifier = new HashMap();

-       public void notifyFailure(ClientRequest req) {
+       public void notifyFailure(ClientRequest req, ObjectContainer container) 
{
                // FIXME do something???
        }

-       public void notifySuccess(ClientRequest req) {
+       public void notifySuccess(ClientRequest req, ObjectContainer container) 
{
                synchronized(completedRequestIdentifiers) {
                        completedRequestIdentifiers.add(req.getIdentifier());
                }
-               registerAlert(req);
+               registerAlert(req, container); // should be safe here
                saveCompletedIdentifiersOffThread();
        }

@@ -1137,7 +1137,7 @@
                                                }
                                                continue;
                                        }
-                                       registerAlert(req);
+                                       registerAlert(req, container);
                                }
                        }

@@ -1228,7 +1228,7 @@
                }
        }

-       private void registerAlert(ClientRequest req) {
+       private void registerAlert(ClientRequest req, ObjectContainer 
container) {
                final String identifier = req.getIdentifier();
                boolean logMINOR = Logger.shouldLog(Logger.MINOR, this);
                if(logMINOR)
@@ -1240,6 +1240,8 @@
                }
                if(req instanceof ClientGet) {
                        FreenetURI uri = ((ClientGet)req).getURI();
+                       if(req.isPersistentForever() && uri != null)
+                               container.activate(uri, 5);
                        long size = ((ClientGet)req).getDataSize();
                        String name = uri.getPreferredFilename();
                        String title = l10n("downloadSucceededTitle", 
"filename", name);
@@ -1268,6 +1270,8 @@
                        }
                } else if(req instanceof ClientPut) {
                        FreenetURI uri = ((ClientPut)req).getFinalURI();
+                       if(req.isPersistentForever() && uri != null)
+                               container.activate(uri, 5);
                        long size = ((ClientPut)req).getDataSize();
                        if(uri == null) {
                                Logger.error(this, "uri is null for "+req+" for 
"+identifier);
@@ -1334,7 +1338,7 @@
                return L10n.getString("QueueToadlet."+key, pattern, value);
        }

-       public void onRemove(ClientRequest req) {
+       public void onRemove(ClientRequest req, ObjectContainer container) {
                String identifier = req.getIdentifier();
                synchronized(completedRequestIdentifiers) {
                        completedRequestIdentifiers.remove(identifier);

Modified: branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java   2008-06-25 
17:24:37 UTC (rev 20698)
+++ branches/db4o/freenet/src/freenet/node/fcp/ClientGet.java   2008-06-25 
17:32:55 UTC (rev 20699)
@@ -413,7 +413,7 @@
                        container.set(this);
                }
                finish(container);
-               client.notifySuccess(this);
+               client.notifySuccess(this, container);
        }

        private void trySendDataFoundOrGetFailed(FCPConnectionOutputHandler 
handler, ObjectContainer container) {
@@ -501,7 +501,7 @@
                if(persistenceType == PERSIST_FOREVER)
                        container.set(this);
                finish(container);
-               client.notifyFailure(this);
+               client.notifyFailure(this, container);
        }

        public void onSuccess(BaseClientPutter state, ObjectContainer 
container) {

Modified: branches/db4o/freenet/src/freenet/node/fcp/ClientPutBase.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/ClientPutBase.java       
2008-06-25 17:24:37 UTC (rev 20698)
+++ branches/db4o/freenet/src/freenet/node/fcp/ClientPutBase.java       
2008-06-25 17:32:55 UTC (rev 20699)
@@ -147,7 +147,7 @@
                freeData(container);
                finish(container);
                trySendFinalMessage(null, container);
-               client.notifySuccess(this);
+               client.notifySuccess(this, container);
        }

        public void onFailure(InsertException e, BaseClientPutter state, 
ObjectContainer container) {
@@ -159,7 +159,7 @@
                freeData(container);
                finish(container);
                trySendFinalMessage(null, container);
-               client.notifyFailure(this);
+               client.notifyFailure(this, container);
        }

        public void onGeneratedURI(FreenetURI uri, BaseClientPutter state, 
ObjectContainer container) {

Modified: branches/db4o/freenet/src/freenet/node/fcp/FCPClient.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/FCPClient.java   2008-06-25 
17:24:37 UTC (rev 20698)
+++ branches/db4o/freenet/src/freenet/node/fcp/FCPClient.java   2008-06-25 
17:32:55 UTC (rev 20699)
@@ -199,7 +199,7 @@
                        req.cancel(container);
                }
                if(completionCallback != null)
-                       completionCallback.onRemove(req);
+                       completionCallback.onRemove(req, container);
                return true;
        }

@@ -336,20 +336,20 @@
        /**
         * Callback called when a request succeeds.
         */
-       public void notifySuccess(ClientRequest req) {
+       public void notifySuccess(ClientRequest req, ObjectContainer container) 
{
                assert(req.persistenceType == persistenceType);
                if(completionCallback != null)
-                       completionCallback.notifySuccess(req);
+                       completionCallback.notifySuccess(req, container);
        }

        /**
         * Callback called when a request fails
         * @param get
         */
-       public void notifyFailure(ClientRequest req) {
+       public void notifyFailure(ClientRequest req, ObjectContainer container) 
{
                assert(req.persistenceType == persistenceType);
                if(completionCallback != null)
-                       completionCallback.notifyFailure(req);
+                       completionCallback.notifyFailure(req, container);
        }

        public synchronized RequestCompletionCallback 
setRequestCompletionCallback(RequestCompletionCallback cb) {

Modified: 
branches/db4o/freenet/src/freenet/node/fcp/RequestCompletionCallback.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/fcp/RequestCompletionCallback.java   
2008-06-25 17:24:37 UTC (rev 20698)
+++ branches/db4o/freenet/src/freenet/node/fcp/RequestCompletionCallback.java   
2008-06-25 17:32:55 UTC (rev 20699)
@@ -1,20 +1,22 @@
 package freenet.node.fcp;

+import com.db4o.ObjectContainer;
+
 public interface RequestCompletionCallback {

        /**
         * Callback called when a request succeeds.
         */
-       public void notifySuccess(ClientRequest req);
+       public void notifySuccess(ClientRequest req, ObjectContainer container);

        /**
         * Callback called when a request fails
         */
-       public void notifyFailure(ClientRequest req);
+       public void notifyFailure(ClientRequest req, ObjectContainer container);

        /**
         * Callback when a request is removed
         */
-       public void onRemove(ClientRequest req);
+       public void onRemove(ClientRequest req, ObjectContainer container);

 }


Reply via email to