Author: toad
Date: 2007-03-08 15:03:24 +0000 (Thu, 08 Mar 2007)
New Revision: 12038

Modified:
   trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
Log:
Fix NPE in countCHKBlocksFromFile() from migrate()

Modified: trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
===================================================================
--- trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java 2007-03-08 
14:53:56 UTC (rev 12037)
+++ trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java 2007-03-08 
15:03:24 UTC (rev 12038)
@@ -518,7 +518,7 @@
                } catch (DatabaseNotFoundException e) {
                        System.err.println("Migrating block db index");
                        // De-dupe on keys and block numbers.
-                       migrate();
+                       migrate(storeFile.length() / (dataBlockSize + 
headerBlockSize));
                        System.err.println("De-duped, creating new index...");
                        blockNoDbConfig.setSortedDuplicates(false);
                        blockNoDbConfig.setAllowCreate(true);
@@ -1138,12 +1138,11 @@
         * 
         * FIXME: Create a list of reusable block numbers?
         */
-       private void migrate() throws DatabaseException {
+       private void migrate(long keyCount) throws DatabaseException {

                System.err.println("Migrating database: Creating unique index 
on block number");
                HashSet s = new HashSet();

-               long keyCount = countCHKBlocksFromDatabase();
                WrapperManager.signalStarting((int)(Math.max(Integer.MAX_VALUE, 
5*60*1000 + keyCount*1000)));

        Cursor c = null;


Reply via email to