Author: toad
Date: 2008-06-19 16:20:51 +0000 (Thu, 19 Jun 2008)
New Revision: 20496
Modified:
branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
Log:
Call finishRegister() even if everything was in the datastore. Just don't call
innerRegister if we don't need to.
- We were forgetting to delete the RegisterMe in this case.
Modified:
branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
===================================================================
--- branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
2008-06-19 16:19:33 UTC (rev 20495)
+++ branches/db4o/freenet/src/freenet/client/async/ClientRequestScheduler.java
2008-06-19 16:20:51 UTC (rev 20496)
@@ -217,7 +217,7 @@
}, getter.getPriorityClass(), "Checking
datastore");
}
} else {
- finishRegister(req, persistent, onDatabaseThread);
+ finishRegister(req, persistent, onDatabaseThread, true);
}
}
@@ -295,28 +295,25 @@
anyValid = true;
}
}
- if(!anyValid) {
- if(logMINOR)
- Logger.minor(this, "No valid keys, returning
without registering for "+getter);
- return;
- }
- finishRegister(getter, persistent, false);
+ finishRegister(getter, persistent, false, anyValid);
}
- private void finishRegister(final SendableRequest req, boolean
persistent, boolean onDatabaseThread) {
+ private void finishRegister(final SendableRequest req, boolean
persistent, boolean onDatabaseThread, final boolean anyValid) {
if(persistent) {
// Add to the persistent registration queue
if(onDatabaseThread) {
if(!databaseExecutor.onThread()) {
throw new IllegalStateException("Not on
database thread!");
}
- schedCore.innerRegister(req, random);
+ if(anyValid)
+ schedCore.innerRegister(req, random);
schedCore.deleteRegisterMe(req);
starter.wakeUp();
} else {
databaseExecutor.execute(new Runnable() {
public void run() {
- schedCore.innerRegister(req,
random);
+ if(anyValid)
+
schedCore.innerRegister(req, random);
schedCore.deleteRegisterMe(req);
selectorContainer.commit();
}