diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2017-08-02 16:58:00 +1200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-08-02 16:58:00 +1200 |
commit | d44c9c778773bd036e46303676652a0d408e7d8c (patch) | |
tree | b9ea003eb2a68dce0faa4d7173516e456e7906fe | |
parent | 237c80296fe947c6857c9509ba1b947ed02b354f (diff) | |
parent | 75374d646e3fe848e00eb7b959b557c0ed0ade68 (diff) | |
download | traccar-server-d44c9c778773bd036e46303676652a0d408e7d8c.tar.gz traccar-server-d44c9c778773bd036e46303676652a0d408e7d8c.tar.bz2 traccar-server-d44c9c778773bd036e46303676652a0d408e7d8c.zip |
Merge pull request #3406 from Abyss777/fix_unknown_uniqueid
Fix retrieving objects by unknown tokens/uniqueId
-rw-r--r-- | src/org/traccar/database/DriversManager.java | 6 | ||||
-rw-r--r-- | src/org/traccar/database/UsersManager.java | 10 |
2 files changed, 7 insertions, 9 deletions
diff --git a/src/org/traccar/database/DriversManager.java b/src/org/traccar/database/DriversManager.java index 9defa1931..930951460 100644 --- a/src/org/traccar/database/DriversManager.java +++ b/src/org/traccar/database/DriversManager.java @@ -23,7 +23,7 @@ import org.traccar.model.Driver; public class DriversManager extends ExtendedObjectManager<Driver> { - private Map<String, Long> driversByUniqueId; + private Map<String, Driver> driversByUniqueId; public DriversManager(DataManager dataManager) { super(dataManager, Driver.class); @@ -36,7 +36,7 @@ public class DriversManager extends ExtendedObjectManager<Driver> { if (driversByUniqueId == null) { driversByUniqueId = new ConcurrentHashMap<>(getAllItems().size()); } - driversByUniqueId.put(driver.getUniqueId(), driver.getId()); + driversByUniqueId.put(driver.getUniqueId(), driver); } @Override @@ -68,6 +68,6 @@ public class DriversManager extends ExtendedObjectManager<Driver> { } public Driver getDriverByUniqueId(String uniqueId) { - return getById(driversByUniqueId.get(uniqueId)); + return driversByUniqueId.get(uniqueId); } } diff --git a/src/org/traccar/database/UsersManager.java b/src/org/traccar/database/UsersManager.java index ed39f6cfa..576a9e6c7 100644 --- a/src/org/traccar/database/UsersManager.java +++ b/src/org/traccar/database/UsersManager.java @@ -25,7 +25,7 @@ import org.traccar.model.User; public class UsersManager extends SimpleObjectManager<User> { - private Map<String, Long> usersTokens; + private Map<String, User> usersTokens; public UsersManager(DataManager dataManager) { super(dataManager, User.class); @@ -39,7 +39,7 @@ public class UsersManager extends SimpleObjectManager<User> { usersTokens = new ConcurrentHashMap<>(); } if (user.getToken() != null) { - usersTokens.put(user.getToken(), user.getId()); + usersTokens.put(user.getToken(), user); } } @@ -53,9 +53,7 @@ public class UsersManager extends SimpleObjectManager<User> { protected void updateCachedItem(User user) { User cachedUser = getById(user.getId()); super.updateCachedItem(user); - if (user.getToken() != null) { - usersTokens.put(user.getToken(), user.getId()); - } + putToken(user); if (cachedUser.getToken() != null && !cachedUser.getToken().equals(user.getToken())) { usersTokens.remove(cachedUser.getToken()); } @@ -82,7 +80,7 @@ public class UsersManager extends SimpleObjectManager<User> { } public User getUserByToken(String token) { - return getById(usersTokens.get(token)); + return usersTokens.get(token); } } |