diff options
author | Joey Grover <joeygrover@gmail.com> | 2016-11-22 15:01:16 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-22 15:01:16 -0500 |
commit | 3901d52b2a4dd3bd5ff984347201b09c482fdf97 (patch) | |
tree | 33201896ae83720db875051ed21e59d514baa00a | |
parent | a1c73c388c7b76c6b4779fe8c7ca1b317c53dd96 (diff) | |
parent | f27253394f5f8103701116d579225fc0502ecabd (diff) | |
download | sdl_android-3901d52b2a4dd3bd5ff984347201b09c482fdf97.tar.gz |
Merge pull request #366 from smartdevicelink/bugfix/issue_3654.2.1
Hotfix - NPE crash in RouterServiceProvider
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); |