From 4ee8fdc14805ac1cac1aa63ef61c2955761662bf Mon Sep 17 00:00:00 2001
From: =?utf8?q?Roland=20H=C3=A4der?= <roland@mxchange.org>
Date: Sun, 9 Jul 2017 12:46:02 +0200
Subject: [PATCH] Please cherry-pick: - renamed updatedUser -> managedUser,
 which is more accurate - always set values in managed instances to have the
 JPA noticed it
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

Signed-off-by: Roland Häder <roland@mxchange.org>
---
 .../model/user/JobsUserSessionBean.java       | 25 +++++++++++--------
 .../resendlink/JobsResendLinkSessionBean.java |  5 +++-
 2 files changed, 18 insertions(+), 12 deletions(-)

diff --git a/src/java/org/mxchange/jusercore/model/user/JobsUserSessionBean.java b/src/java/org/mxchange/jusercore/model/user/JobsUserSessionBean.java
index 1272d39..4eb4753 100644
--- a/src/java/org/mxchange/jusercore/model/user/JobsUserSessionBean.java
+++ b/src/java/org/mxchange/jusercore/model/user/JobsUserSessionBean.java
@@ -169,22 +169,22 @@ public class JobsUserSessionBean extends BaseJobsDatabaseBean implements UserSes
 			throw new IllegalArgumentException("baseUrl is empty"); //NOI18N
 		}
 
-		// Update user status and remove confirmation key
-		user.setUserAccountStatus(UserAccountStatus.CONFIRMED);
-		user.setUserConfirmKey(null);
-		user.setUserUpdated(new GregorianCalendar());
-
 		// Update user account
-		User updatedUser = this.updateUserData(user);
+		User managedUser = this.updateUserData(user);
+
+		// Update user status and remove confirmation key
+		managedUser.setUserAccountStatus(UserAccountStatus.CONFIRMED);
+		managedUser.setUserConfirmKey(null);
+		managedUser.setUserUpdated(new GregorianCalendar());
 
 		// Send out email
-		this.sendEmail("User account confirmed", "user_account_confirmed", updatedUser, baseUrl, null); //NOI18N
+		this.sendEmail("User account confirmed", "user_account_confirmed", managedUser, baseUrl, null); //NOI18N
 
 		// Trace message
-		this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.confirmAccount: updatedUser={1} - EXIT!", this.getClass().getSimpleName(), updatedUser)); //NOI18N
+		this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.confirmAccount: managedUser={1} - EXIT!", this.getClass().getSimpleName(), managedUser)); //NOI18N
 
 		// Return updated instance
-		return updatedUser;
+		return managedUser;
 	}
 
 	@Override
@@ -636,8 +636,11 @@ public class JobsUserSessionBean extends BaseJobsDatabaseBean implements UserSes
 		// Call other method
 		User managedUser = this.updateUserData(user);
 
+		// Update user account
+		managedUser.setUserUpdated(new GregorianCalendar());
+
 		// Create history entry
-		PasswordHistory entry = new UserPasswordHistory(managedUser.getUserEncryptedPassword(), managedUser);
+		PasswordHistory entry = new UserPasswordHistory(user.getUserEncryptedPassword(), managedUser);
 
 		// Set created timestamp
 		entry.setUserPasswordHistoryCreated(new GregorianCalendar());
@@ -653,7 +656,7 @@ public class JobsUserSessionBean extends BaseJobsDatabaseBean implements UserSes
 		this.getEntityManager().flush();
 
 		// Send email to user
-		this.sendEmail("User password change", "user_password_change", user, baseUrl, null); //NOI18N
+		this.sendEmail("User password change", "user_password_change", managedUser, baseUrl, null); //NOI18N
 
 		// Trace message
 		this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.updateUserPassword: entry.userPasswordHistoryId={1} - EXIT!", this.getClass().getSimpleName(), entry.getUserPasswordHistoryId())); //NOI18N
diff --git a/src/java/org/mxchange/jusercore/model/user/resendlink/JobsResendLinkSessionBean.java b/src/java/org/mxchange/jusercore/model/user/resendlink/JobsResendLinkSessionBean.java
index 7baadbf..8f9836c 100644
--- a/src/java/org/mxchange/jusercore/model/user/resendlink/JobsResendLinkSessionBean.java
+++ b/src/java/org/mxchange/jusercore/model/user/resendlink/JobsResendLinkSessionBean.java
@@ -98,6 +98,9 @@ public class JobsResendLinkSessionBean extends BaseJobsDatabaseBean implements R
 		// Get new registration key
 		String confirmationKey = this.registerBean.generateConfirmationKey(user);
 
+		// Debug message
+		this.getLoggerBeanLocal().logDebug(MessageFormat.format("{0}.resendConfirmationLink: confirmationKey={1}", this.getClass().getSimpleName(), confirmationKey)); //NOI18N
+
 		// Get managed instance
 		User managedUser = this.getEntityManager().find(LoginUser.class, user.getUserId());
 
@@ -106,7 +109,7 @@ public class JobsResendLinkSessionBean extends BaseJobsDatabaseBean implements R
 
 		// Send email
 		// @TODO: Internationlize the subject line somehow
-		this.sendEmail("Resend user confirmation link", "user_resend_confirmation_link",  user, baseUrl, null); //NOI18N
+		this.sendEmail("Resend user confirmation link", "user_resend_confirmation_link",  managedUser, baseUrl, null); //NOI18N
 
 		// Log trace message
 		this.getLoggerBeanLocal().logTrace(MessageFormat.format("{0}.resendConfirmationLink: managedUser={1} - EXIT!", this.getClass().getSimpleName(), managedUser)); //NOI18N
-- 
2.39.5