summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrett <brettywhite@users.noreply.github.com>2017-05-16 13:32:46 -0400
committerJoey Grover <joeygrover@gmail.com>2017-05-16 18:32:45 +0100
commit5c63dc5bbcf3567f2f73012d99c516723c5efcc0 (patch)
tree0af66f6a9fe30d09ff3f63e1e4a63a3cf85a920f
parent32d3077a4f76898f3cfee530cf01357f9ffb34a9 (diff)
downloadsdl_android-5c63dc5bbcf3567f2f73012d99c516723c5efcc0.tar.gz
Fix potential npe in abstractPacketizerTests
* NPE fix in abstract packetizer * switched from null checks to catching exceptions * fixing tests, throwing exceptions when needed * cleaned up test on null packetizer * Formatting please * Fix formatting around catch * illegal argument exception * fixed test * removed not needed var
-rw-r--r--sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/AbstractPacketizerTests.java18
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/streaming/AbstractPacketizer.java34
2 files changed, 30 insertions, 22 deletions
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/AbstractPacketizerTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/AbstractPacketizerTests.java
index 6c5f663ba..54bc4b585 100644
--- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/AbstractPacketizerTests.java
+++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/AbstractPacketizerTests.java
@@ -42,7 +42,6 @@ public class AbstractPacketizerTests extends TestCase {
MockPacketizer testPacketizer1 = null;
MockPacketizer testPacketizer2 = null;
MockPacketizer testPacketizer3 = null;
- MockPacketizer testPacketizer4 = null;
IStreamListener testListener = new MockStreamListener();
try {
@@ -59,13 +58,19 @@ public class AbstractPacketizerTests extends TestCase {
testPacketizer1 = new MockPacketizer(testListener, testInputStream, testSessionType, testSessionId, testSdlSession);
testPacketizer2 = new MockPacketizer(null, null, null, testSessionId, testSdlSession);
testPacketizer3 = new MockPacketizer(testListener, testInputStream, testRpcRequest, testSessionType, testSessionId, testWiproVersion, testSdlSession);
- testPacketizer4 = new MockPacketizer(null, null, null, null, testSessionId, testWiproVersion, null);
+
+ try {
+ new MockPacketizer(null, null, null, null, testSessionId, testWiproVersion, null);
+ fail("Exception should be thrown");
+ }catch(Exception e) {
+ assertTrue(e instanceof IllegalArgumentException);
+ }
+
// Valid Tests
assertNotNull(Test.NOT_NULL, testPacketizer1);
assertNotNull(Test.NOT_NULL, testPacketizer2);
assertNotNull(Test.NOT_NULL, testPacketizer3);
- assertNotNull(Test.NOT_NULL, testPacketizer4);
assertEquals(Test.MATCH, testListener, testPacketizer1.getListener());
assertEquals(Test.MATCH, testInputStream, testPacketizer1.getInputStream());
@@ -83,11 +88,6 @@ public class AbstractPacketizerTests extends TestCase {
assertNull(Test.NULL, testPacketizer2.getListener());
assertNull(Test.NULL, testPacketizer2.getInputStream());
assertNull(Test.NULL, testPacketizer2.getSessionType());
- assertNull(Test.NULL, testPacketizer4.getListener());
- assertNull(Test.NULL, testPacketizer4.getInputStream());
- assertNull(Test.NULL, testPacketizer4.getSessionType());
- assertNull(Test.NULL, testPacketizer4.getRPCRequest());
- assertNull(Test.NULL, testPacketizer4.getSdlSession());
} catch (IOException e) {
fail("IOException was thrown.");
@@ -179,4 +179,4 @@ class MockPacketizer extends AbstractPacketizer {
@Override public void pause() { }
@Override public void resume() { }
-} \ No newline at end of file
+}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/streaming/AbstractPacketizer.java b/sdl_android/src/main/java/com/smartdevicelink/streaming/AbstractPacketizer.java
index 81dbdd0b0..722fa54f9 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/streaming/AbstractPacketizer.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/streaming/AbstractPacketizer.java
@@ -11,7 +11,7 @@ abstract public class AbstractPacketizer {
protected IStreamListener _streamListener = null;
protected byte _rpcSessionID = 0;
-
+
protected SessionType _serviceType = null;
protected SdlSession _session = null;
protected InputStream is = null;
@@ -20,31 +20,39 @@ abstract public class AbstractPacketizer {
protected boolean upts = false;
protected RPCRequest _request = null;
protected byte _wiproVersion = 1;
-
+
//protected long ts = 0, intervalBetweenReports = 5000, delta = 0;
protected long intervalBetweenReports = 5000, delta = 0;
- public AbstractPacketizer(IStreamListener streamListener, InputStream is, SessionType sType, byte rpcSessionID, SdlSession session) throws IOException {
- this._streamListener = streamListener;
+ public AbstractPacketizer(IStreamListener streamListener, InputStream is, SessionType sType, byte rpcSessionID, SdlSession session) throws IOException, IllegalArgumentException {
+ this._streamListener = streamListener;
this.is = is;
_rpcSessionID = rpcSessionID;
_serviceType = sType;
this._session = session;
- bufferSize = this._session.getMtu();
- buffer = new byte[bufferSize];
+ if (this._session != null) {
+ bufferSize = this._session.getMtu();
+ buffer = new byte[bufferSize];
+ }else{
+ throw new IllegalArgumentException("Session variable is null");
+ }
}
-
- public AbstractPacketizer(IStreamListener streamListener, InputStream is, RPCRequest request, SessionType sType, byte rpcSessionID, byte wiproVersion, SdlSession session) throws IOException {
- this._streamListener = streamListener;
+
+ public AbstractPacketizer(IStreamListener streamListener, InputStream is, RPCRequest request, SessionType sType, byte rpcSessionID, byte wiproVersion, SdlSession session) throws IOException, IllegalArgumentException {
+ this._streamListener = streamListener;
this.is = is;
_rpcSessionID = rpcSessionID;
_serviceType = sType;
_request = request;
_wiproVersion = wiproVersion;
this._session = session;
- bufferSize = this._session.getMtu();
- buffer = new byte[bufferSize];
- }
+ if (this._session != null) {
+ bufferSize = this._session.getMtu();
+ buffer = new byte[bufferSize];
+ }else{
+ throw new IllegalArgumentException("Session variable is null");
+ }
+ }
public abstract void start() throws IOException;
@@ -53,4 +61,4 @@ abstract public class AbstractPacketizer {
public abstract void pause();
public abstract void resume();
-}
+} \ No newline at end of file