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