When I add a comment to a ticket, users are not getting notified by e-mail. Watching the atlassian-jira.log when I enter a comment, and soon as I hit "Share with customer" an error appears in the log as follows:
2024-02-16 09:28:46,045-0500 http-nio-8080-exec-24 url: /jira/rest/api/2/issue/223339/comment; user: myusername ERROR myusername 568x108098x1 1th61qo myipaddress,127.0.0.1 /rest/api/2/issue/223339/comment [c.a.s.internal.util.SafeRunner] Unable to run event handler onCommitEvent
com.google.gson.JsonIOException: Failed making field 'java.time.Instant#seconds' accessible; either increase its visibility or write a custom TypeAdapter for its declaring type.
at com.google.gson.internal.reflect.ReflectionHelper.makeAccessible(ReflectionHelper.java:38)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:286)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:130)
at com.google.gson.Gson.getAdapter(Gson.java:556)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:160)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:294)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:130)
at com.google.gson.Gson.getAdapter(Gson.java:556)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:160)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:294)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:130)
at com.google.gson.Gson.getAdapter(Gson.java:556)
at com.google.gson.Gson.toJson(Gson.java:834)
at com.google.gson.Gson.toJson(Gson.java:812)
at com.google.gson.Gson.toJson(Gson.java:759)
at com.google.gson.Gson.toJson(Gson.java:736)
at com.atlassian.servicedesk.plugins.base.internal.events.offthreading.async.processing.AsyncMessageEnqueuerImpl.enqueueForOrderedAsyncProcessing(AsyncMessageEnqueuerImpl.java:82)
at com.atlassian.servicedesk.plugins.base.internal.events.offthreading.async.processing.AsyncMessageEnqueuerImpl.enqueueCommentCreatedEventForProcessing(AsyncMessageEnqueuerImpl.java:70)
at jdk.internal.reflect.GeneratedMethodAccessor3277.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
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:186)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:137)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
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:186)
at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:137)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:241)
at jdk.proxy227/jdk.proxy227.$Proxy4622.enqueueCommentCreatedEventForProcessing(Unknown Source)
at com.atlassian.servicedesk.bootstrap.listener.CommentCreatedEventHandler.executeOffThread(CommentCreatedEventHandler.java:164)
at com.atlassian.servicedesk.bootstrap.listener.CommentCreatedEventHandler.executeOffThread(CommentCreatedEventHandler.java:34)
at com.atlassian.servicedesk.bootstrap.listener.AbstractEventHandler.submitForSerialisedOffThreadExecution(AbstractEventHandler.java:120)
at com.atlassian.servicedesk.bootstrap.listener.CommentCreatedEventHandler.handleCommentCreatedEvent(CommentCreatedEventHandler.java:109)
at com.atlassian.servicedesk.bootstrap.listener.EventListenerLauncher.processCommitEvent(EventListenerLauncher.java:236)
at com.atlassian.servicedesk.bootstrap.listener.EventListenerLauncher.lambda$onCommitEvent$0(EventListenerLauncher.java:112)
at com.atlassian.servicedesk.internal.util.SafeRunner.runAlways(SafeRunner.java:58)
at com.atlassian.servicedesk.bootstrap.listener.EventListenerLauncher.onCommitEvent(EventListenerLauncher.java:112)
at jdk.internal.reflect.GeneratedMethodAccessor1946.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at com.atlassian.event.internal.SingleParameterMethodListenerInvoker.invoke(SingleParameterMethodListenerInvoker.java:42)
at com.atlassian.diagnostics.internal.platform.monitor.event.EventSystemMonitor.invokeMonitored(EventSystemMonitor.java:105)
at com.atlassian.diagnostics.internal.platform.monitor.event.MonitoredListenerInvoker.invoke(MonitoredListenerInvoker.java:38)
at com.atlassian.event.internal.ComparableListenerInvoker.invoke(ComparableListenerInvoker.java:48)
at com.atlassian.event.internal.AsynchronousAbleEventDispatcher.lambda$null$0(AsynchronousAbleEventDispatcher.java:37)
at com.atlassian.event.internal.AsynchronousAbleEventDispatcher.dispatch(AsynchronousAbleEventDispatcher.java:85)
at com.atlassian.diagnostics.internal.platform.monitor.event.MonitoredEventDispatcher.dispatch(MonitoredEventDispatcher.java:36)
at com.atlassian.event.internal.EventPublisherImpl.publish(EventPublisherImpl.java:114)
at com.atlassian.event.internal.LockFreeEventPublisher.publish(LockFreeEventPublisher.java:40)
at com.atlassian.jira.event.issue.txnaware.TxnAwareEventFactoryImpl.publishEvent(TxnAwareEventFactoryImpl.java:206)
at com.google.common.collect.ImmutableList.forEach(ImmutableList.java:422)
at com.atlassian.jira.event.issue.txnaware.TxnAwareEventFactoryImpl.lambda$publishOnCommitIssueEventBundle$4(TxnAwareEventFactoryImpl.java:96)
at com.atlassian.jira.event.issue.txnaware.TxnAwareEventFactoryImpl.lambda$runThisOnCommit$8(TxnAwareEventFactoryImpl.java:192)
at com.atlassian.ozymandias.SafePluginPointAccess.runnable(SafePluginPointAccess.java:404)
at com.atlassian.jira.event.issue.txnaware.TxnAwareEventFactoryImpl.runThisOnCommit(TxnAwareEventFactoryImpl.java:192)
at com.atlassian.jira.event.issue.txnaware.TxnAwareEventFactoryImpl.publishOnCommitIssueEventBundle(TxnAwareEventFactoryImpl.java:80)
at com.atlassian.jira.event.issue.DefaultIssueEventManager.dispatchIssueEventBundleOnCommitIfNotificationsAreEnabled(DefaultIssueEventManager.java:192)
at com.atlassian.jira.event.issue.DefaultIssueEventManager.dispatchIssueEventBundleOnCommit(DefaultIssueEventManager.java:149)
at com.atlassian.jira.event.issue.DefaultIssueEventManager.dispatchIssueEventBundle(DefaultIssueEventManager.java:134)
at com.atlassian.jira.event.issue.IssueEventManager.dispatchEvent(IssueEventManager.java:284)
at com.atlassian.jira.issue.comments.CommentEventPublisherImpl.publishCommentCreatedEvent(CommentEventPublisherImpl.java:55)
at com.atlassian.jira.issue.comments.DefaultCommentManager.create(DefaultCommentManager.java:327)
at com.atlassian.jira.issue.comments.DefaultCommentManager.create(DefaultCommentManager.java:255)
at com.atlassian.jira.bc.issue.comment.DefaultCommentService.create(DefaultCommentService.java:311)
at com.atlassian.jira.bc.issue.comment.DefaultCommentService.lambda$create$2(DefaultCommentService.java:305)
at io.atlassian.fugue.Option$Some.fold(Option.java:444)
at com.atlassian.jira.bc.issue.comment.DefaultCommentService.create(DefaultCommentService.java:305)
at jdk.internal.reflect.GeneratedMethodAccessor2937.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)
at jdk.proxy3/jdk.proxy3.$Proxy404.create(Unknown Source)
at jdk.internal.reflect.GeneratedMethodAccessor2937.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
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:186)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:137)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
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:186)
at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:137)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:241)
at jdk.proxy212/jdk.proxy212.$Proxy3879.create(Unknown Source)
at com.atlassian.jira.rest.v2.issue.CommentResource$4.apply(CommentResource.java:407)
at com.atlassian.jira.rest.v2.issue.CommentResource$4.apply(CommentResource.java:404)
at io.atlassian.fugue.Option$Some.fold(Option.java:444)
at com.atlassian.jira.rest.v2.issue.CommentResource.addComment(CommentResource.java:399)
at com.atlassian.jira.rest.v2.issue.IssueResource.addComment(IssueResource.java:1351)
at jdk.internal.reflect.GeneratedMethodAccessor4121.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
... 5 filtered
at com.atlassian.jira.rest.exception.ExceptionInterceptor.intercept(ExceptionInterceptor.java:55)
... 1 filtered
at com.atlassian.jira.rest.v2.issue.scope.RequestScopeInterceptor.intercept(RequestScopeInterceptor.java:39)
... 15 filtered
at com.atlassian.plugins.rest.module.RestDelegatingServletFilter$JerseyOsgiServletContainer.doFilter(RestDelegatingServletFilter.java:171)
... 1 filtered
at com.atlassian.plugins.rest.module.RestDelegatingServletFilter.doFilter(RestDelegatingServletFilter.java:75)
... 32 filtered
at com.atlassian.servicedesk.internal.web.ExternalCustomerLockoutFilter.doFilter(ExternalCustomerLockoutFilter.java:55)
... 8 filtered
at com.atlassian.jira.plugin.mobile.web.filter.MobileAppRequestFilter.doFilter(MobileAppRequestFilter.java:59)
... 4 filtered
at com.atlassian.jira.plugin.mobile.login.MobileLoginSuccessFilter.doFilter(MobileLoginSuccessFilter.java:54)
... 3 filtered
at com.atlassian.diagnostics.internal.platform.monitor.http.HttpRequestMonitoringFilter.doFilter(HttpRequestMonitoringFilter.java:54)
... 8 filtered
at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
... 20 filtered
at org.kantega.atlaskerb.intercept.filter.AtlasKerberosMainAuthFilter.doFilter(AtlasKerberosMainAuthFilter.java:126)
... 3 filtered
at org.kantega.atlaskerb.intercept.filter.AtlasKerberosMainAuthFilter.doFilter(AtlasKerberosMainAuthFilter.java:126)
... 26 filtered
at com.atlassian.oauth2.scopes.web.ReadWriteScopeFilter.doFilter(ReadWriteScopeFilter.java:46)
... 3 filtered
at com.atlassian.ratelimiting.internal.filter.RateLimitFilter.doFilter(RateLimitFilter.java:73)
... 3 filtered
at com.atlassian.troubleshooting.thready.filter.AbstractThreadNamingFilter.doFilter(AbstractThreadNamingFilter.java:46)
... 17 filtered
at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:66)
... 1 filtered
at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:64)
... 16 filtered
at com.atlassian.plugins.rest.module.servlet.RestSeraphFilter.doFilter(RestSeraphFilter.java:38)
... 3 filtered
at com.atlassian.pats.web.filter.TokenBasedAuthenticationFilter.doFilter(TokenBasedAuthenticationFilter.java:82)
... 3 filtered
at com.atlassian.oauth2.provider.core.web.AccessTokenFilter.doFilter(AccessTokenFilter.java:82)
... 7 filtered
at org.kantega.atlaskerb.intercept.filter.AtlasKerberosMainAuthFilter.doFilter(AtlasKerberosMainAuthFilter.java:126)
... 3 filtered
at org.kantega.atlaskerb.intercept.filter.AtlasKerberosMainAuthFilter.doFilter(AtlasKerberosMainAuthFilter.java:126)
... 3 filtered
at org.kantega.atlaskerb.intercept.filter.AtlasKerberosMainAuthFilter.doFilter(AtlasKerberosMainAuthFilter.java:153)
... 3 filtered
at org.kantega.atlaskerb.intercept.filter.AtlasKerberosPreFilter.doFilter(AtlasKerberosPreFilter.java:110)
... 3 filtered
at org.kantega.atlaskerb.intercept.filter.AtlasKerberosMainAuthFilter.doFilter(AtlasKerberosMainAuthFilter.java:126)
... 15 filtered
at com.atlassian.jira.servermetrics.CorrelationIdPopulatorFilter.doFilter(CorrelationIdPopulatorFilter.java:30)
... 5 filtered
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.lambda$invokeFilterChain$0(CustomerContextSettingFilter.java:221)
at com.atlassian.servicedesk.internal.api.util.context.ReentrantThreadLocalBasedCodeContext.rteInvoke(ReentrantThreadLocalBasedCodeContext.java:136)
at com.atlassian.servicedesk.internal.api.util.context.ReentrantThreadLocalBasedCodeContext.runOutOfContext(ReentrantThreadLocalBasedCodeContext.java:89)
at com.atlassian.servicedesk.internal.utils.context.CustomerContextServiceImpl.runOutOfCustomerContext(CustomerContextServiceImpl.java:47)
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.outOfCustomerContext(CustomerContextSettingFilter.java:212)
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilterImpl(CustomerContextSettingFilter.java:140)
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilter(CustomerContextSettingFilter.java:129)
... 4 filtered
at org.kantega.atlaskerb.intercept.filter.AtlasKerberosPreFilter.doFilter(AtlasKerberosPreFilter.java:280)
... 3 filtered
at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:37)
... 8 filtered
at com.atlassian.ratelimiting.internal.filter.RateLimitPreAuthFilter.doFilter(RateLimitPreAuthFilter.java:71)
... 3 filtered
at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
... 4 filtered
at com.atlassian.troubleshooting.thready.filter.AbstractThreadNamingFilter.doFilter(AbstractThreadNamingFilter.java:46)
... 3 filtered
at com.atlassian.web.servlet.plugin.LocationCleanerFilter.doFilter(LocationCleanerFilter.java:36)
... 7 filtered
at org.kantega.atlaskerb.security.SecurityHeadersFilter.doFilter(SecurityHeadersFilter.java:69)
... 3 filtered
at org.kantega.atlaskerb.msteams.MsTeamsSecurityHeadersFilter.doFilter(MsTeamsSecurityHeadersFilter.java:52)
... 22 filtered
at com.atlassian.jira.servermetrics.MetricsCollectorFilter.doFilter(MetricsCollectorFilter.java:25)
... 25 filtered
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field private final long java.time.Instant.seconds accessible: module java.base does not "opens java.time" to unnamed module @635d0f1d
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(Unknown Source)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(Unknown Source)
at java.base/java.lang.reflect.Field.checkCanSetAccessible(Unknown Source)
at java.base/java.lang.reflect.Field.setAccessible(Unknown Source)
at com.google.gson.internal.reflect.ReflectionHelper.makeAccessible(ReflectionHelper.java:35)
... 446 more
Hello,
Looks like issue is with the Jira plugins or customizations
Try running an event handler associated with the onCommitEvent when a comment is added to an issue
Hi, sorry I didn't get the notification about your post. Can you elaborate? Is there something I can do to fix this issue, or are you saying I need to create my own workaround?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.