diff options
Diffstat (limited to 'java')
| -rw-r--r-- | java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabase.java | 41 |
1 files changed, 15 insertions, 26 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabase.java b/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabase.java index 8665e579ba..cea4e90c31 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabase.java +++ b/java/broker/src/main/java/org/apache/qpid/server/security/auth/database/PlainPasswordFilePrincipalDatabase.java @@ -179,39 +179,28 @@ public class PlainPasswordFilePrincipalDatabase implements PrincipalDatabase throw new AccountNotFoundException(principal.getName()); } + char[] orig = user.getPassword(); + _userUpdate.lock(); try { - try - { - _userUpdate.lock(); - char[] orig = user.getPassword(); - user.setPassword(password); + user.setPassword(password); - try - { - savePasswordFile(); - } - catch (IOException e) - { - _logger.error("Unable to save password file, password change for user '" + principal + "' discarded"); - //revert the password change - user.setPassword(orig); - return false; - } - return true; - } - finally - { - if (_userUpdate.isHeldByCurrentThread()) - { - _userUpdate.unlock(); - } - } + savePasswordFile(); + + return true; } - catch (Exception e) + catch (IOException e) { + _logger.error("Unable to save password file due to '"+e.getMessage() + +"', password change for user '" + principal + "' discarded"); + //revert the password change + user.setPassword(orig); return false; } + finally + { + _userUpdate.unlock(); + } } public boolean createPrincipal(Principal principal, char[] password) |
