From 58a5627460c73d954cc9928b3df30827698638f6 Mon Sep 17 00:00:00 2001 From: Khurshid Fayzullaev Date: Thu, 10 Apr 2014 16:48:59 -0400 Subject: Update DataServiceImpl.java --- .../traccar/web/server/model/DataServiceImpl.java | 104 ++++++++++----------- 1 file changed, 52 insertions(+), 52 deletions(-) diff --git a/src/org/traccar/web/server/model/DataServiceImpl.java b/src/org/traccar/web/server/model/DataServiceImpl.java index d4857d5..2c88800 100644 --- a/src/org/traccar/web/server/model/DataServiceImpl.java +++ b/src/org/traccar/web/server/model/DataServiceImpl.java @@ -192,28 +192,25 @@ public class DataServiceImpl extends RemoteServiceServlet implements DataService EntityManager entityManager = getSessionEntityManager(); synchronized (entityManager) { - String login = user.getLogin(); - TypedQuery query = entityManager.createQuery( - "SELECT x FROM User x WHERE x.login = :login", User.class); - query.setParameter("login", login); - List results = query.getResultList(); - - entityManager.getTransaction().begin(); - try { - if (results.isEmpty()) { - entityManager.persist(user); - entityManager.getTransaction().commit(); - return user; - } - else - { - throw new IllegalStateException(); - } - } catch (RuntimeException e) { - entityManager.getTransaction().rollback(); - throw e; - } - } + String login = user.getLogin(); + TypedQuery query = entityManager.createQuery("SELECT x FROM User x WHERE x.login = :login", User.class); + query.setParameter("login", login); + List results = query.getResultList(); + + if (results.isEmpty()) { + entityManager.getTransaction().begin(); + try { + entityManager.persist(user); + entityManager.getTransaction().commit(); + return user; + } catch (RuntimeException e) { + entityManager.getTransaction().rollback(); + throw e; + } + } else { + throw new IllegalStateException(); + } + } } else { throw new SecurityException(); } @@ -302,55 +299,58 @@ public class DataServiceImpl extends RemoteServiceServlet implements DataService @Override public Device addDevice(Device device) { EntityManager entityManager = getSessionEntityManager(); - synchronized (entityManager) { + synchronized (entityManager) { TypedQuery query = entityManager.createQuery("SELECT x FROM Device x WHERE x.uniqueId = :id", Device.class); query.setParameter("id", device.getUniqueId()); List results = query.getResultList(); User user = getSessionUser(); - entityManager.getTransaction().begin(); - try { - if (results.isEmpty()) { - entityManager.persist(device); - user.getDevices().add(device); - entityManager.getTransaction().commit(); - return device; - } - else - { - throw new IllegalStateException(); - } - } catch (RuntimeException e) { - entityManager.getTransaction().rollback(); - throw e; + + if (results.isEmpty()) { + entityManager.getTransaction().begin(); + try { + entityManager.persist(device); + user.getDevices().add(device); + entityManager.getTransaction().commit(); + return device; + } catch (RuntimeException e) { + entityManager.getTransaction().rollback(); + throw e; + } } + else + { + throw new IllegalStateException(); + } } } + @Override public Device updateDevice(Device device) { EntityManager entityManager = getSessionEntityManager(); synchronized (entityManager) { - TypedQuery query = entityManager.createQuery("SELECT x FROM Device x WHERE x.uniqueId = :id", Device.class); - query.setParameter("id", device.getUniqueId()); - List results = query.getResultList(); + TypedQuery query = entityManager.createQuery("SELECT x FROM Device x WHERE x.uniqueId = :id", Device.class); + query.setParameter("id", device.getUniqueId()); + List results = query.getResultList(); - entityManager.getTransaction().begin(); - try { - if (results.isEmpty()) { + + if (results.isEmpty()) { + entityManager.getTransaction().begin(); + try { device = entityManager.merge(device); entityManager.getTransaction().commit(); return device; - } - else - { - throw new IllegalStateException(); - } - } catch (RuntimeException e) { - entityManager.getTransaction().rollback(); - throw e; + } catch (RuntimeException e) { + entityManager.getTransaction().rollback(); + throw e; + } } + else + { + throw new IllegalStateException(); + } } } -- cgit v1.2.3