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

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

    XMLWordPrintable

Details

    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

            Unassigned Unassigned
            zyap Zed Yap [Atlassian]
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: