aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/traccar/session/cache/CacheManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/traccar/session/cache/CacheManager.java')
-rw-r--r--src/main/java/org/traccar/session/cache/CacheManager.java8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/main/java/org/traccar/session/cache/CacheManager.java b/src/main/java/org/traccar/session/cache/CacheManager.java
index ae514ce8b..d019b072b 100644
--- a/src/main/java/org/traccar/session/cache/CacheManager.java
+++ b/src/main/java/org/traccar/session/cache/CacheManager.java
@@ -99,7 +99,9 @@ public class CacheManager {
public void addDevice(long deviceId) throws StorageException {
try {
lock.writeLock().lock();
- unsafeAddDevice(deviceId);
+ if (!deviceLinks.containsKey(deviceId)) {
+ unsafeAddDevice(deviceId);
+ }
} finally {
lock.writeLock().unlock();
}
@@ -108,7 +110,9 @@ public class CacheManager {
public void removeDevice(long deviceId) {
try {
lock.writeLock().lock();
- unsafeRemoveDevice(deviceId);
+ if (deviceLinks.containsKey(deviceId)) {
+ unsafeRemoveDevice(deviceId);
+ }
} finally {
lock.writeLock().unlock();
}