]> git.mxchange.org Git - addressbook-ejb.git/commitdiff
Please cherry-pick:
authorRoland Häder <roland@mxchange.org>
Sun, 9 Jul 2017 10:46:02 +0000 (12:46 +0200)
committerRoland Häder <roland@mxchange.org>
Sun, 9 Jul 2017 11:36:26 +0000 (13:36 +0200)
- renamed updatedUser -> managedUser, which is more accurate
- always set values in managed instances to have the JPA noticed it

Signed-off-by: Roland Häder <roland@mxchange.org>
src/java/org/mxchange/jusercore/model/user/AddressbookUserSessionBean.java
src/java/org/mxchange/jusercore/model/user/resendlink/AddressbookResendLinkSessionBean.java

index 9cdc6a75430addece0166b551c46341181875106..6a0724bae85f91d9629f64afe4e1fce1394ac506 100644 (file)
@@ -169,22 +169,22 @@ public class AddressbookUserSessionBean extends BaseAddressbookDatabaseBean impl
                        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
@@ -596,14 +596,20 @@ public class AddressbookUserSessionBean extends BaseAddressbookDatabaseBean impl
 
                // user should not be null
                if (null == user) {
-                       // Abort here
+                       // Throw NPE
                        throw new NullPointerException("user is null"); //NOI18N
                } else if (user.getUserId() == null) {
                        // Throw NPE again
                        throw new NullPointerException("user.userId is null"); //NOI18N
                } else if (user.getUserId() < 1) {
-                       // Not valid
-                       throw new IllegalArgumentException(MessageFormat.format("user.userId={0} is not valid", user.getUserId())); //NOI18N
+                       // Not valid number
+                       throw new IllegalArgumentException(MessageFormat.format("user.userId={0} is not valid.", user.getUserId())); //NOI18N
+               } else if (user.getUserName() == null) {
+                       // Throw NPE again
+                       throw new NullPointerException("user.userName is null"); //NOI18N
+               } else if (user.getUserName().isEmpty()) {
+                       // Empty string
+                       throw new IllegalArgumentException("user.userName is empty"); //NOI18N
                } else if (user.getUserAccountStatus() == null) {
                        // Throw NPE
                        throw new NullPointerException("user.userAccountStatus is null"); //NOI18N
@@ -631,14 +637,21 @@ public class AddressbookUserSessionBean extends BaseAddressbookDatabaseBean impl
                }
 
                // Call other method
-               User updatedUser = this.updateUserData(user);
+               User managedUser = this.updateUserData(user);
+
+               // Update user account
+               managedUser.setUserUpdated(new GregorianCalendar());
 
                // Create history entry
-               PasswordHistory entry = new UserPasswordHistory(user.getUserEncryptedPassword(), updatedUser);
+               PasswordHistory entry = new UserPasswordHistory(user.getUserEncryptedPassword(), managedUser);
 
                // 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);
 
@@ -646,7 +659,7 @@ public class AddressbookUserSessionBean extends BaseAddressbookDatabaseBean impl
                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
index 32c43528a285172b2f0b5dfa6c8b7b46d1c687f5..e79147a4cd1e37a10ea4a4d02a1ead2c2e9e3ea3 100644 (file)
@@ -98,6 +98,9 @@ public class AddressbookResendLinkSessionBean extends BaseAddressbookDatabaseBea
                // 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 AddressbookResendLinkSessionBean extends BaseAddressbookDatabaseBea
 
                // 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