Author: toad
Date: 2006-07-25 21:11:35 +0000 (Tue, 25 Jul 2006)
New Revision: 9764

Modified:
   trunk/freenet/src/freenet/io/comm/IOStatisticCollector.java
   trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
Log:
Maybe fix a wierd NPE.
Reduce memory usage when shrinking datastore.

Modified: trunk/freenet/src/freenet/io/comm/IOStatisticCollector.java
===================================================================
--- trunk/freenet/src/freenet/io/comm/IOStatisticCollector.java 2006-07-25 
20:45:49 UTC (rev 9763)
+++ trunk/freenet/src/freenet/io/comm/IOStatisticCollector.java 2006-07-25 
21:11:35 UTC (rev 9764)
@@ -13,7 +13,7 @@
        private static IOStatisticCollector _currentSC;
        private long totalbytesin;
        private long totalbytesout;
-       private HashMap targets;
+       private final HashMap targets;

        private IOStatisticCollector() {
                // Only I should be able to create myself

Modified: trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java
===================================================================
--- trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java 2006-07-25 
20:45:49 UTC (rev 9763)
+++ trunk/freenet/src/freenet/store/BerkeleyDBFreenetStore.java 2006-07-25 
21:11:35 UTC (rev 9764)
@@ -262,11 +262,18 @@
                                        
if(result.equals(OperationStatus.SUCCESS))
                                                deleted++;

+                                       if((curBlocks-i) % 2048 == 0) {
+                                               t.commit();
+                                               if(i-1 >= maxBlocks)
+                                                       t = 
environment.beginTransaction(null,null);
+                                               else
+                                                       t = null;
+                                       }
+                                       
                                        synchronized(this) {
                                                maxBlocks = maxChkBlocks;
                                                curBlocks = chkBlocksInStore;
-                                               if(maxBlocks >= curBlocks)
-                                                       return;
+                                               if(maxBlocks >= curBlocks) 
break;
                                        }
                                }



Reply via email to