summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Grover <joeygrover@gmail.com>2017-04-05 09:31:08 -0400
committerGitHub <noreply@github.com>2017-04-05 09:31:08 -0400
commit9dbff89668390021bc6cc9ff7a2a3c46ec612495 (patch)
treee2f2cf4fe5c6cec46fa1f9661643d28623c8e4e0
parent17da361f22f98a53771a7e1bda829b3c6f3c1f3c (diff)
parent6f4cc356f3d9e316e252512194660def78d7c2c6 (diff)
downloadsdl_android-9dbff89668390021bc6cc9ff7a2a3c46ec612495.tar.gz
Merge pull request #449 from smartdevicelink/bugfix/issue_443
Bugfix/issue 443
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/transport/RegisteredAppTests.java64
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java25
2 files changed, 76 insertions, 13 deletions
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/transport/RegisteredAppTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/transport/RegisteredAppTests.java
new file mode 100644
index 000000000..a4d4e1395
--- /dev/null
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/transport/RegisteredAppTests.java
@@ -0,0 +1,64 @@
+package com.smartdevicelink.transport;
+
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Messenger;
+import android.test.AndroidTestCase;
+
+
+/**
+ * Created by brettywhite on 4/4/17.
+ */
+
+public class RegisteredAppTests extends AndroidTestCase {
+
+ private static final String APP_ID = "123451123";
+ private static final Messenger messenger = null;
+ private static byte[] bytes = new byte[1];
+
+ public void testHandleMessage() {
+
+ // Run Test in Main Thread
+ new Handler(Looper.getMainLooper()).post(new Runnable() {
+ @Override
+ public void run() {
+
+ // Instantiate SdlRouterService and Registered App class
+ SdlRouterService router = new SdlRouterService();
+ SdlRouterService.RegisteredApp app = router.new RegisteredApp(APP_ID, messenger);
+
+ // Call Handle Message
+ app.handleMessage(TransportConstants.BYTES_TO_SEND_FLAG_LARGE_PACKET_START,bytes);
+
+ // Insure that the buffer is not null, if it is the test will fail
+ assertNotNull(app.buffer);
+
+ }
+ });
+ }
+
+ public void testNullBuffer() {
+
+ // Run Test in Main Thread
+ new Handler(Looper.getMainLooper()).post(new Runnable() {
+ @Override
+ public void run() {
+
+ // Instantiate SdlRouterService and Registered App class
+ SdlRouterService router = new SdlRouterService();
+ SdlRouterService.RegisteredApp app = router.new RegisteredApp(APP_ID, messenger);
+
+ // Force Null Buffer
+ app.buffer = null;
+
+ // Call Handle Message - Making sure it doesn't init buffer
+ app.handleMessage(TransportConstants.BYTES_TO_SEND_FLAG_NONE,bytes);
+
+ // Insure that the buffer is null. and no NPE
+ assertNull(app.buffer);
+
+ }
+ });
+ }
+}
+
diff --git a/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java b/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java
index 37d11deb5..2bae96e27 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java
@@ -2263,21 +2263,20 @@ public class SdlRouterService extends Service{
buffer = new ByteAraryMessageAssembler();
buffer.init();
}
- if(buffer == null){
- Log.e(TAG, "Unable to assemble message as buffer was null/not started");
- }
- if(!buffer.handleMessage(flags, packet)){ //If this returns false
- Log.e(TAG, "Error handling bytes");
- }
- if(buffer.isFinished()){ //We are finished building the buffer so we should write the bytes out
- byte[] bytes = buffer.getBytes();
- if(queue!=null){
- queue.add(new PacketWriteTask(bytes, 0, bytes.length,this.prioirtyForBuffingMessage));
- if(packetWriteTaskMaster!=null){
- packetWriteTaskMaster.alert();
+ if(buffer != null){
+ if (!buffer.handleMessage(flags, packet)) { //If this returns false
+ Log.e(TAG, "Error handling bytes");
+ }
+ if (buffer.isFinished()) { //We are finished building the buffer so we should write the bytes out
+ byte[] bytes = buffer.getBytes();
+ if (queue != null) {
+ queue.add(new PacketWriteTask(bytes, 0, bytes.length, this.prioirtyForBuffingMessage));
+ if (packetWriteTaskMaster != null) {
+ packetWriteTaskMaster.alert();
+ }
}
+ buffer.close();
}
- buffer.close();
}
}