summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Grover <joeygrover@gmail.com>2016-11-22 15:01:16 -0500
committerGitHub <noreply@github.com>2016-11-22 15:01:16 -0500
commit3901d52b2a4dd3bd5ff984347201b09c482fdf97 (patch)
tree33201896ae83720db875051ed21e59d514baa00a
parenta1c73c388c7b76c6b4779fe8c7ca1b317c53dd96 (diff)
parentf27253394f5f8103701116d579225fc0502ecabd (diff)
downloadsdl_android-3901d52b2a4dd3bd5ff984347201b09c482fdf97.tar.gz
Merge pull request #366 from smartdevicelink/bugfix/issue_3654.2.1
Hotfix - NPE crash in RouterServiceProvider
-rw-r--r--sdl_android_lib/src/com/smartdevicelink/transport/SdlBroadcastReceiver.java6
-rw-r--r--sdl_android_lib/src/com/smartdevicelink/transport/SdlRouterService.java17
-rw-r--r--sdl_android_lib/src/com/smartdevicelink/transport/SdlRouterStatusProvider.java5
-rw-r--r--sdl_android_lib/src/com/smartdevicelink/transport/TransportBroker.java2
4 files changed, 23 insertions, 7 deletions
diff --git a/sdl_android_lib/src/com/smartdevicelink/transport/SdlBroadcastReceiver.java b/sdl_android_lib/src/com/smartdevicelink/transport/SdlBroadcastReceiver.java
index c83699505..fa243c585 100644
--- a/sdl_android_lib/src/com/smartdevicelink/transport/SdlBroadcastReceiver.java
+++ b/sdl_android_lib/src/com/smartdevicelink/transport/SdlBroadcastReceiver.java
@@ -253,7 +253,11 @@ public abstract class SdlBroadcastReceiver extends BroadcastReceiver{
if(triggerRouterServicePing){provider.setFlags(TransportConstants.ROUTER_STATUS_FLAG_TRIGGER_PING); }
provider.checkIsConnected();
}else{
- Log.d(TAG, service.getPackageName() + " is connected = " + connected);
+ if(service!=null){
+ Log.d(TAG, service.getPackageName() + " is connected = " + connected);
+ }else{
+ Log.d(TAG,"No service is connected/running");
+ }
if(callback!=null){
callback.onConnectionStatusUpdate(connected, service,context);
}
diff --git a/sdl_android_lib/src/com/smartdevicelink/transport/SdlRouterService.java b/sdl_android_lib/src/com/smartdevicelink/transport/SdlRouterService.java
index 254556014..608855631 100644
--- a/sdl_android_lib/src/com/smartdevicelink/transport/SdlRouterService.java
+++ b/sdl_android_lib/src/com/smartdevicelink/transport/SdlRouterService.java
@@ -86,7 +86,7 @@ public class SdlRouterService extends Service{
/**
* <b> NOTE: DO NOT MODIFY THIS UNLESS YOU KNOW WHAT YOU'RE DOING.</b>
*/
- protected static final int ROUTER_SERVICE_VERSION_NUMBER = 2;
+ protected static final int ROUTER_SERVICE_VERSION_NUMBER = 3;
private static final String ROUTER_SERVICE_PROCESS = "com.smartdevicelink.router";
@@ -320,7 +320,7 @@ public class SdlRouterService extends Service{
* Handler of incoming messages from clients.
*/
static class RouterHandler extends Handler {
- WeakReference<SdlRouterService> provider;
+ final WeakReference<SdlRouterService> provider;
public RouterHandler(SdlRouterService provider){
this.provider = new WeakReference<SdlRouterService>(provider);
@@ -328,6 +328,9 @@ public class SdlRouterService extends Service{
@Override
public void handleMessage(Message msg) {
+ if(this.provider.get() == null){
+ return;
+ }
final Bundle receivedBundle = msg.getData();
Bundle returnBundle;
final SdlRouterService service = this.provider.get();
@@ -543,7 +546,7 @@ public class SdlRouterService extends Service{
*/
static class AltTransportHandler extends Handler {
ClassLoader loader;
- WeakReference<SdlRouterService> provider;
+ final WeakReference<SdlRouterService> provider;
public AltTransportHandler(SdlRouterService provider){
this.provider = new WeakReference<SdlRouterService>(provider);
@@ -552,6 +555,9 @@ public class SdlRouterService extends Service{
@Override
public void handleMessage(Message msg) {
+ if(this.provider.get() == null){
+ return;
+ }
SdlRouterService service = this.provider.get();
Bundle receivedBundle = msg.getData();
switch(msg.what){
@@ -626,7 +632,7 @@ public class SdlRouterService extends Service{
* Handler of incoming messages from an alternative transport (USB).
*/
static class RouterStatusHandler extends Handler {
- WeakReference<SdlRouterService> provider;
+ final WeakReference<SdlRouterService> provider;
public RouterStatusHandler(SdlRouterService provider){
this.provider = new WeakReference<SdlRouterService>(provider);
@@ -634,6 +640,9 @@ public class SdlRouterService extends Service{
@Override
public void handleMessage(Message msg) {
+ if(this.provider.get() == null){
+ return;
+ }
SdlRouterService service = this.provider.get();
switch(msg.what){
case TransportConstants.ROUTER_STATUS_CONNECTED_STATE_REQUEST:
diff --git a/sdl_android_lib/src/com/smartdevicelink/transport/SdlRouterStatusProvider.java b/sdl_android_lib/src/com/smartdevicelink/transport/SdlRouterStatusProvider.java
index 4b98475db..916b414d3 100644
--- a/sdl_android_lib/src/com/smartdevicelink/transport/SdlRouterStatusProvider.java
+++ b/sdl_android_lib/src/com/smartdevicelink/transport/SdlRouterStatusProvider.java
@@ -125,7 +125,7 @@ public class SdlRouterStatusProvider {
}
static class ClientHandler extends Handler {
- WeakReference<SdlRouterStatusProvider> provider;
+ final WeakReference<SdlRouterStatusProvider> provider;
public ClientHandler(SdlRouterStatusProvider provider){
this.provider = new WeakReference<SdlRouterStatusProvider>(provider);
@@ -133,6 +133,9 @@ public class SdlRouterStatusProvider {
@Override
public void handleMessage(Message msg) {
+ if(provider.get()==null){
+ return;
+ }
switch (msg.what) {
case TransportConstants.ROUTER_STATUS_CONNECTED_STATE_RESPONSE:
provider.get().handleRouterStatusConnectedResponse(msg.arg1);
diff --git a/sdl_android_lib/src/com/smartdevicelink/transport/TransportBroker.java b/sdl_android_lib/src/com/smartdevicelink/transport/TransportBroker.java
index 8d23a027b..9566956c2 100644
--- a/sdl_android_lib/src/com/smartdevicelink/transport/TransportBroker.java
+++ b/sdl_android_lib/src/com/smartdevicelink/transport/TransportBroker.java
@@ -128,7 +128,7 @@ public class TransportBroker {
*/
static class ClientHandler extends Handler {
ClassLoader loader;
- WeakReference<TransportBroker> provider;
+ final WeakReference<TransportBroker> provider;
public ClientHandler(TransportBroker provider){
this.provider = new WeakReference<TransportBroker>(provider);