String codec fixed. #168

pull/115/merge
Nikita 10 years ago
parent 196e0449c8
commit 666dd6a67b

@ -14,7 +14,7 @@ public class ValueSetScanOutput<K, V> extends CommandOutput<K, V, ListScanResult
@Override
public void set(ByteBuffer bytes) {
if (output.getPos() == null) {
output.setPos(((Number) codec.decodeMapValue(bytes)).longValue());
output.setPos(Long.valueOf(codec.decodeMapValue(bytes).toString()));
} else {
output.addValue(codec.decodeMapValue(bytes));
}

@ -16,51 +16,50 @@
package org.redisson.codec;
import java.nio.ByteBuffer;
import com.lambdaworks.redis.codec.Utf8StringCodec;
import java.nio.charset.Charset;
public class StringCodec implements RedissonCodec {
private final Utf8StringCodec codec = new Utf8StringCodec();
private Charset charset = Charset.forName("UTF-8");
@Override
public Object decodeKey(ByteBuffer bytes) {
return codec.decodeKey(bytes);
return decodeValue(bytes);
}
@Override
public Object decodeValue(ByteBuffer bytes) {
return codec.decodeValue(bytes);
return new String(bytes.array(), bytes.arrayOffset() + bytes.position(), bytes.limit(), charset);
}
@Override
public byte[] encodeKey(Object key) {
return codec.encodeKey((String)key);
return encodeValue((String)key);
}
@Override
public byte[] encodeValue(Object value) {
return codec.encodeValue((String)value);
return ((String)value).getBytes(charset);
}
@Override
public byte[] encodeMapValue(Object value) {
return codec.encodeMapValue((String)value);
return encodeValue((String)value);
}
@Override
public byte[] encodeMapKey(Object key) {
return codec.encodeMapKey((String)key);
return encodeValue((String)key);
}
@Override
public Object decodeMapValue(ByteBuffer bytes) {
return codec.decodeMapValue(bytes);
return decodeValue(bytes);
}
@Override
public Object decodeMapKey(ByteBuffer bytes) {
return codec.decodeMapKey(bytes);
return decodeValue(bytes);
}
}

Loading…
Cancel
Save