Author: j16sdiz
Date: 2008-11-30 07:11:54 +0000 (Sun, 30 Nov 2008)
New Revision: 23995

Modified:
   trunk/freenet/src/freenet/store/saltedhash/SaltedHashFreenetStore.java
Log:
don't write to new store position until the file space have allocated
(not well tested -- please test this on windows)

Modified: trunk/freenet/src/freenet/store/saltedhash/SaltedHashFreenetStore.java
===================================================================
--- trunk/freenet/src/freenet/store/saltedhash/SaltedHashFreenetStore.java      
2008-11-29 23:43:34 UTC (rev 23994)
+++ trunk/freenet/src/freenet/store/saltedhash/SaltedHashFreenetStore.java      
2008-11-30 07:11:54 UTC (rev 23995)
@@ -331,6 +331,8 @@
                                }
 
                                Entry entry = new Entry(routingKey, header, 
data);
+                               if (!storeFileSizeSetted && prevStoreSize != 0 
&& prevStoreSize < storeSize)
+                                       entry.storeSize = prevStoreSize;
                                long[] offset = entry.getOffset();
 
                                for (int i = 0; i < offset.length; i++) {
@@ -574,6 +576,8 @@
                }
        }
 
+       private boolean storeFileSizeSetted = false;
+
        /**
         * Open all store files
         * 
@@ -600,6 +604,7 @@
                
                WrapperManager.signalStarting(10 * 60 * 1000); // 10minutes, 
for filesystem that support no sparse file.
                setStoreFileSize(storeFileSize, true);
+               storeFileSizeSetted = true;
                
                return newStore;
        }
@@ -1019,6 +1024,7 @@
                                public void init() {
                                        if (storeSize > _prevStoreSize)
                                                setStoreFileSize(storeSize, 
false);
+                                       storeFileSizeSetted = true;
 
                                        optimialK = 
BloomFilter.optimialK(bloomFilterSize, storeSize);
                                        configLock.writeLock().lock();
@@ -1486,6 +1492,7 @@
 
                        prevStoreSize = storeSize;
                        storeSize = newStoreSize;
+                       storeFileSizeSetted = false;
                        writeConfigFile();
                } finally {
                        configLock.writeLock().unlock();

_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs

Reply via email to