aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2017-08-02 16:58:00 +1200
committerGitHub <noreply@github.com>2017-08-02 16:58:00 +1200
commitd44c9c778773bd036e46303676652a0d408e7d8c (patch)
treeb9ea003eb2a68dce0faa4d7173516e456e7906fe
parent237c80296fe947c6857c9509ba1b947ed02b354f (diff)
parent75374d646e3fe848e00eb7b959b557c0ed0ade68 (diff)
downloadtraccar-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.java6
-rw-r--r--src/org/traccar/database/UsersManager.java10
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);
}
}