Author: toad
Date: 2008-04-08 18:06:56 +0000 (Tue, 08 Apr 2008)
New Revision: 19087

Modified:
   trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
Log:
Paranoia: check the file pointer during reconstruction (some wierd problems 
here)

Modified: trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
===================================================================
--- trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java 2008-04-08 
17:43:18 UTC (rev 19086)
+++ trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java 2008-04-08 
18:06:56 UTC (rev 19087)
@@ -37,6 +37,7 @@

 import freenet.crypt.RandomSource;
 import freenet.keys.KeyVerifyException;
+import freenet.node.NodeInitException;
 import freenet.node.SemiOrderedShutdownHook;
 import freenet.support.Fields;
 import freenet.support.HexUtil;
@@ -1128,6 +1129,10 @@
                                Transaction t = null;
                                byte[] header = new byte[headerBlockSize];
                                byte[] data = new byte[dataBlockSize];
+                               if(storeRAF.getFilePointer() != l * 
(headerBlockSize + dataBlockSize)) {
+                                       System.err.println("File pointer is 
"+storeRAF.getFilePointer()+" but should be "+((headerBlockSize + 
dataBlockSize)));
+                                       
System.exit(NodeInitException.EXIT_STORE_RECONSTRUCT);
+                               }
                                storeRAF.readFully(header);
                                storeRAF.readFully(data);
                                if(lruRAFLength > (l+1)*8) {


Reply via email to