@@ -157,6 +157,9 @@ public class DataAccount implements AccountHeader, MerkleProvable { | |||||
* @return return total count; | * @return return total count; | ||||
*/ | */ | ||||
public long getDataEntriesTotalCount() { | public long getDataEntriesTotalCount() { | ||||
if(baseAccount == null){ | |||||
return 0; | |||||
} | |||||
return baseAccount.dataset.getDataCount(); | return baseAccount.dataset.getDataCount(); | ||||
} | } | ||||
@@ -322,9 +322,15 @@ public class LedgerQueryService implements BlockchainQueryService { | |||||
if (ver < 0) { | if (ver < 0) { | ||||
entries[i] = new KVDataObject(keys[i], -1, PrimitiveType.NIL, null); | entries[i] = new KVDataObject(keys[i], -1, PrimitiveType.NIL, null); | ||||
}else { | }else { | ||||
byte[] value = dataAccount.getBytes(Bytes.fromString(keys[i]), ver); | |||||
BytesValue decodeData = BinaryProtocol.decode(value); | |||||
entries[i] = new KVDataObject(keys[i], ver, PrimitiveType.valueOf(decodeData.getType().CODE), decodeData.getValue().toBytes()); | |||||
if(dataAccount.getDataEntriesTotalCount()==0 || | |||||
dataAccount.getBytes(Bytes.fromString(keys[i]), ver) == null){ | |||||
//is the address is not exist; the result is null; | |||||
entries[i] = new KVDataObject(keys[i], -1, PrimitiveType.NIL, null); | |||||
} else { | |||||
byte[] value = dataAccount.getBytes(Bytes.fromString(keys[i]), ver); | |||||
BytesValue decodeData = BinaryProtocol.decode(value); | |||||
entries[i] = new KVDataObject(keys[i], ver, PrimitiveType.valueOf(decodeData.getType().CODE), decodeData.getValue().toBytes()); | |||||
} | |||||
} | } | ||||
} | } | ||||
@@ -393,9 +393,15 @@ public class LedgerQueryController implements BlockchainQueryService { | |||||
if (ver < 0) { | if (ver < 0) { | ||||
entries[i] = new KVDataObject(keys[i], -1, PrimitiveType.NIL, null); | entries[i] = new KVDataObject(keys[i], -1, PrimitiveType.NIL, null); | ||||
}else { | }else { | ||||
byte[] value = dataAccount.getBytes(Bytes.fromString(keys[i]), ver); | |||||
BytesValue decodeData = BinaryProtocol.decode(value); | |||||
entries[i] = new KVDataObject(keys[i], ver, PrimitiveType.valueOf(decodeData.getType().CODE), decodeData.getValue().toBytes()); | |||||
if(dataAccount.getDataEntriesTotalCount()==0 || | |||||
dataAccount.getBytes(Bytes.fromString(keys[i]), ver) == null){ | |||||
//is the address is not exist; the result is null; | |||||
entries[i] = new KVDataObject(keys[i], -1, PrimitiveType.NIL, null); | |||||
} else { | |||||
byte[] value = dataAccount.getBytes(Bytes.fromString(keys[i]), ver); | |||||
BytesValue decodeData = BinaryProtocol.decode(value); | |||||
entries[i] = new KVDataObject(keys[i], ver, PrimitiveType.valueOf(decodeData.getType().CODE), decodeData.getValue().toBytes()); | |||||
} | |||||
} | } | ||||
} | } | ||||