diff --git a/client/src/com/aerospike/client/Value.java b/client/src/com/aerospike/client/Value.java index 0dc598846..fde2bf4e8 100644 --- a/client/src/com/aerospike/client/Value.java +++ b/client/src/com/aerospike/client/Value.java @@ -705,6 +705,8 @@ public long toLong() { * String value. */ public static final class StringValue extends Value { + private volatile LuaValue cachedLuaValue; + private final String value; public StringValue(String value) { @@ -743,7 +745,12 @@ public Object getObject() { @Override public LuaValue getLuaValue(LuaInstance instance) { - return LuaString.valueOf(value); + LuaValue cached = cachedLuaValue; + if (cached == null) { + cached = LuaString.valueOf(value); + cachedLuaValue = cached; + } + return cached; } @Override