| @@ -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()); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||