summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Grover <joeygrover@gmail.com>2019-03-04 12:09:30 -0500
committerJoey Grover <joeygrover@gmail.com>2019-03-04 12:09:30 -0500
commit5fd5502b2a597bc8a7aeb4a4a389c77da5ae71a6 (patch)
tree3d92b5da1e7198caab175dae4995accf1854cb94
parente59b00f4443f7d3e90c86bae562cde3decd95127 (diff)
downloadsdl_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.java12
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/RPCRequest.java2
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());
}
}