diff options
Diffstat (limited to 'plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/io/SortedFileMap.java')
-rw-r--r-- | plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/io/SortedFileMap.java | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/io/SortedFileMap.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/io/SortedFileMap.java index 13dc5ebdd9..244ec56751 100644 --- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/io/SortedFileMap.java +++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/io/SortedFileMap.java @@ -101,9 +101,9 @@ public abstract class SortedFileMap<K extends Comparable, V> implements Closeabl try { long index = search(key); - long pos = randomAccessFile.getFilePointer(); if (index >= 0) { + long pos = randomAccessFile.getFilePointer(); V oldValue = readValue(randomAccessFile); randomAccessFile.seek(pos); writeValue(randomAccessFile, value); @@ -111,7 +111,7 @@ public abstract class SortedFileMap<K extends Comparable, V> implements Closeabl } index = -index - 1; - for (long i = entryCount; i >= index; --i) + for (long i = entryCount; i > index; --i) { randomAccessFile.seek((i - 1) * entrySize); K k = readKey(randomAccessFile); @@ -122,7 +122,8 @@ public abstract class SortedFileMap<K extends Comparable, V> implements Closeabl writeValue(randomAccessFile, v); } - randomAccessFile.seek(pos); + ++entryCount; + randomAccessFile.seek(getPosition(index)); writeKey(randomAccessFile, key); writeValue(randomAccessFile, value); return null; |