From ca3f04d16c16d45d8753d6f84bf83ab8fc44446a Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sun, 21 Oct 2018 16:48:08 +0400 Subject: Handle empty values --- src/org/traccar/protocol/GoSafeProtocolDecoder.java | 7 ++++++- test/org/traccar/protocol/GoSafeProtocolDecoderTest.java | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/org/traccar/protocol/GoSafeProtocolDecoder.java b/src/org/traccar/protocol/GoSafeProtocolDecoder.java index 760fcb2fd..06bd0873d 100644 --- a/src/org/traccar/protocol/GoSafeProtocolDecoder.java +++ b/src/org/traccar/protocol/GoSafeProtocolDecoder.java @@ -70,7 +70,12 @@ public class GoSafeProtocolDecoder extends BaseProtocolDecoder { private void decodeFragment(Position position, String fragment) { int dataIndex = fragment.indexOf(':'); int index = 0; - String[] values = fragment.substring(dataIndex + 1).split(";"); + String[] values; + if (fragment.length() == dataIndex + 1) { + values = new String[0]; + } else { + values = fragment.substring(dataIndex + 1).split(";"); + } switch (fragment.substring(0, dataIndex)) { case "GPS": position.setValid(values[index++].equals("A")); diff --git a/test/org/traccar/protocol/GoSafeProtocolDecoderTest.java b/test/org/traccar/protocol/GoSafeProtocolDecoderTest.java index 16ec1e68a..9cd8e4800 100644 --- a/test/org/traccar/protocol/GoSafeProtocolDecoderTest.java +++ b/test/org/traccar/protocol/GoSafeProtocolDecoderTest.java @@ -10,6 +10,9 @@ public class GoSafeProtocolDecoderTest extends ProtocolTest { GoSafeProtocolDecoder decoder = new GoSafeProtocolDecoder(null); + verifyPositions(decoder, text( + "*GS06,359568052570135,090349191018,,SYS:G3C;V1.40;V1.0.4,GPS:A;10;S26.112722;E28.078766;0;23;1581;0.80,COT:,ADC:10.86;3.79,DTT:4000;E7;0;0;0;1$090419191018,,SYS:G3C;V1.40;V1.0.4,GPS:A;10;S26.112722;E28.078766;0;23;1581;0.80,COT:,ADC:10.85;3.79,DTT:4000;E7;0;0;0;1#")); + verifyPositions(decoder, text( "*GS06,359913060650380,152248050718,,SYS:G3C;V1.38;V05,GPS:A;10;N31.914370;E35.914640;0;0,COT:689,ADC:0.18;3.55,DTT:4025;E6;0;0;0;1#")); -- cgit v1.2.3