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)