Author: j16sdiz
Date: 2008-05-13 07:22:17 +0000 (Tue, 13 May 2008)
New Revision: 19907

Modified:
   trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
Log:
Fix infinity loop in store shrink


Modified: trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
===================================================================
--- trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java 2008-05-12 
18:00:09 UTC (rev 19906)
+++ trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java 2008-05-13 
07:22:17 UTC (rev 19907)
@@ -806,19 +806,17 @@
                                        
if(result.equals(OperationStatus.SUCCESS))
                                                deleted++;

-                                       if((curBlocks-i) % 2048 == 0) {
-                                               t.commit();
-                                               t = null;
-                                       }
+                                       t.commit();
+                                       t = null;

                                        freeBlocks.remove(i);
-                                       
+
+                                       long chkBlocksInDatabase = 
highestBlockNumberInDatabase();
                                        synchronized(this) {
                                                maxBlocks = maxBlocksInStore;
-                                               curBlocks = blocksInStore;
+                                               curBlocks = blocksInStore = 
chkBlocksInDatabase;
                                                if(maxBlocks >= curBlocks) 
break;
                                        }
-                                       
                                }

                                if(t != null)


Reply via email to