diff --git a/scm-webapp/src/main/java/sonia/scm/user/xml/XmlUserManager.java b/scm-webapp/src/main/java/sonia/scm/user/xml/XmlUserManager.java index 0863e12bab..e552d4c30a 100644 --- a/scm-webapp/src/main/java/sonia/scm/user/xml/XmlUserManager.java +++ b/scm-webapp/src/main/java/sonia/scm/user/xml/XmlUserManager.java @@ -164,8 +164,6 @@ public class XmlUserManager extends AbstractUserManager throw new ScmSecurityException("admin account is required"); } - AssertUtil.assertIsValid(user); - if (userDB.contains(user.getName())) { throw new UserAllreadyExistException(); @@ -178,6 +176,7 @@ public class XmlUserManager extends AbstractUserManager user.setType(TYPE); } + AssertUtil.assertIsValid(user); user.setCreationDate(System.currentTimeMillis()); synchronized (XmlUserManager.class) @@ -269,12 +268,12 @@ public class XmlUserManager extends AbstractUserManager throw new ScmSecurityException("admin account is required"); } - AssertUtil.assertIsValid(user); - String name = user.getName(); if (userDB.contains(name)) { + AssertUtil.assertIsValid(user); + synchronized (XmlUserManager.class) { userDB.remove(name);