Author: toad
Date: 2008-07-21 19:24:06 +0000 (Mon, 21 Jul 2008)
New Revision: 21295

Modified:
   branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
   branches/db4o/freenet/src/freenet/node/BulkCallFailureItem.java
Log:
Doh - actually delete the PersistentChosenRequest in the bulk-call-failure path.

Modified: 
branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java  
2008-07-21 19:05:42 UTC (rev 21294)
+++ branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java  
2008-07-21 19:24:06 UTC (rev 21295)
@@ -948,6 +948,9 @@
                        if(items != null && items.length > 0) {
                                if(logMINOR) Logger.minor(this, "Calling 
non-fatal failure in bulk for "+items.length+" items");
                                getter.onFailure(items, container, context);
+                               for(int i=0;i<items.length;i++)
+                                       if(items[i] != null)
+                                               container.delete(items[i].req);
                        } else
                                Logger.normal(this, "Calling non-fatal failure 
in bulk for "+getter+" but no items to run");
                }
@@ -966,7 +969,7 @@
                }
                if(get instanceof SupportsBulkCallFailure) {
                        SupportsBulkCallFailure getter = 
(SupportsBulkCallFailure) get;
-                       BulkCallFailureItem item = new BulkCallFailureItem(e, 
keyNum);
+                       BulkCallFailureItem item = new BulkCallFailureItem(e, 
keyNum, (PersistentChosenRequest) req);
                        synchronized(this) {
                                BulkCallFailureItem[] items = 
(BulkCallFailureItem[]) bulkFailureLookup.get(get);
                                if(items == null) {

Modified: branches/db4o/freenet/src/freenet/node/BulkCallFailureItem.java
===================================================================
--- branches/db4o/freenet/src/freenet/node/BulkCallFailureItem.java     
2008-07-21 19:05:42 UTC (rev 21294)
+++ branches/db4o/freenet/src/freenet/node/BulkCallFailureItem.java     
2008-07-21 19:24:06 UTC (rev 21295)
@@ -1,13 +1,18 @@
 package freenet.node;

+import freenet.client.async.PersistentChosenRequest;
+
 public class BulkCallFailureItem {

        public final LowLevelGetException e;
        public final Object token;
+       /** Removed by ClientRequestScheduler, implementor of 
SupportsBulkCallFailure should ignore. */
+       public final PersistentChosenRequest req;

-       public BulkCallFailureItem(LowLevelGetException e, Object token) {
+       public BulkCallFailureItem(LowLevelGetException e, Object token, 
PersistentChosenRequest req) {
                this.e = e;
                this.token = token;
+               this.req = req;
        }

 }


Reply via email to