Lwm2m: backEnd: fix bug getResourceValueToString NullPointExaption

This commit is contained in:
nickAS21 2020-12-29 19:12:45 +02:00
parent 02615cb93d
commit e91cb65399
3 changed files with 5 additions and 7 deletions

View File

@ -311,7 +311,7 @@ public class LwM2MTransportRequest {
try {
sendResponse(registration, path, response, request, lwM2MClient, isDelayedUpdate);
} catch (Exception e) {
log.error("[{}] endpoint [{}] path [{}] error Unable to after send response.", registration.getEndpoint(), path, e);
log.error("[{}] endpoint [{}] path [{}] Exception Unable to after send response.", registration.getEndpoint(), path, e);
}
});
}
@ -321,7 +321,7 @@ public class LwM2MTransportRequest {
try {
if (isDelayedUpdate) lwM2MClient.onSuccessOrErrorDelayedRequests(path);
} catch (RuntimeException t) {
log.error("[{}] endpoint [{}] path [{}] error Unable to after send response.", registration.getEndpoint(), path, t.toString());
log.error("[{}] endpoint [{}] path [{}] RuntimeException Unable to after send response.", registration.getEndpoint(), path, t);
}
});
}

View File

@ -415,7 +415,6 @@ public class LwM2MTransportService {
List listV = new ArrayList<TransportProtos.KeyValueProto>();
listV.add(v.getKv());
this.putDelayedUpdateResourcesClient(lwM2MClient, this.getResourceValueToString(lwM2MClient, k), getJsonObject(listV).get(v.getKv().getKey()), k);
System.out.printf(" k: %s, v: %s%n, v1: %s%n", k, v.getKv().getStringV(), this.getResourceValueToString(lwM2MClient, k));
});
lwM2MClient.getDelayedRequestsId().remove(attributesResponse.getRequestId());
if (lwM2MClient.getDelayedRequests().size() == 0) {
@ -425,7 +424,7 @@ public class LwM2MTransportService {
}
private void putDelayedUpdateResourcesClient(LwM2MClient lwM2MClient, Object valueOld, Object valueNew, String path) {
if (!valueOld.toString().equals(valueNew.toString())) {
if (valueNew != null && !valueNew.toString().equals(valueOld.toString())) {
lwM2MTransportRequest.sendAllRequest(lwM2MClient.getLwServer(), lwM2MClient.getRegistration(), path, POST_TYPE_OPER_WRITE_REPLACE,
ContentFormat.TLV.getName(), lwM2MClient, null, valueNew, this.context.getCtxServer().getTimeout(),
true);
@ -1160,7 +1159,7 @@ public class LwM2MTransportService {
public String getResourceValueToString(LwM2MClient lwM2MClient, String path) {
LwM2mPath pathIds = new LwM2mPath(path);
ResourceValue resourceValue = this.getResourceValue(lwM2MClient, pathIds);
return (String) this.converter.convertValue(resourceValue.getResourceValue(), this.context.getCtxServer().getResourceModelType(pathIds), ResourceModel.Type.STRING, pathIds);
return (resourceValue == null) ? null :
(String) this.converter.convertValue(resourceValue.getResourceValue(), this.context.getCtxServer().getResourceModelType(pathIds), ResourceModel.Type.STRING, pathIds);
}
}

View File

@ -104,7 +104,6 @@ public class LwM2MClient implements Cloneable {
if (objectModel != null) {
((LwM2mObjectInstance)((ReadResponse)resp).getContent()).getResources().forEach((k, v) -> {
String rez = pathIds.toString() + "/" + k;
boolean ismulti = objectModel.resources.get(k).multiple;
if (objectModel.resources.get(k).multiple){
this.resources.put(rez, new ResourceValue(v.getValues(), null, true));
}