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

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