[freenet-cvs] r19895 - branches/saltedhashstore/freenet/src/…

Top Page
Delete this message
Reply to this message
Author: devl
Date:  
To: cvs
Subject: [freenet-cvs] r19895 - branches/saltedhashstore/freenet/src/freenet/store
Author: j16sdiz
Date: 2008-05-11 17:04:21 +0000 (Sun, 11 May 2008)
New Revision: 19895

Modified:
branches/saltedhashstore/freenet/src/freenet/store/SaltedHashFreenetStore.java
Log:
stat fix


Modified: branches/saltedhashstore/freenet/src/freenet/store/SaltedHashFreenetStore.java
===================================================================
--- branches/saltedhashstore/freenet/src/freenet/store/SaltedHashFreenetStore.java    2008-05-11 15:35:41 UTC (rev 19894)
+++ branches/saltedhashstore/freenet/src/freenet/store/SaltedHashFreenetStore.java    2008-05-11 17:04:21 UTC (rev 19895)
@@ -156,16 +156,22 @@
        if (logMINOR)
            Logger.minor(this, "Putting " + HexUtil.bytesToHex(routingKey) + " for " + callback);

-        StorableBlock oldBlock = fetch(routingKey, fullKey, false);
+        // don't use fetch(), as fetch() would do a miss++/hit++
+        Entry oldEntry = probeEntry(routingKey);

-        if (oldBlock != null) {
-            if (!collisionPossible)
-                return;
-            if (block.equals(oldBlock)) {
-                return; // already in store
-            } else {
-                if (!overwrite)
-                    throw new KeyCollisionException();
+        if (oldEntry != null) {
+            try {
+                StorableBlock oldBlock = oldEntry.getStorableBlock(routingKey, fullKey);
+                if (!collisionPossible)
+                    return;
+                if (block.equals(oldBlock)) {
+                    return; // already in store
+                } else {
+                    if (!overwrite)
+                        throw new KeyCollisionException();
+                }
+            } catch (KeyVerifyException e) {
+                // ignore
            }
        }