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

Editing an inactive workflow transition's properties/conditions/validators/post-functions gives a 404 from the Workflow Designer

    XMLWordPrintable

Details

    Description

      NOTE: This bug report is for JIRA Server. Using JIRA Cloud? See the corresponding bug report.

      Steps to reproduce

      1. Copy any existing workflow (or create a new one).
      2. Ensure it's inactive.
      3. Edit it in the Workflow Designer.
      4. Select a transition, then click Properties, Conditions, Validators, or Post Functions from the menu that pops up on the right.

      It takes you to https://<base URL>/secure/admin/workflows/ViewWorkflowTransitionMetaAttributes.jspa?workflowMode=draft&workflowName=<workflow name>&workflowTransition=5&workflowStep=1, which is a 404. This message shows in the JIRA logs:

      2014-05-06 23:54:22,188 TP-Processor3 ERROR sysadmin 1434x4x1 il2hbz 59.167.133.100,131.103.27.2 /secure/admin/workflows/ViewWorkflowTransition.jspa [web.util.component.RequestComponentManager] java.lang.IllegalStateException: No draft workflow was found for '<workflow name>'.
      java.lang.IllegalStateException: No draft workflow was found for '<workflow name>'.
            at com.atlassian.jira.web.util.component.RequestComponentManager.injectWorkflow(RequestComponentManager.java:98)
            at com.atlassian.jira.web.util.component.RequestComponentManager.getContainer(RequestComponentManager.java:54)
            at com.atlassian.jira.web.util.component.PicoWebworkObjectCreator.instantiate(PicoWebworkObjectCreator.java:34)
            at webwork.util.injection.ObjectFactory.instantiate(ObjectFactory.java:47)
            at com.atlassian.jira.config.webwork.JiraActionFactory$JiraPluginActionFactory.instantiateAction(JiraActionFactory.java:496)
            at com.atlassian.jira.config.webwork.JiraActionFactory$JiraPluginActionFactory.getActionImpl(JiraActionFactory.java:467)
            at webwork.action.factory.PrefixActionFactoryProxy.getActionImpl(PrefixActionFactoryProxy.java:82)
            at webwork.action.factory.JspActionFactoryProxy.getActionImpl(JspActionFactoryProxy.java:59)
            at webwork.action.factory.CommandActionFactoryProxy.getActionImpl(CommandActionFactoryProxy.java:60)
            at com.atlassian.jira.config.webwork.LookupAliasActionFactoryProxy.getActionImpl(LookupAliasActionFactoryProxy.java:65)
            at webwork.action.factory.CommandActionFactoryProxy.getActionImpl(CommandActionFactoryProxy.java:60)
            at webwork.action.factory.ContextActionFactoryProxy.getActionImpl(ContextActionFactoryProxy.java:36)
            at webwork.action.factory.PrepareActionFactoryProxy.getActionImpl(PrepareActionFactoryProxy.java:37)
            at com.atlassian.jira.config.webwork.JiraActionFactory$SafeParameterSettingActionFactoryProxy.getActionImpl(JiraActionFactory.java:159)
            at webwork.action.factory.ChainingActionFactoryProxy.getActionImpl(ChainingActionFactoryProxy.java:53)
            at com.atlassian.jira.config.webwork.JiraActionFactory.getActionImpl(JiraActionFactory.java:355)
            at webwork.dispatcher.GenericDispatcher.executeAction(GenericDispatcher.java:141)
            at com.atlassian.jira.web.dispatcher.JiraWebworkActionDispatcher.service(JiraWebworkActionDispatcher.java:152)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at com.atlassian.jira.web.filters.steps.ChainedFilterStepRunner.doFilter(ChainedFilterStepRunner.java:87)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at com.atlassian.jira.web.filters.XContentTypeOptionsNoSniffFilter.doFilter(XContentTypeOptionsNoSniffFilter.java:22)
            at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at com.atlassian.core.filters.HeaderSanitisingFilter.doFilter(HeaderSanitisingFilter.java:44)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
            at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66)
            at com.atlassian.jira.tzdetect.IncludeResourcesFilter.doFilter(IncludeResourcesFilter.java:39)
            at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74)
            at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42)
            at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66)
            at com.atlassian.jira.baseurl.IncludeResourcesFilter.doFilter(IncludeResourcesFilter.java:38)
            at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31)
            at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74)
            at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42)
            at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66)
            at com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:25)
            at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74)
            at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42)
            at com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66)
            at com.atlassian.servicedesk.internal.web.RedirectExternalCustomerToPortalFilter.doFilter(RedirectExternalCustomerToPortalFilter.scala:17)
            at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31)
      

      Then this:

      2014-05-06 23:54:22,197 TP-Processor3 ERROR sysadmin 1434x4x1 il2hbz 59.167.133.100,131.103.27.2 /secure/admin/workflows/ViewWorkflowTransition.jspa [webwork] Error instantiating 'com.atlassian.jira.web.action.admin.workflow.ViewWorkflowTransition': com.atlassian.jira.web.action.admin.workflow.ViewWorkflowTransition has unsatisfied dependency 'class com.opensymphony.workflow.loader.ActionDescriptor' for constructor 'public com.atlassian.jira.web.action.admin.workflow.ViewWorkflowTransition(com.atlassian.jira.workflow.JiraWorkflow,com.opensymphony.workflow.loader.ActionDescriptor,com.atlassian.plugin.PluginAccessor,com.atlassian.jira.config.ConstantsManager,com.atlassian.jira.util.CollectionReorderer,com.atlassian.jira.bc.workflow.WorkflowService,com.atlassian.jira.workflow.tabs.WorkflowTransitionTabProvider)' from org.picocontainer.DefaultPicoContainer@15d0748:1<[Immutable]:com.atlassian.jira.component.CachingMutablePicoContainer@89494b
      org.picocontainer.injectors.AbstractInjector$UnsatisfiableDependenciesException: com.atlassian.jira.web.action.admin.workflow.ViewWorkflowTransition has unsatisfied dependency 'class com.opensymphony.workflow.loader.ActionDescriptor' for constructor 'public com.atlassian.jira.web.action.admin.workflow.ViewWorkflowTransition(com.atlassian.jira.workflow.JiraWorkflow,com.opensymphony.workflow.loader.ActionDescriptor,com.atlassian.plugin.PluginAccessor,com.atlassian.jira.config.ConstantsManager,com.atlassian.jira.util.CollectionReorderer,com.atlassian.jira.bc.workflow.WorkflowService,com.atlassian.jira.workflow.tabs.WorkflowTransitionTabProvider)' from org.picocontainer.DefaultPicoContainer@15d0748:1<[Immutable]:com.atlassian.jira.component.CachingMutablePicoContainer@89494b
            at org.picocontainer.injectors.ConstructorInjector.getGreediestSatisfiableConstructor(ConstructorInjector.java:191)
            at org.picocontainer.injectors.ConstructorInjector.getGreediestSatisfiableConstructor(ConstructorInjector.java:110)
            at org.picocontainer.injectors.ConstructorInjector.access$100(ConstructorInjector.java:51)
            at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:331)
            at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
            at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:364)
            at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64)
            at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91)
            at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64)
            at org.picocontainer.behaviors.Locked.getComponentInstance(Locked.java:40)
            at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:698)
            at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:646)
            at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:677)
            at com.atlassian.jira.component.CachingMutablePicoContainer.getComponent(CachingMutablePicoContainer.java:159)
            at com.atlassian.jira.web.util.component.PicoWebworkObjectCreator.instantiate(PicoWebworkObjectCreator.java:41)
            at webwork.util.injection.ObjectFactory.instantiate(ObjectFactory.java:47)
            at com.atlassian.jira.config.webwork.JiraActionFactory$JiraPluginActionFactory.instantiateAction(JiraActionFactory.java:496)
            at com.atlassian.jira.config.webwork.JiraActionFactory$JiraPluginActionFactory.getActionImpl(JiraActionFactory.java:467)
            at webwork.action.factory.PrefixActionFactoryProxy.getActionImpl(PrefixActionFactoryProxy.java:82)
            at webwork.action.factory.JspActionFactoryProxy.getActionImpl(JspActionFactoryProxy.java:59)
            at webwork.action.factory.CommandActionFactoryProxy.getActionImpl(CommandActionFactoryProxy.java:60)
            at com.atlassian.jira.config.webwork.LookupAliasActionFactoryProxy.getActionImpl(LookupAliasActionFactoryProxy.java:65)
            at webwork.action.factory.CommandActionFactoryProxy.getActionImpl(CommandActionFactoryProxy.java:60)
            at webwork.action.factory.ContextActionFactoryProxy.getActionImpl(ContextActionFactoryProxy.java:36)
            at webwork.action.factory.PrepareActionFactoryProxy.getActionImpl(PrepareActionFactoryProxy.java:37)
            at com.atlassian.jira.config.webwork.JiraActionFactory$SafeParameterSettingActionFactoryProxy.getActionImpl(JiraActionFactory.java:159)
            at webwork.action.factory.ChainingActionFactoryProxy.getActionImpl(ChainingActionFactoryProxy.java:53)
            at com.atlassian.jira.config.webwork.JiraActionFactory.getActionImpl(JiraActionFactory.java:355)
            at webwork.dispatcher.GenericDispatcher.executeAction(GenericDispatcher.java:141)
            at com.atlassian.jira.web.dispatcher.JiraWebworkActionDispatcher.service(JiraWebworkActionDispatcher.java:152)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at com.atlassian.jira.web.filters.steps.ChainedFilterStepRunner.doFilter(ChainedFilterStepRunner.java:87)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at com.atlassian.jira.web.filters.XContentTypeOptionsNoSniffFilter.doFilter(XContentTypeOptionsNoSniffFilter.java:22)
            at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at com.atlassian.core.filters.HeaderSanitisingFilter.doFilter(HeaderSanitisingFilter.java:44)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      

      Workaround

      Edit the workflow using the old "Text" mode.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              nmason Nick Mason
              Votes:
              1 Vote for this issue
              Watchers:
              33 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: