Lwm2m: backEnd: fix bug getResourceValueToString NullPointExaption
This commit is contained in:
parent
02615cb93d
commit
e91cb65399
@ -311,7 +311,7 @@ public class LwM2MTransportRequest {
|
|||||||
try {
|
try {
|
||||||
sendResponse(registration, path, response, request, lwM2MClient, isDelayedUpdate);
|
sendResponse(registration, path, response, request, lwM2MClient, isDelayedUpdate);
|
||||||
} catch (Exception e) {
|
} 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 {
|
try {
|
||||||
if (isDelayedUpdate) lwM2MClient.onSuccessOrErrorDelayedRequests(path);
|
if (isDelayedUpdate) lwM2MClient.onSuccessOrErrorDelayedRequests(path);
|
||||||
} catch (RuntimeException t) {
|
} 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);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -415,7 +415,6 @@ public class LwM2MTransportService {
|
|||||||
List listV = new ArrayList<TransportProtos.KeyValueProto>();
|
List listV = new ArrayList<TransportProtos.KeyValueProto>();
|
||||||
listV.add(v.getKv());
|
listV.add(v.getKv());
|
||||||
this.putDelayedUpdateResourcesClient(lwM2MClient, this.getResourceValueToString(lwM2MClient, k), getJsonObject(listV).get(v.getKv().getKey()), k);
|
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());
|
lwM2MClient.getDelayedRequestsId().remove(attributesResponse.getRequestId());
|
||||||
if (lwM2MClient.getDelayedRequests().size() == 0) {
|
if (lwM2MClient.getDelayedRequests().size() == 0) {
|
||||||
@ -425,7 +424,7 @@ public class LwM2MTransportService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void putDelayedUpdateResourcesClient(LwM2MClient lwM2MClient, Object valueOld, Object valueNew, String path) {
|
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,
|
lwM2MTransportRequest.sendAllRequest(lwM2MClient.getLwServer(), lwM2MClient.getRegistration(), path, POST_TYPE_OPER_WRITE_REPLACE,
|
||||||
ContentFormat.TLV.getName(), lwM2MClient, null, valueNew, this.context.getCtxServer().getTimeout(),
|
ContentFormat.TLV.getName(), lwM2MClient, null, valueNew, this.context.getCtxServer().getTimeout(),
|
||||||
true);
|
true);
|
||||||
@ -1160,7 +1159,7 @@ public class LwM2MTransportService {
|
|||||||
public String getResourceValueToString(LwM2MClient lwM2MClient, String path) {
|
public String getResourceValueToString(LwM2MClient lwM2MClient, String path) {
|
||||||
LwM2mPath pathIds = new LwM2mPath(path);
|
LwM2mPath pathIds = new LwM2mPath(path);
|
||||||
ResourceValue resourceValue = this.getResourceValue(lwM2MClient, pathIds);
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -104,7 +104,6 @@ public class LwM2MClient implements Cloneable {
|
|||||||
if (objectModel != null) {
|
if (objectModel != null) {
|
||||||
((LwM2mObjectInstance)((ReadResponse)resp).getContent()).getResources().forEach((k, v) -> {
|
((LwM2mObjectInstance)((ReadResponse)resp).getContent()).getResources().forEach((k, v) -> {
|
||||||
String rez = pathIds.toString() + "/" + k;
|
String rez = pathIds.toString() + "/" + k;
|
||||||
boolean ismulti = objectModel.resources.get(k).multiple;
|
|
||||||
if (objectModel.resources.get(k).multiple){
|
if (objectModel.resources.get(k).multiple){
|
||||||
this.resources.put(rez, new ResourceValue(v.getValues(), null, true));
|
this.resources.put(rez, new ResourceValue(v.getValues(), null, true));
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user