From 6e00239038002aa383cce39be7f53b85f3d03a94 Mon Sep 17 00:00:00 2001 From: Abyss777 Date: Fri, 27 May 2016 17:14:47 +0500 Subject: - Synchronization device cache on updateLatestPosition and updateDeviceStatus - Better latest position identification in BaseEventHandler --- src/org/traccar/database/DataManager.java | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/org/traccar/database') diff --git a/src/org/traccar/database/DataManager.java b/src/org/traccar/database/DataManager.java index 4e14f6c97..fcb8899bc 100644 --- a/src/org/traccar/database/DataManager.java +++ b/src/org/traccar/database/DataManager.java @@ -358,6 +358,9 @@ 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()); } public void removeDevice(long deviceId) throws SQLException { @@ -466,6 +469,8 @@ public class DataManager implements IdentityManager { .setDate("now", new Date()) .setObject(position) .executeUpdate(); + Device device = getDeviceById(position.getDeviceId()); + device.setPositionId(position.getId()); } public Collection getLatestPositions() throws SQLException { -- cgit v1.2.3