From 4c13c7324a920f5cca9601154e5224e5d7484fa9 Mon Sep 17 00:00:00 2001
From: rsanchez <rsanchez@curisit.net>
Date: Fri, 12 Dec 2014 18:09:27 +0000
Subject: [PATCH] #2140 fix - Many changes related with cahce and JPA cycling relationships

---
 securis/src/main/java/net/curisit/securis/services/UserResource.java |   15 ++++++++++-----
 1 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/securis/src/main/java/net/curisit/securis/services/UserResource.java b/securis/src/main/java/net/curisit/securis/services/UserResource.java
index f2e8b89..3169039 100644
--- a/securis/src/main/java/net/curisit/securis/services/UserResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/UserResource.java
@@ -76,6 +76,7 @@
         LOG.info("Getting users list ");
 
         EntityManager em = emProvider.get();
+        em.clear();
         TypedQuery<User> q = em.createNamedQuery("list-users", User.class);
 
         List<User> list = q.getResultList();
@@ -102,6 +103,7 @@
         }
 
         EntityManager em = emProvider.get();
+        em.clear();
         User lt = em.find(User.class, uid);
         if (lt == null) {
             LOG.error("User with id {} not found in DB", uid);
@@ -136,7 +138,8 @@
         if (user.getPassword() != null && !"".equals(user.getPassword())) {
             user.setPassword(Utils.sha256(user.getPassword()));
         } else {
-            return Response.status(DefaultExceptionHandler.DEFAULT_APP_ERROR_STATUS_CODE).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, "User password is mandatory").build();
+            return Response.status(DefaultExceptionHandler.DEFAULT_APP_ERROR_STATUS_CODE)
+                    .header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, "User password is mandatory").build();
         }
         user.setModificationTimestamp(new Date());
         user.setLastLogin(null);
@@ -197,7 +200,9 @@
             currentUser.setPassword(Utils.sha256(user.getPassword()));
         } else {
             // Password has not been modified
-            //return Response.status(DefaultExceptionHandler.DEFAULT_APP_ERROR_STATUS_CODE).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, "User password is mandatory").build();
+            // return
+            // Response.status(DefaultExceptionHandler.DEFAULT_APP_ERROR_STATUS_CODE).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER,
+            // "User password is mandatory").build();
         }
 
         currentUser.setLastLogin(user.getLastLogin());
@@ -238,7 +243,7 @@
         LOG.info("user: {}, pass: {}", username, password);
         LOG.info("is user in role: {} == {} ? ", "advance", request.isUserInRole("advance"));
         LOG.info("is user in role: {} == {} ? ", "admin", request.isUserInRole("admin"));
-        
+
         EntityManager em = emProvider.get();
         User user = em.find(User.class, username);
         if (user == null) {
@@ -246,7 +251,7 @@
             return Response.status(Status.UNAUTHORIZED).build();
         }
         String securedPassword = Utils.sha256(password);
-        
+
         if (securedPassword == null || !securedPassword.equals(user.getPassword())) {
             // TODO: Code to test exception handling
             return Response.status(Status.UNAUTHORIZED).build();
@@ -256,7 +261,7 @@
         try {
             em.persist(user);
             em.getTransaction().commit();
-        } catch(PersistenceException ex) {
+        } catch (PersistenceException ex) {
             LOG.error("Error updating last login date for user: {}", username);
             LOG.error(ex);
             em.getTransaction().rollback();

--
Gitblit v1.3.2