From bf6b278f7b14de659a2bb7dde426692640afd30e Mon Sep 17 00:00:00 2001
From: =?utf8?q?Roland=20H=C3=A4der?= <roland@mxchange.org>
Date: Wed, 31 Aug 2016 16:45:52 +0200
Subject: [PATCH] Please cherry-pick: - the user instance needs to be merged
 into current persience context, else some of its child entities will be
 persisted (inserted) again

---
 .../jusercore/model/user/JobsUserSessionBean.java      | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/java/org/mxchange/jusercore/model/user/JobsUserSessionBean.java b/src/java/org/mxchange/jusercore/model/user/JobsUserSessionBean.java
index 982da11..cdd34a1 100644
--- a/src/java/org/mxchange/jusercore/model/user/JobsUserSessionBean.java
+++ b/src/java/org/mxchange/jusercore/model/user/JobsUserSessionBean.java
@@ -645,13 +645,15 @@ public class JobsUserSessionBean extends BaseJobsDatabaseBean implements UserSes
 		User managedUser = this.updateUserData(user);
 
 		// Create history entry
-		PasswordHistory entry = new UserPasswordHistory();
+		PasswordHistory entry = new UserPasswordHistory(managedUser.getUserEncryptedPassword(), managedUser);
 
-		// Set all data here to avoid user instance become detached again
-		entry.setUserPasswordHistoryPasswordHash(managedUser.getUserEncryptedPassword());
-		entry.setUserPasswordHistoryUser(this.getManagedUser(user));
+		// Set created timestamp
 		entry.setUserPasswordHistoryCreated(new GregorianCalendar());
 
+		// Merge user to make sure it is not re-persisted
+		User mergedUser = this.getEntityManager().merge(managedUser);
+		entry.setUserPasswordHistoryUser(mergedUser);
+
 		// Persist it
 		this.getEntityManager().persist(entry);
 
-- 
2.39.5