Author: toad
Date: 2008-07-12 23:38:28 +0000 (Sat, 12 Jul 2008)
New Revision: 21127
Modified:
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java
Log:
Paranoia
Modified:
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java
===================================================================
---
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java
2008-07-12 23:31:27 UTC (rev 21126)
+++
branches/db4o/freenet/src/freenet/client/async/ClientRequestSchedulerCore.java
2008-07-12 23:38:28 UTC (rev 21127)
@@ -578,7 +578,19 @@
}
long startNext = System.currentTimeMillis();
RegisterMe reg = (RegisterMe)
registerMeSet.next();
+ // FIXME remove the leftover/old core handling
at some point, an NPE is acceptable long-term.
if(reg.core != ClientRequestSchedulerCore.this)
{
+ if(reg.core == null) {
+ Logger.error(this, "Leftover
RegisterMe: core already deleted. THIS IS AN ERROR unless you have seen \"Old
core not active\" messages before this point.");
+ container.delete(reg);
+ continue;
+ }
+ if(!container.ext().isActive(reg.core))
{
+ Logger.error(this, "Old core
not active in RegisterMe - duplicated cores????");
+ container.delete(reg.core);
+ container.delete(reg);
+ continue;
+ }
Logger.error(this, "Ignoring RegisterMe
as doesn't belong to me: my insert="+isInsertScheduler+" my
ssk="+isSSKScheduler+" his insert="+reg.core.isInsertScheduler+" his
ssk="+reg.core.isSSKScheduler);
container.deactivate(reg, 1);
continue; // Don't delete.