diff options
author | Joey Grover <joeygrover@gmail.com> | 2017-04-05 09:31:08 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-05 09:31:08 -0400 |
commit | 9dbff89668390021bc6cc9ff7a2a3c46ec612495 (patch) | |
tree | e2f2cf4fe5c6cec46fa1f9661643d28623c8e4e0 | |
parent | 17da361f22f98a53771a7e1bda829b3c6f3c1f3c (diff) | |
parent | 6f4cc356f3d9e316e252512194660def78d7c2c6 (diff) | |
download | sdl_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.java | 64 | ||||
-rw-r--r-- | sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java | 25 |
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(); } } |