diff --git a/src/main/java/net/openhft/chronicle/map/VanillaChronicleMap.java b/src/main/java/net/openhft/chronicle/map/VanillaChronicleMap.java index f827a5e8f..9a5c0ea95 100644 --- a/src/main/java/net/openhft/chronicle/map/VanillaChronicleMap.java +++ b/src/main/java/net/openhft/chronicle/map/VanillaChronicleMap.java @@ -383,11 +383,15 @@ class VanillaChronicleMap, return this.lookupUsing(key, usingValue, LockType.READ_LOCK); } - // todo remove + @Override public V acquireUsing(K key, V usingValue) { - try (Context kvContext = lookupUsing(key, usingValue, LockType.WRITE_LOCK)) { + try (WriteContext kvContext = lookupUsing(key, usingValue, LockType.WRITE_LOCK)) { + + if (!isNativeValueClass) + kvContext.dontPutOnClose(); + return kvContext.value(); } }