Details
-
Bug
-
Resolution: Fixed
-
Low
-
6.6.1
-
Severity 3 - Minor
-
Description
Summary
If the username have a trailing space during administrator setup installation step, Bamboo will crash
Steps to Reproduce
- Install Bamboo
- During Administrator setup step, add a trailing space for the username
Expected Results
It will just have the warning message "Invalid username. Username mustn't be blank, have trailing or leading space and must have no more length than 255 characters."
Actual Results
It crash with the below exception is thrown in the atlassian-bamboo.log file:
2018-07-19 17:31:34,069 ERROR [http-nio-8085-exec-14] [ExceptionMappingInterceptor] com.atlassian.user.impl.EntityValidationException: com.atlassian.crowd.exception.InvalidUserException: User name may not contain leading or trailing whitespace com.atlassian.core.exception.InfrastructureException: com.atlassian.user.impl.EntityValidationException: com.atlassian.crowd.exception.InvalidUserException: User name may not contain leading or trailing whitespace at bucket.user.DefaultUserAccessor.addUser(DefaultUserAccessor.java:106) at bucket.user.DefaultUserAccessor.addUser(DefaultUserAccessor.java:74) at com.atlassian.bamboo.user.BambooUserManagerImpl.setupInitialAdminUser(BambooUserManagerImpl.java:671) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) ... Caused by: com.atlassian.user.impl.EntityValidationException: com.atlassian.crowd.exception.InvalidUserException: User name may not contain leading or trailing whitespace at com.atlassian.crowd.embedded.atlassianuser.EmbeddedCrowdUserManagerImpl.createUser(EmbeddedCrowdUserManagerImpl.java:124) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:197) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) at com.sun.proxy.$Proxy165.createUser(Unknown Source) at bucket.user.DefaultUserAccessor.addUser(DefaultUserAccessor.java:101) ... 187 more Caused by: com.atlassian.crowd.exception.InvalidUserException: User name may not contain leading or trailing whitespace at com.atlassian.crowd.manager.application.ApplicationServiceGeneric.addUser(ApplicationServiceGeneric.java:516) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:197) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) at com.sun.proxy.$Proxy163.addUser(Unknown Source) at com.atlassian.crowd.embedded.core.CrowdServiceImpl.addUser(CrowdServiceImpl.java:259) at com.atlassian.crowd.embedded.core.CrowdServiceImpl.addUser(CrowdServiceImpl.java:250) at com.atlassian.crowd.embedded.atlassianuser.EmbeddedCrowdUserManagerImpl.createUser(EmbeddedCrowdUserManagerImpl.java:122)
Notes
- Trying to setup administrator without trailing space on the second time will have the following error:
2018-07-19 17:33:14,516 ERROR [http-nio-8085-exec-5] [ExceptionMappingInterceptor] could not execute batch; SQL [insert into CWD_DIRECTORY (DIRECTORY_NAME, LOWER_DIRECTORY_NAME, CREATED_DATE, UPDATED_DATE, ACTIVE, DESCRIPTION, IMPL_CLASS, LOWER_IMPL_CLASS, DIRECTORY_TYPE, ID) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]; constraint [uk_dir_l_name]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute batch org.springframework.dao.DataIntegrityViolationException: could not execute batch; SQL [insert into CWD_DIRECTORY (DIRECTORY_NAME, LOWER_DIRECTORY_NAME, CREATED_DATE, UPDATED_DATE, ACTIVE, DESCRIPTION, IMPL_CLASS, LOWER_IMPL_CLASS, DIRECTORY_TYPE, ID) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]; constraint [uk_dir_l_name]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute batch at org.springframework.orm.hibernate5.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:247) at org.springframework.orm.hibernate5.HibernateTransactionManager.convertHibernateAccessException(HibernateTransactionManager.java:785) at org.springframework.orm.hibernate5.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:621) at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:746) at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:714) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:206) at com.sun.proxy.$Proxy106.commit(Unknown Source) at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:532) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:304) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) at com.sun.proxy.$Proxy296.initialiseEmbeddedCrowd(Unknown Source) at com.atlassian.bamboo.ww2.actions.setup.SetupUtilityBean.setupUser(SetupUtilityBean.java:210) at com.atlassian.bamboo.ww2.actions.setup.SetupAdminUserAction.execute(SetupAdminUserAction.java:42) ... Caused by: java.sql.BatchUpdateException: Duplicate entry 'bamboo internal directory' for key 'uk_dir_l_name' at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:422) at com.mysql.jdbc.Util.handleNewInstance(Util.java:404) at com.mysql.jdbc.Util.getInstance(Util.java:387) at com.mysql.jdbc.SQLError.createBatchUpdateException(SQLError.java:1154) at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1773) at com.mysql.jdbc.PreparedStatement.executeBatchInternal(PreparedStatement.java:1257) at com.mysql.jdbc.StatementImpl.executeBatch(StatementImpl.java:959) at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeBatch(NewProxyPreparedStatement.java:2544) at org.hibernate.engine.jdbc.batch.internal.BatchingBatch.performExecution(BatchingBatch.java:111) ... 208 more Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry 'bamboo internal directory' for key 'uk_dir_l_name' at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:422) at com.mysql.jdbc.Util.handleNewInstance(Util.java:404) at com.mysql.jdbc.Util.getInstance(Util.java:387) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:932) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3878) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3814) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2478) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2625) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2551) at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1861) at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2073) at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1751)
- Bamboo Home and database have to be deleted to install Bamboo again
- Creating user with trailing or leading space works fine at Administration >> Security >> Users - it will just be trimmed
Attachments
Issue Links
- is cloned as
-
BDEV-14657 Loading...