Author: toad
Date: 2007-03-08 14:49:09 +0000 (Thu, 08 Mar 2007)
New Revision: 12035
Modified:
trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
Log:
Check for dupes while reconstructing
Modified: trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
===================================================================
--- trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java 2007-03-08
14:44:41 UTC (rev 12034)
+++ trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java 2007-03-08
14:49:09 UTC (rev 12035)
@@ -1104,8 +1104,13 @@
DatabaseEntry blockDBE = new
DatabaseEntry();
storeBlockTupleBinding.objectToEntry(storeBlock, blockDBE);
OperationStatus op =
chkDB.putNoOverwrite(t,routingkeyDBE,blockDBE);
- if(op == OperationStatus.KEYEXIST)
dupes++;
- else if(op != OperationStatus.SUCCESS)
failures++;
+ if(op == OperationStatus.KEYEXIST) {
+ addFreeBlock(l, true,
"duplicate");
+ dupes++;
+ } else if(op !=
OperationStatus.SUCCESS) {
+ addFreeBlock(l, true, "failure:
"+op);
+ failures++;
+ }
t.commit();
if(l % 1024 == 0)
System.out.println("Key "+l+
'/' +(chkStore.length()/(dataBlockSize+headerBlockSize))+" OK ("+dupes+" dupes,
"+failures+" failures)");