Author: toad
Date: 2007-03-08 00:00:43 +0000 (Thu, 08 Mar 2007)
New Revision: 12022

Modified:
   trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
Log:
Correct logic for handling EOF in the middle of a block.

Modified: trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
===================================================================
--- trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java 2007-03-07 
22:56:06 UTC (rev 12021)
+++ trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java 2007-03-08 
00:00:43 UTC (rev 12022)
@@ -1111,10 +1111,14 @@
                                }
                        }
                } catch (EOFException e) {
-                       System.err.println("Caught EOF, migrating...");
+                       long size = l * (dataBlockSize + headerBlockSize);
+                       System.err.println("Caught EOF, truncating to "+l+" 
blocks : "+size);
                        chkBlocksInStore = l;
-                       migrate();
-                       return;
+                       try {
+                               chkStore.setLength(size);
+                       } catch (IOException e1) {
+                               System.err.println("Failed to set size");
+                       }
                } catch (IOException e) {
                        Logger.error(this, "Caught "+e, e);
                        throw new Error(e);


Reply via email to