Uploaded image for project: 'Jira Data Center'
  1. Jira Data Center
  2. JRASERVER-36562

Project templates plugin uses incorrect workflow status id sequence

    XMLWordPrintable

Details

    Description

      After creating a "Simple Issue Tracking" Project in JIRA, creation of a "Service Desk Project" fails with a DataAccessException.

      Cause:
      The project templates plugin version 1.1.15 creates workflow statuses using com.sysbliss.jira.plugins.workflow.util.StatusUtils.addStatus, which in turn uses EntityUtils to fetch the next database sequence id.

      JIRA 6.1.6 stopped using EntityUtils for this though, and now refers to ofBiz for id generation.

      Service Desk also creates statuses, but uses the StatusManager (proper way to create statuses). Due to the use of EntityUtils, the ofBiz sequence is out of sync with the actual latest id in the database. Creation of a Service Desk Project thus fails. Note that each failed attempt bumps the sequence by 1, so after 2-3 failed creations the sequence is up to the latest number and further project creation attempts will start to succeed again.

      Fix:
      Use StatusService.createStatus (or manager?) instead of StatusUtils to create the status. Note that 1.1.16 seems is doing this already.

      [INFO] [talledLocalContainer] Caused by: com.atlassian.jira.exception.DataAccessException: org.ofbiz.core.entity.GenericEntityException: while inserting: [GenericEntity:Status][id,10001][sequence,9][description,This was auto-generated by JIRA Service Desk during workflow import][name,Waiting for Support][statuscategory,1][iconurl,/images/icons/status_generic.gif] (SQL Exception while executing the following:INSERT INTO PUBLIC.issuestatus (ID, SEQUENCE, pname, DESCRIPTION, ICONURL, STATUSCATEGORY) VALUES (?, ?, ?, ?, ?, ?) (Unique constraint violation: SYS_IDX_148 in statement [INSERT INTO PUBLIC.issuestatus (ID, SEQUENCE, pname, DESCRIPTION, ICONURL, STATUSCATEGORY) VALUES (?, ?, ?, ?, ?, ?)]))
      [INFO] [talledLocalContainer] 	at com.atlassian.jira.ofbiz.DefaultOfBizDelegator.createValue(DefaultOfBizDelegator.java:393)
      [INFO] [talledLocalContainer] 	at com.atlassian.jira.ofbiz.WrappingOfBizDelegator.createValue(WrappingOfBizDelegator.java:206)
      [INFO] [talledLocalContainer] 	at com.atlassian.jira.config.AbstractIssueConstantsManager.createConstant(AbstractIssueConstantsManager.java:38)
      [INFO] [talledLocalContainer] 	at com.atlassian.jira.config.DefaultStatusManager.createStatus(DefaultStatusManager.java:72)
      [INFO] [talledLocalContainer] 	at com.atlassian.jira.config.DefaultStatusManager.createStatus(DefaultStatusManager.java:88)
      [INFO] [talledLocalContainer] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      [INFO] [talledLocalContainer] 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      [INFO] [talledLocalContainer] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      [INFO] [talledLocalContainer] 	at java.lang.reflect.Method.invoke(Method.java:597)
      [INFO] [talledLocalContainer] 	at com.atlassian.plugin.osgi.hostcomponents.impl.DefaultComponentRegistrar$ContextClassLoaderSettingInvocationHandler.invoke(DefaultComponentRegistrar.java:129)
      [INFO] [talledLocalContainer] 	at $Proxy388.createStatus(Unknown Source)
      [INFO] [talledLocalContainer] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      [INFO] [talledLocalContainer] 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      [INFO] [talledLocalContainer] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      [INFO] [talledLocalContainer] 	at java.lang.reflect.Method.invoke(Method.java:597)
      [INFO] [talledLocalContainer] 	at com.atlassian.plugin.osgi.bridge.external.HostComponentFactoryBean$DynamicServiceInvocationHandler.invoke(HostComponentFactoryBean.java:154)
      [INFO] [talledLocalContainer] 	at $Proxy388.createStatus(Unknown Source)
      [INFO] [talledLocalContainer] 	at com.atlassian.servicedesk.internal.manager.WorkflowImporterService$$anonfun$4.apply(WorkflowImporterService.scala:106)
      [INFO] [talledLocalContainer] 	at com.atlassian.servicedesk.internal.manager.WorkflowImporterService$$anonfun$4.apply(WorkflowImporterService.scala:106)
      [INFO] [talledLocalContainer] 	at scala.Option.getOrElse(Option.scala:120)
      [INFO] [talledLocalContainer] 	at com.atlassian.servicedesk.internal.manager.WorkflowImporterService.com$atlassian$servicedesk$internal$manager$WorkflowImporterService$$findOrCreateStatus(WorkflowImporterService.scala:105)
      [INFO] [talledLocalContainer] 	at com.atlassian.servicedesk.internal.manager.WorkflowImporterService$$anonfun$2$$anonfun$apply$3.apply(WorkflowImporterService.scala:95)
      [INFO] [talledLocalContainer] 	at com.atlassian.servicedesk.internal.manager.WorkflowImporterService$$anonfun$2$$anonfun$apply$3.apply(WorkflowImporterService.scala:91)
      [INFO] [talledLocalContainer] 	at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
      [INFO] [talledLocalContainer] 	at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
      [INFO] [talledLocalContainer] 	at scala.collection.immutable.List.foreach(List.scala:318)
      [INFO] [talledLocalContainer] 	at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
      [INFO] [talledLocalContainer] 	at scala.collection.AbstractTraversable.map(Traversable.scala:105)
      [INFO] [talledLocalContainer] 	at com.atlassian.servicedesk.internal.manager.WorkflowImporterService$$anonfun$2.apply(WorkflowImporterService.scala:91)
      [INFO] [talledLocalContainer] 	at com.atlassian.servicedesk.internal.manager.WorkflowImporterService$$anonfun$2.apply(WorkflowImporterService.scala:88)
      [INFO] [talledLocalContainer] 	at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251)
      [INFO] [talledLocalContainer] 	at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:251)
      [INFO] [talledLocalContainer] 	at scala.collection.immutable.List.foreach(List.scala:318)
      [INFO] [talledLocalContainer] 	at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:251)
      [INFO] [talledLocalContainer] 	at scala.collection.AbstractTraversable.flatMap(Traversable.scala:105)
      [INFO] [talledLocalContainer] 	at com.atlassian.servicedesk.internal.manager.WorkflowImporterService.parseWorkflowForStatusMapping(WorkflowImporterService.scala:88)
      [INFO] [talledLocalContainer] 	at com.atlassian.servicedesk.internal.manager.WorkflowImporterService.createAndAssociateWorkFlowForProject(WorkflowImporterService.scala:46)
      [INFO] [talledLocalContainer] 	at com.atlassian.servicedesk.internal.feature.gettingstarted.GettingStartedService.com$atlassian$servicedesk$internal$feature$gettingstarted$GettingStartedService$$associateITSupportWorkflow(GettingStartedService.scala:191)
      [INFO] [talledLocalContainer] 	at com.atlassian.servicedesk.internal.feature.gettingstarted.GettingStartedService$$anonfun$createServiceDeskForEmptyProject$1.apply(GettingStartedService.scala:66)
      [INFO] [talledLocalContainer] 	at com.atlassian.servicedesk.internal.feature.gettingstarted.GettingStartedService$$anonfun$createServiceDeskForEmptyProject$1.apply(GettingStartedService.scala:63)
      [INFO] [talledLocalContainer] 	at scala.util.Either$RightProjection.flatMap(Either.scala:523)
      [INFO] [talledLocalContainer] 	at com.atlassian.servicedesk.internal.feature.gettingstarted.GettingStartedService.createServiceDeskForEmptyProject(GettingStartedService.scala:63)
      [INFO] [talledLocalContainer] 	at com.atlassian.servicedesk.internal.feature.gettingstarted.ServiceDeskProjectCreateHook$$anonfun$1.apply(ServiceDeskProjectCreateHook.scala:18)
      [INFO] [talledLocalContainer] 	at com.atlassian.servicedesk.internal.feature.gettingstarted.ServiceDeskProjectCreateHook$$anonfun$1.apply(ServiceDeskProjectCreateHook.scala:17)
      [INFO] [talledLocalContainer] 	at scala.util.Either$RightProjection.flatMap(Either.scala:523)
      [INFO] [talledLocalContainer] 	at com.atlassian.servicedesk.internal.feature.gettingstarted.ServiceDeskProjectCreateHook.configureProjectThenRedirect(ServiceDeskProjectCreateHook.scala:17)
      [INFO] [talledLocalContainer] 	at com.atlassian.jira.projecttemplates.manager.legacy.ProjectCreateHookAdapter.configure(ProjectCreateHookAdapter.java:54)
      [INFO] [talledLocalContainer] 	at com.atlassian.jira.projecttemplates.service.ProjectTemplateServiceImpl.applyProjectTemplate(ProjectTemplateServiceImpl.java:108)
      [INFO] [talledLocalContainer] 	... 182 more
      [INFO] [talledLocalContainer] Caused by: org.ofbiz.core.entity.GenericEntityException: while inserting: [GenericEntity:Status][id,10001][sequence,9][description,This was auto-generated by JIRA Service Desk during workflow import][name,Waiting for Support][statuscategory,1][iconurl,/images/icons/status_generic.gif] (SQL Exception while executing the following:INSERT INTO PUBLIC.issuestatus (ID, SEQUENCE, pname, DESCRIPTION, ICONURL, STATUSCATEGORY) VALUES (?, ?, ?, ?, ?, ?) (Unique constraint violation: SYS_IDX_148 in statement [INSERT INTO PUBLIC.issuestatus (ID, SEQUENCE, pname, DESCRIPTION, ICONURL, STATUSCATEGORY) VALUES (?, ?, ?, ?, ?, ?)]))
      [INFO] [talledLocalContainer] 	at org.ofbiz.core.entity.GenericDAO.singleInsert(GenericDAO.java:158)
      [INFO] [talledLocalContainer] 	at org.ofbiz.core.entity.GenericDAO.insert(GenericDAO.java:123)
      [INFO] [talledLocalContainer] 	at org.ofbiz.core.entity.GenericHelperDAO.create(GenericHelperDAO.java:64)
      [INFO] [talledLocalContainer] 	at org.ofbiz.core.entity.GenericDelegator.create(GenericDelegator.java:503)
      [INFO] [talledLocalContainer] 	at org.ofbiz.core.entity.GenericDelegator.create(GenericDelegator.java:483)
      [INFO] [talledLocalContainer] 	at org.ofbiz.core.entity.GenericValue.create(GenericValue.java:98)
      [INFO] [talledLocalContainer] 	at com.atlassian.jira.ofbiz.DefaultOfBizDelegator.createValue(DefaultOfBizDelegator.java:388)
      [INFO] [talledLocalContainer] 	... 229 more
      

      Attachments

        Issue Links

          Activity

            People

              ohernandez@atlassian.com Oswaldo Hernandez (Inactive)
              miruflin Michael Ruflin
              Votes:
              1 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: