diff --git a/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/LwM2MTransportRequest.java b/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/LwM2MTransportRequest.java index e34cfdd34e..134c979529 100644 --- a/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/LwM2MTransportRequest.java +++ b/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/LwM2MTransportRequest.java @@ -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); } }); } diff --git a/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/LwM2MTransportService.java b/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/LwM2MTransportService.java index ac2059b561..ba3cd1f736 100644 --- a/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/LwM2MTransportService.java +++ b/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/LwM2MTransportService.java @@ -415,7 +415,6 @@ public class LwM2MTransportService { List listV = new ArrayList(); 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); } - } diff --git a/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/client/LwM2MClient.java b/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/client/LwM2MClient.java index 89ef741da9..e91f8479e2 100644 --- a/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/client/LwM2MClient.java +++ b/common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/server/client/LwM2MClient.java @@ -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)); }