aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/org/traccar/session/ConnectionManager.java2
-rw-r--r--src/main/java/org/traccar/session/cache/CacheManager.java1
2 files changed, 2 insertions, 1 deletions
diff --git a/src/main/java/org/traccar/session/ConnectionManager.java b/src/main/java/org/traccar/session/ConnectionManager.java
index c8c07f9c7..6d5fefa75 100644
--- a/src/main/java/org/traccar/session/ConnectionManager.java
+++ b/src/main/java/org/traccar/session/ConnectionManager.java
@@ -128,7 +128,7 @@ public class ConnectionManager {
if (oldSession != null) {
Endpoint oldEndpoint = new Endpoint(oldSession.getChannel(), oldSession.getRemoteAddress());
Map<String, DeviceSession> oldEndpointSessions = sessionsByEndpoint.get(oldEndpoint);
- if (oldEndpointSessions.size() > 1) {
+ if (oldEndpointSessions != null && oldEndpointSessions.size() > 1) {
oldEndpointSessions.remove(device.getUniqueId());
} else {
sessionsByEndpoint.remove(oldEndpoint);
diff --git a/src/main/java/org/traccar/session/cache/CacheManager.java b/src/main/java/org/traccar/session/cache/CacheManager.java
index 14034f3d6..896df83e7 100644
--- a/src/main/java/org/traccar/session/cache/CacheManager.java
+++ b/src/main/java/org/traccar/session/cache/CacheManager.java
@@ -245,6 +245,7 @@ public class CacheManager {
new Columns.All(), new Condition.Permission(User.class, Device.class, deviceId)));
links.put(User.class, users.stream().map(BaseModel::getId).collect(Collectors.toList()));
for (var user : users) {
+ addObject(deviceId, user);
var notifications = storage.getObjects(Notification.class, new Request(
new Columns.All(), new Condition.Permission(User.class, user.getId(), Notification.class)));
notifications.stream()