Details
-
Bug
-
Resolution: Won't Fix
-
Low
-
2
-
Severity 3 - Minor
-
Description
Summary
When the "Create Crucible Review Workflow Function" post function is added to a workflow transition, it's not possible to make the transition to this step any longer.
Steps to Reproduce
- Edit a workflow and select one of its transitions
- Go to the Post Functions tab
- Click the Add post function link
- Select the Create Crucible Review Workflow Function and click the Add button
- Publish the workflow
- Go to an issue and make the transition to the one the above post function was added
Expected Results
The issue transitions to the next status.
Actual Results
An error appears on the screen saying the following:
Error creating bean with name 'com.atlassian.studio.jira.workflow.CreateCrucibleReviewWorkflowFunction': Unsatisfied dependency expressed through constructor argument with index 0 of type [com.atlassian.sal.api.net.TrustedRequestFactory]: : No qualifying bean of type [com.atlassian.sal.api.net.TrustedRequestFactory] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.atlassian.sal.api.net.TrustedRequestFactory] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {} It seems that you have tried to perform an illegal workflow operation. If you think this message is wrong, please contact your JIRA administrators.
And the following appears in the log:
2016-06-01 16:41:04.757760500 2016-06-01 16:41:04,749 http-nio-2994-exec-7 ERROR admin 1001x842x1 v8za2s 200.210.150.226 /secure/WorkflowUIDispatcher.jspa [c.a.jira.workflow.OSWorkflowManager] Caught exception while attempting to perform action 41 from workflow 10702 on issue 'NSP-528' 2016-06-01 16:41:04.757762500 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.atlassian.studio.jira.workflow.CreateCrucibleReviewWorkflowFunction': Unsatisfied dependency expressed through constructor argument with index 0 of type [com.atlassian.sal.api.net.TrustedRequestFactory]: : No qualifying bean of type [com.atlassian.sal.api.net.TrustedRequestFactory] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.atlassian.sal.api.net.TrustedRequestFactory] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {} 2016-06-01 16:41:04.757808500 at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749) 2016-06-01 16:41:04.757809500 at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:185) 2016-06-01 16:41:04.757809500 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1139) 2016-06-01 16:41:04.757810500 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1042) 2016-06-01 16:41:04.757820500 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504) 2016-06-01 16:41:04.757821500 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476) 2016-06-01 16:41:04.757821500 at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:342) 2016-06-01 16:41:04.757826500 ... 2 filtered 2016-06-01 16:41:04.757826500 at java.lang.reflect.Method.invoke(Method.java:497) 2016-06-01 16:41:04.757832500 at com.atlassian.plugin.osgi.spring.DefaultSpringContainerAccessor.createBean(DefaultSpringContainerAccessor.java:97) 2016-06-01 16:41:04.757832500 at com.atlassian.jira.plugin.DefaultComponentClassManager.newInstanceFromPlugin(DefaultComponentClassManager.java:89) 2016-06-01 16:41:04.757833500 at com.atlassian.jira.plugin.workflow.AbstractWorkflowModuleDescriptor$PluginTypeResolver.loadObject(AbstractWorkflowModuleDescriptor.java:171) 2016-06-01 16:41:04.757838500 at com.opensymphony.workflow.TypeResolver.getFunction(TypeResolver.java:87) 2016-06-01 16:41:04.757838500 at com.atlassian.jira.workflow.DefaultOSWorkflowConfigurator$JiraTypeResolverDelegator.getFunction(DefaultOSWorkflowConfigurator.java:101) 2016-06-01 16:41:04.757839500 at com.opensymphony.workflow.AbstractWorkflow.executeFunction(AbstractWorkflow.java:1041) 2016-06-01 16:41:04.757843500 at com.opensymphony.workflow.AbstractWorkflow.transitionWorkflow(AbstractWorkflow.java:1446) 2016-06-01 16:41:04.757844500 at com.opensymphony.workflow.AbstractWorkflow.doAction(AbstractWorkflow.java:564) 2016-06-01 16:41:04.757844500 at com.atlassian.jira.workflow.OSWorkflowManager.doWorkflowActionInsideTxn(OSWorkflowManager.java:829) 2016-06-01 16:41:04.757845500 at com.atlassian.jira.workflow.OSWorkflowManager.doWorkflowAction(OSWorkflowManager.java:786) 2016-06-01 16:41:04.757850500 at com.atlassian.jira.bc.issue.DefaultIssueService.transition(DefaultIssueService.java:492) 2016-06-01 16:41:04.757851500 at com.atlassian.jira.web.action.workflow.SimpleWorkflowAction.doExecute(SimpleWorkflowAction.java:28) 2016-06-01 16:41:04.757851500 ... 1 filtered 2016-06-01 16:41:04.757851500 at com.atlassian.jira.action.JiraActionSupport.execute(JiraActionSupport.java:63) 2016-06-01 16:41:04.757869500 ... 7 filtered 2016-06-01 16:41:04.757870500 at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) 2016-06-01 16:41:04.757870500 ... 51 filtered 2016-06-01 16:41:04.757870500 at com.atlassian.servicedesk.internal.web.LicenseAwareHttpFilter.doFilter(LicenseAwareHttpFilter.java:31) 2016-06-01 16:41:04.757870500 ... 4 filtered 2016-06-01 16:41:04.757871500 at com.atlassian.greenhopper.jira.filters.ClassicBoardRouter.doFilter(ClassicBoardRouter.java:62) 2016-06-01 16:41:04.757875500 ... 12 filtered 2016-06-01 16:41:04.757875500 at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21) 2016-06-01 16:41:04.757876500 ... 20 filtered 2016-06-01 16:41:04.757876500 at com.atlassian.jira.plugins.rest.HOT25715FixServletFilter.doFilter(HOT25715FixServletFilter.java:46) 2016-06-01 16:41:04.757877500 ... 30 filtered 2016-06-01 16:41:04.757881500 at com.atlassian.plugin.connect.plugin.auth.scope.ApiScopingFilter.doFilter(ApiScopingFilter.java:81) 2016-06-01 16:41:04.757886500 ... 14 filtered 2016-06-01 16:41:04.757886500 at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:76) 2016-06-01 16:41:04.757886500 at com.atlassian.jira.security.JiraSecurityFilter$$Lambda$850/30016093.doFilter(Unknown Source) 2016-06-01 16:41:04.757887500 ... 1 filtered 2016-06-01 16:41:04.757887500 at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:74) 2016-06-01 16:41:04.757893500 ... 29 filtered 2016-06-01 16:41:04.757893500 at com.atlassian.studio.jira.homepage.CloudHomepageFilter$Action.lambda$nextInFilterChain$1(CloudHomepageFilter.java:110) 2016-06-01 16:41:04.757894500 at com.atlassian.studio.jira.homepage.CloudHomepageFilter$Action$$Lambda$847/3650894.execute(Unknown Source) 2016-06-01 16:41:04.757894500 at com.atlassian.studio.jira.homepage.CloudHomepageFilter.doFilter(CloudHomepageFilter.java:68) 2016-06-01 16:41:04.757899500 ... 20 filtered 2016-06-01 16:41:04.757899500 at com.atlassian.jira.servermetrics.CorrelationIdPopulatorFilter.doFilter(CorrelationIdPopulatorFilter.java:30) 2016-06-01 16:41:04.757899500 ... 5 filtered 2016-06-01 16:41:04.757899500 at com.atlassian.plugin.connect.plugin.auth.user.ThreeLeggedAuthFilter.doFilter(ThreeLeggedAuthFilter.java:109) 2016-06-01 16:41:04.757900500 ... 3 filtered 2016-06-01 16:41:04.757904500 at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.lambda$invokeFilterChain$0(CustomerContextSettingFilter.java:179) 2016-06-01 16:41:04.757909500 at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter$$Lambda$837/26703093.call(Unknown Source) 2016-06-01 16:41:04.757910500 at com.atlassian.servicedesk.internal.utils.context.ReentrantThreadLocalBasedCodeContext.rteInvoke(ReentrantThreadLocalBasedCodeContext.java:142) 2016-06-01 16:41:04.757910500 at com.atlassian.servicedesk.internal.utils.context.ReentrantThreadLocalBasedCodeContext.runOutOfContext(ReentrantThreadLocalBasedCodeContext.java:94) 2016-06-01 16:41:04.757915500 at com.atlassian.servicedesk.internal.utils.context.CustomerContextServiceImpl.outOfCustomerContext(CustomerContextServiceImpl.java:44) 2016-06-01 16:41:04.757915500 at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.outOfCustomerContext(CustomerContextSettingFilter.java:174) 2016-06-01 16:41:04.757916500 at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilterImpl(CustomerContextSettingFilter.java:131) 2016-06-01 16:41:04.757920500 at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilter(CustomerContextSettingFilter.java:122) 2016-06-01 16:41:04.757920500 ... 4 filtered 2016-06-01 16:41:04.757925500 at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:32) 2016-06-01 16:41:04.757926500 ... 8 filtered 2016-06-01 16:41:04.757926500 at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21) 2016-06-01 16:41:04.757926500 ... 4 filtered 2016-06-01 16:41:04.757926500 at com.atlassian.web.servlet.plugin.LocationCleanerFilter.doFilter(LocationCleanerFilter.java:36) 2016-06-01 16:41:04.757927500 ... 29 filtered 2016-06-01 16:41:04.757931500 at com.atlassian.jira.servermetrics.MetricsCollectorFilter.doFilter(MetricsCollectorFilter.java:25) 2016-06-01 16:41:04.757931500 ... 27 filtered 2016-06-01 16:41:04.757932500 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 2016-06-01 16:41:04.757932500 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 2016-06-01 16:41:04.757932500 at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 2016-06-01 16:41:04.757937500 at java.lang.Thread.run(Thread.java:745) 2016-06-01 16:41:04.757949500 Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.atlassian.sal.api.net.TrustedRequestFactory] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {} 2016-06-01 16:41:04.757957500 at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1301) 2016-06-01 16:41:04.757957500 at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1047) 2016-06-01 16:41:04.757962500 at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:942) 2016-06-01 16:41:04.757962500 at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:813) 2016-06-01 16:41:04.757963500 at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:741)
Notes
See screenshot for the error in the UX, and how the post function isn't being displayed in the workflow correctly.
Workaround
No workaround at the moment.