in jetcache-core/src/main/java/com/alicp/jetcache/support/AbstractJsonDecoder.java [20:49]
protected Object doApply(byte[] buffer) throws Exception {
int[] indexHolder = new int[1];
indexHolder[0] = isUseIdentityNumber() ? 4 : 0;
short objCount = readShort(buffer, indexHolder[0]);
indexHolder[0] = indexHolder[0] + 2;
if (objCount < 0) {
return null;
}
Object obj = readObject(buffer, indexHolder);
if (obj == null) {
return null;
}
if (obj instanceof CacheValueHolder) {
CacheValueHolder h = (CacheValueHolder) obj;
h.setValue(readObject(buffer, indexHolder));
return h;
} else if (obj instanceof CacheMessage) {
CacheMessage cm = (CacheMessage) obj;
if (objCount > 1) {
Object[] keys = new Object[objCount - 1];
for (int i = 0; i < objCount - 1; i++) {
keys[i] = readObject(buffer, indexHolder);
}
cm.setKeys(keys);
}
return cm;
} else {
return obj;
}
}