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)");


Reply via email to