mirror of
https://github.com/OpenHFT/Chronicle-Map.git
synced 2021-09-13 01:26:12 +00:00
HCOLL-244 Fixed a bug with pseudo-put or remotely replicated entry
This commit is contained in:
@@ -26,6 +26,8 @@ public interface SizeMarshaller extends Serializable {
|
||||
|
||||
int sizeEncodingSize(long size);
|
||||
|
||||
long minEncodableSize();
|
||||
|
||||
int minSizeEncodingSize();
|
||||
|
||||
int maxSizeEncodingSize();
|
||||
|
||||
@@ -36,6 +36,11 @@ public final class SizeMarshallers {
|
||||
return stopBitLength(size);
|
||||
}
|
||||
|
||||
@Override
|
||||
public long minEncodableSize() {
|
||||
return 0L;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int minSizeEncodingSize() {
|
||||
return 1;
|
||||
@@ -75,6 +80,11 @@ public final class SizeMarshallers {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long minEncodableSize() {
|
||||
return size;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int minSizeEncodingSize() {
|
||||
return 0;
|
||||
|
||||
+5
@@ -71,6 +71,11 @@ public abstract class ByteableMarshaller<E extends Byteable>
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long minEncodableSize() {
|
||||
return size;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int minSizeEncodingSize() {
|
||||
return 0;
|
||||
|
||||
@@ -39,6 +39,12 @@ public enum DoubleMarshaller implements BytesInterop<Double>, BytesReader<Double
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long minEncodableSize() {
|
||||
return 8L;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int minSizeEncodingSize() {
|
||||
return 0;
|
||||
|
||||
@@ -38,6 +38,11 @@ public enum IntegerMarshaller
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long minEncodableSize() {
|
||||
return 4L;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int minSizeEncodingSize() {
|
||||
return 0;
|
||||
|
||||
@@ -38,6 +38,11 @@ public enum LongMarshaller
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long minEncodableSize() {
|
||||
return 8L;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int minSizeEncodingSize() {
|
||||
return 0;
|
||||
|
||||
@@ -37,6 +37,11 @@ public enum VoidMarshaller
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long minEncodableSize() {
|
||||
return 0L;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int minSizeEncodingSize() {
|
||||
return 0;
|
||||
|
||||
@@ -1146,7 +1146,7 @@ final class ReplicatedChronicleMap<K, KI, MKI extends MetaBytesInterop<K, ? supe
|
||||
}
|
||||
// key is not found
|
||||
if (remote) {
|
||||
long entrySize = entrySize(keySize, 0);
|
||||
long entrySize = entrySize(keySize, valueSizeMarshaller.minEncodableSize());
|
||||
long pos = alloc(inChunks(entrySize));
|
||||
long offset = offsetFromPos(pos);
|
||||
clearMetaData(offset);
|
||||
@@ -1158,6 +1158,8 @@ final class ReplicatedChronicleMap<K, KI, MKI extends MetaBytesInterop<K, ? supe
|
||||
entry.writeLong(timestamp);
|
||||
entry.writeByte(identifier);
|
||||
entry.writeBoolean(true);
|
||||
|
||||
valueSizeMarshaller.writeSize(entry, valueSizeMarshaller.minEncodableSize());
|
||||
|
||||
hashLookup.putAfterFailedSearch(searchState, pos);
|
||||
hashLookup.removePosition(pos);
|
||||
|
||||
@@ -64,6 +64,11 @@ enum DummyValueMarshaller
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long minEncodableSize() {
|
||||
return 0L;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int minSizeEncodingSize() {
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user