diff options
author | Brett <brettywhite@users.noreply.github.com> | 2017-05-16 13:32:46 -0400 |
---|---|---|
committer | Joey Grover <joeygrover@gmail.com> | 2017-05-16 18:32:45 +0100 |
commit | 5c63dc5bbcf3567f2f73012d99c516723c5efcc0 (patch) | |
tree | 0af66f6a9fe30d09ff3f63e1e4a63a3cf85a920f | |
parent | 32d3077a4f76898f3cfee530cf01357f9ffb34a9 (diff) | |
download | sdl_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
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 |