diff options
author | Joey Grover <joeygrover@gmail.com> | 2019-03-04 12:09:30 -0500 |
---|---|---|
committer | Joey Grover <joeygrover@gmail.com> | 2019-03-04 12:09:30 -0500 |
commit | 5fd5502b2a597bc8a7aeb4a4a389c77da5ae71a6 (patch) | |
tree | 3d92b5da1e7198caab175dae4995accf1854cb94 | |
parent | e59b00f4443f7d3e90c86bae562cde3decd95127 (diff) | |
download | sdl_android-5fd5502b2a597bc8a7aeb4a4a389c77da5ae71a6.tar.gz |
Add null check for RPC const & clone store vs ref
-rw-r--r-- | sdl_android/src/main/java/com/smartdevicelink/proxy/RPCMessage.java | 12 | ||||
-rw-r--r-- | sdl_android/src/main/java/com/smartdevicelink/proxy/RPCRequest.java | 2 |
2 files changed, 11 insertions, 3 deletions
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/RPCMessage.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/RPCMessage.java index e55292aad..eb2c850c6 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/RPCMessage.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/RPCMessage.java @@ -15,12 +15,12 @@ public class RPCMessage extends RPCStruct { }
protected RPCMessage(RPCMessage rpcm) {
- this(rpcm.store);
+ this(cloneStore(rpcm));
}
protected RPCMessage(RPCStruct rpcs) {
this("", "");
- this.parameters = rpcs.store;
+ this.parameters = cloneStore(rpcs);
}
public RPCMessage(String functionName, String messageType) {
@@ -54,6 +54,14 @@ public class RPCMessage extends RPCStruct { protected Hashtable<String, Object> parameters;
protected Hashtable<String, Object> function;
+
+ private static Hashtable<String, Object> cloneStore(RPCStruct rpcStruct){
+ if(rpcStruct!= null && rpcStruct.store !=null){
+ return (Hashtable)rpcStruct.store.clone();
+ }
+ return null;
+ }
+
public String getFunctionName() {
return (String)function.get(KEY_FUNCTION_NAME);
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/RPCRequest.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/RPCRequest.java index e6a92924e..d5117318d 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/RPCRequest.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/RPCRequest.java @@ -23,7 +23,7 @@ public class RPCRequest extends RPCMessage { public RPCRequest(RPCRequest request){
super(request);
- if (request.getCorrelationID() == null) {
+ if (request == null || request.getCorrelationID() == null) {
setCorrelationID(CorrelationIdGenerator.generateId());
}
}
|