aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbyss777 <abyss@fox5.ru>2016-07-13 18:44:46 +0500
committerAbyss777 <abyss@fox5.ru>2016-07-13 18:44:46 +0500
commit8bf78f0d21c16c0538b60c05a5f6934a890de1a8 (patch)
tree9033586d9a69b2b03c47ace03a06fd35f3f8574d
parent51f22a533b0e511bd97da6d46a676ac15a47884d (diff)
downloadtrackermap-server-8bf78f0d21c16c0538b60c05a5f6934a890de1a8.tar.gz
trackermap-server-8bf78f0d21c16c0538b60c05a5f6934a890de1a8.tar.bz2
trackermap-server-8bf78f0d21c16c0538b60c05a5f6934a890de1a8.zip
Reduce locks of devices
-rw-r--r--src/org/traccar/database/DataManager.java14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/org/traccar/database/DataManager.java b/src/org/traccar/database/DataManager.java
index b3f24383f..0dc3c5c52 100644
--- a/src/org/traccar/database/DataManager.java
+++ b/src/org/traccar/database/DataManager.java
@@ -401,9 +401,11 @@ public class DataManager implements IdentityManager {
QueryBuilder.create(dataSource, getQuery("database.updateDeviceStatus"))
.setObject(device)
.executeUpdate();
- Device cachedDevice = getDeviceById(device.getId());
- cachedDevice.setStatus(device.getStatus());
- cachedDevice.setMotion(device.getMotion());
+ if (devicesById.containsKey(device.getId())) {
+ Device cachedDevice = devicesById.get(device.getId());
+ cachedDevice.setStatus(device.getStatus());
+ cachedDevice.setMotion(device.getMotion());
+ }
}
public void removeDevice(long deviceId) throws SQLException {
@@ -512,8 +514,10 @@ public class DataManager implements IdentityManager {
.setDate("now", new Date())
.setObject(position)
.executeUpdate();
- Device device = getDeviceById(position.getDeviceId());
- device.setPositionId(position.getId());
+ if (devicesById.containsKey(position.getDeviceId())) {
+ Device cachedDevice = devicesById.get(position.getDeviceId());
+ cachedDevice.setPositionId(position.getId());
+ }
}
public Collection<Position> getLatestPositions() throws SQLException {