Jira logs show error messages about Automation for Jira plugin after upgrading TTS to 9.8.0+

This page is about Time to SLA for Jira On-Prem.

Problem

After Time to SLA is upgraded to version 9.8.0+, there are some error messages in the logs.

2020-10-29 09:21:29,179 https-jsse-nio-443-exec-20 ERROR admin 561x387871x1 admin 192.192.192.192 /plugins/servlet/streams [c.a.plugin.module.PrefixDelegatingModuleFactory] Detected an error (NoClassDefFoundError) instantiating the module for plugin 'plugin.tts' for module 'tts-sla-threshold-breached': com/codebarrel/automation/api/thirdparty/EventTriggerRuleComponent. This error is usually caused by your plugin using a imported component class that itself relies on other packages in the product. You can probably fix this by adding the missing class's package to your <Import-Package> instructions; for more details on how to fix this, see https://developer.atlassian.com/display/DOCS/NoClassDefFoundError . Caused by: java.lang.ClassNotFoundException: com.codebarrel.automation.api.thirdparty.EventTriggerRuleComponent not found by com.tuncaysenturk.jira.plugins.time-to-sla-plugin [231] 2020-10-29 09:21:29,179 https-jsse-nio-443-exec-20 ERROR admin 561x387871x1 admin 192.192.192.192 /plugins/servlet/streams [c.a.event.internal.AsynchronousAbleEventDispatcher] There was an exception thrown trying to dispatch event [RequestMetricsEvent{url=/plugins/servlet//streams, key=Optional.empty, requestCorrelationId=Optional[6ac364bc407411], reqTime=696, requestUserTime=0, requestCpuTime=0, requestGCDuration=0, requestGCCount=0, checkpointReachTime=[CheckpointTiming {checkpointName=beforeSecurityFilter, checkpointTime=PT0.0004919S} , CheckpointTiming {checkpointName=jiraSecurityFilter, checkpointTime=PT0.0005968S} , CheckpointTiming {checkpointName=preProcessingFilterChainFinished, checkpointTime=PT0.0010227S} , CheckpointTiming {checkpointName=postProcessingFilterChainStarts, checkpointTime=PT0.6960505S} , CheckpointTiming {checkpointName=serverRenderEnd, checkpointTime=PT0.6961436S} ], activityTimings=[]}] from the invoker [SingleParameterMethodListenerInvoker {method=public void com.codebarrel.jira.plugin.automation.event.JiraIssueEventListenerImpl.handleAllOtherEvents(java.lang.Object), listener=com.codebarrel.jira.plugin.automation.event.JiraIssueEventListenerImpl@14f622aa} ] java.lang.RuntimeException: com/codebarrel/automation/api/thirdparty/EventTriggerRuleComponent. Listener: com.codebarrel.jira.plugin.automation.event.JiraIssueEventListenerImpl event: com.atlassian.jira.servermetrics.RequestMetricsEvent at com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke(SingleParameterMethodListenerInvoker.java:55) at com.atlassian.event.internal.AsynchronousAbleEventDispatcher$1$1.run(AsynchronousAbleEventDispatcher.java:38) at com.google.common.util.concurrent.MoreExecutors$DirectExecutorService.execute(MoreExecutors.java:299) at com.atlassian.event.internal.AsynchronousAbleEventDispatcher.dispatch(AsynchronousAbleEventDispatcher.java:88) at com.atlassian.event.internal.EventPublisherImpl.invokeListeners(EventPublisherImpl.java:204) at com.atlassian.event.internal.EventPublisherImpl.publish(EventPublisherImpl.java:115) at java.util.Optional.ifPresent(Optional.java:159) at com.atlassian.jira.servermetrics.RequestMetricsDispatcher.stopCollection(RequestMetricsDispatcher.java:77) at com.atlassian.jira.servermetrics.RequestMetricsDispatcher$CollectorHandle.close(RequestMetricsDispatcher.java:116) at com.atlassian.jira.servermetrics.MetricsCollectorFilter.doFilter(MetricsCollectorFilter.java:26) ... 24 filtered at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.NoClassDefFoundError: com/codebarrel/automation/api/thirdparty/EventTriggerRuleComponent at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:763) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.findClass(BundleWiringImpl.java:2279) at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1501) at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1844) at org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:937) at com.atlassian.plugin.osgi.util.BundleClassLoaderAccessor.loadClass(BundleClassLoaderAccessor.java:45) at com.atlassian.plugin.osgi.factory.OsgiPluginInstalledHelper.loadClass(OsgiPluginInstalledHelper.java:56) at com.atlassian.plugin.osgi.factory.OsgiPlugin.loadClass(OsgiPlugin.java:207) at com.atlassian.plugin.module.ClassPrefixModuleFactory.getModuleClass(ClassPrefixModuleFactory.java:44) at com.atlassian.plugin.module.ClassPrefixModuleFactory.createModule(ClassPrefixModuleFactory.java:27) at com.atlassian.plugin.module.PrefixDelegatingModuleFactory.createModule(PrefixDelegatingModuleFactory.java:88) ... 2 filtered at java.lang.reflect.Method.invoke(Method.java:498) at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26) at com.sun.proxy.$Proxy362.createModule(Unknown Source) ... 2 filtered at java.lang.reflect.Method.invoke(Method.java:498) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302) at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:56) at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133) at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:70) at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:53) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133) at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208) at com.sun.proxy.$Proxy3127.createModule(Unknown Source) at com.codebarrel.jira.plugin.automation.thirdparty.ThirdPartyComponentModuleDescriptor.getModule(ThirdPartyComponentModuleDescriptor.java:51) at com.codebarrel.jira.plugin.automation.thirdparty.ThirdPartyComponentModuleTracker.getHandledEventClasses(ThirdPartyComponentModuleTracker.java:50) at com.codebarrel.jira.plugin.automation.thirdparty.ThirdPartyComponentModuleTracker.lambda$getThirdPartyTriggers$0(ThirdPartyComponentModuleTracker.java:45) at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:174) at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) at com.codebarrel.jira.plugin.automation.thirdparty.ThirdPartyComponentModuleTracker.getThirdPartyTriggers(ThirdPartyComponentModuleTracker.java:46) at com.codebarrel.jira.plugin.automation.event.DefaultEventRuleRegistry.handleEventWithThirdPartyTriggers(DefaultEventRuleRegistry.java:344) at com.codebarrel.jira.plugin.automation.event.JiraIssueEventListenerImpl.handleAllOtherEvents(JiraIssueEventListenerImpl.java:151) ... 2 filtered at java.lang.reflect.Method.invoke(Method.java:498) at com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke(SingleParameterMethodListenerInvoker.java:40) ... 37 more Caused by: java.lang.ClassNotFoundException: com.codebarrel.automation.api.thirdparty.EventTriggerRuleComponent not found by com.tuncaysenturk.jira.plugins.time-to-sla-plugin [231] at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1532) at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 94 more

Reason

We have recently introduced Time to SLA - Automation integration to enhance the SLA configurations with features from widely used plugins. However, there are some limitations due to Atlassian cross-platform integrations, and this can cause some issues that can be remedied.

Solution

  • Do you have paid version of the Automation for Jira app?
    Unfortunately, the Lite version of the Automation for Jira plugin does not support 3rd party extensions. This is due to Atlassian policy.

  • Does the Automation for Jira plugin version newer than 7.2.3?
    Please upgrade Automation for Jira to its latest available version.

  • Is it possible that both the LITE and PRO versions are installed on your instance?
    Please uninstall the LITE version. Note that disabling the LITE version won't work, it needs to be uninstalled.

  • Do you use the latest version of TTS?
    Please upgrade TTS to the latest available version.

  • Did you try disabling and enabling the Time to SLA plugin?
    You can disable/enable Time to SLA using this guide.