Author: toad
Date: 2008-06-30 14:52:52 +0000 (Mon, 30 Jun 2008)
New Revision: 20875
Modified:
branches/db4o/freenet/src/freenet/support/SortedVectorByNumber.java
Log:
DOH! Fix:
Jun 30, 2008 14:52:26:569 (freenet.node.NodeClientCore$DBJobWrapper, Client
database access thread(20), ERROR): Failed to run database job
freenet.client.async.ClientRequestScheduler$1 at 2c1b3114 : caught
java.lang.IllegalStateException: Verify failed! at 1 this=0 but last=19
Modified: branches/db4o/freenet/src/freenet/support/SortedVectorByNumber.java
===================================================================
--- branches/db4o/freenet/src/freenet/support/SortedVectorByNumber.java
2008-06-30 14:35:28 UTC (rev 20874)
+++ branches/db4o/freenet/src/freenet/support/SortedVectorByNumber.java
2008-06-30 14:52:52 UTC (rev 20875)
@@ -54,13 +54,15 @@
data = newData;
}
if(persistent) container.set(this);
- verify();
+ verify(container);
}
- private synchronized void verify() {
+ private synchronized void verify(ObjectContainer container) {
IntNumberedItem lastItem = null;
for(int i=0;i<length;i++) {
IntNumberedItem item = data[i];
+ if(persistent)
+ container.activate(data[i], 1);
if(i>0) {
if(item.getNumber() <= lastItem.getNumber())
throw new IllegalStateException("Verify
failed! at "+i+" this="+item.getNumber()+" but last="+lastItem.getNumber());
@@ -119,7 +121,7 @@
length++;
if(persistent)
container.set(this);
- verify();
+ verify(container);
}
public synchronized int count() {