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) {