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() {


Reply via email to