aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAnton Tananaev <anton@traccar.org>2022-07-09 16:56:36 -0700
committerAnton Tananaev <anton@traccar.org>2022-07-09 16:56:36 -0700
commit6bf82f7e29e78c9ef4eab22530749991f420b2aa (patch)
tree03c6d6803d6367220fc78d554f7bd990577d427a /src
parent80b3af98806f9e837f65e8074882a97b22d65427 (diff)
downloadtrackermap-server-6bf82f7e29e78c9ef4eab22530749991f420b2aa.tar.gz
trackermap-server-6bf82f7e29e78c9ef4eab22530749991f420b2aa.tar.bz2
trackermap-server-6bf82f7e29e78c9ef4eab22530749991f420b2aa.zip
Filter null unique ids
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/traccar/protocol/WialonProtocolDecoder.java2
-rw-r--r--src/main/java/org/traccar/session/ConnectionManager.java4
2 files changed, 5 insertions, 1 deletions
diff --git a/src/main/java/org/traccar/protocol/WialonProtocolDecoder.java b/src/main/java/org/traccar/protocol/WialonProtocolDecoder.java
index 8dd7aab24..3d57525b7 100644
--- a/src/main/java/org/traccar/protocol/WialonProtocolDecoder.java
+++ b/src/main/java/org/traccar/protocol/WialonProtocolDecoder.java
@@ -39,7 +39,7 @@ public class WialonProtocolDecoder extends BaseProtocolDecoder {
}
private static final Pattern PATTERN_ANY = new PatternBuilder()
- .expression("([^#]*)?") // imei
+ .expression("([^#]+)?") // imei
.text("#") // start byte
.expression("([^#]+)") // type
.text("#") // separator
diff --git a/src/main/java/org/traccar/session/ConnectionManager.java b/src/main/java/org/traccar/session/ConnectionManager.java
index abc13988d..ad02c591b 100644
--- a/src/main/java/org/traccar/session/ConnectionManager.java
+++ b/src/main/java/org/traccar/session/ConnectionManager.java
@@ -47,11 +47,13 @@ import javax.inject.Inject;
import javax.inject.Singleton;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
+import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
@@ -114,6 +116,8 @@ public class ConnectionManager implements BroadcastInterface {
Endpoint endpoint = new Endpoint(channel, remoteAddress);
Map<String, DeviceSession> endpointSessions = sessionsByEndpoint.getOrDefault(
endpoint, new ConcurrentHashMap<>());
+
+ uniqueIds = Arrays.stream(uniqueIds).filter(Objects::nonNull).toArray(String[]::new);
if (uniqueIds.length > 0) {
for (String uniqueId : uniqueIds) {
DeviceSession deviceSession = endpointSessions.get(uniqueId);