Uploaded image for project: 'Bamboo'
  1. Bamboo
  2. BAM-8712

Clicking more then once on the clone job create button will create duplicate job key and corrupt the Database

    Details

    • Last commented by user?:
      true
    • Comments:
      1
    • Symptom Severity:
      Major

      Description

      Bamboo will clone more then once with the same job key when user click more then once on the create clone button

      Steps to replicate:

      1. Startup the Bamboo server
      2. Now go to another machine to access Bamboo server via ip for example:
        http://10.60.2.133:8085/bamboo
        
      3. Click on Create Plan >> Clone an Existing plan
      4. Fill in the details
      5. Double-click on create button

      After the steps above you will get the following stack track

      jvm 1    | 2011-05-05 17:54:41,109 ERROR [qtp15207001-18] [FiveOhOh] 500 Exception was thrown.
      jvm 1    | org.springframework.dao.IncorrectResultSizeDataAccessException: query did not return a unique result: 3
      jvm 1    |      at org.springframework.orm.hibernate.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:590)
      jvm 1    |      at org.springframework.orm.hibernate.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:353)
      jvm 1    |      at org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:375)
      jvm 1    |      at org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:337)
      jvm 1    |      at com.atlassian.bamboo.plan.PlanHibernateDao.getPlanByKey(PlanHibernateDao.java:43)
      jvm 1    |      at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)
      jvm 1    |      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      jvm 1    |      at java.lang.reflect.Method.invoke(Unknown Source)
      jvm 1    |      at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
      jvm 1    |      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
      jvm 1    |      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
      jvm 1    |      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
      jvm 1    |      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      jvm 1    |      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
      jvm 1    |      at $Proxy2.getPlanByKey(Unknown Source)
      jvm 1    |      at com.atlassian.bamboo.plan.PlanManagerImpl.getPlanByKey(PlanManagerImpl.java:91)
      jvm 1    |      at com.atlassian.bamboo.plan.PlanManagerImpl.getPlanByKey(PlanManagerImpl.java:138)
      jvm 1    |      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      jvm 1    |      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      jvm 1    |      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      jvm 1    |      at java.lang.reflect.Method.invoke(Unknown Source)
      jvm 1    |      at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
      jvm 1    |      at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
      jvm 1    |      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
      jvm 1    |      at org.acegisecurity.intercept.method.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:66)
      jvm 1    |      at com.atlassian.bamboo.security.acegi.intercept.aopalliance.AuthorityOverrideMethodSecurityInterceptor.invoke(AuthorityOverrideMethodSecurityInterceptor.java:36)
      jvm 1    |      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      jvm 1    |      at org.acegisecurity.intercept.method.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:66)
      jvm 1    |      at com.atlassian.bamboo.security.acegi.intercept.aopalliance.AuthorityOverrideMethodSecurityInterceptor.invoke(AuthorityOverrideMethodSecurityInterceptor.java:36)
      jvm 1    |      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      jvm 1    |      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
      jvm 1    |      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      jvm 1    |      at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
      jvm 1    |      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
      jvm 1    |      at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
      jvm 1    |      at $Proxy5.getPlanByKey(Unknown Source)
      jvm 1    |      at com.atlassian.bamboo.filter.UrlRewriteFilter.getMappingsForPath(UrlRewriteFilter.java:220)
      

      NOTE: You will not be able to replicate the problem via localhost

        Attachments

          Activity

            People

            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:
                Last commented:
                5 weeks, 2 days ago