Uploaded image for project: 'JBoss BPMS Platform'
  1. JBoss BPMS Platform
  2. RHBPMS-4876

KieServerMDB retains jms connection retrieved from managed connection pool, which may cause potential issue such as NPE when invoking jbpm engine.

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 6.4.6
    • 6.4.4
    • jBPM Core
    • None

      Some concerns are imposed on the KieServerMDB.java [1] that it retains connection retrieved from Managed Connection Pool(MCP) which is unnecessary. It could cause some issues in the subsequent jbpm engine call in the onMessage method.

      We've discovered one NullPointerException in a use case where a tibco resource adapter is configured in EAP 7 with bpms 6.4:

      2017-08-18 12:26:07,042 ERROR [stderr] (default-threads - 5) java.lang.NullPointerException
      2017-08-18 12:26:07,043 ERROR [stderr] (default-threads - 5) at org.jboss.jca.core.tx.jbossts.XAResourceWrapperImpl.setTransactionTimeout(XAResourceWrapperImpl.java:204)
      2017-08-18 12:26:07,043 ERROR [stderr] (default-threads - 5) at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.enlistResource(TransactionImple.java:637)
      2017-08-18 12:26:07,043 ERROR [stderr] (default-threads - 5) at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.enlistResource(TransactionImple.java:423)
      2017-08-18 12:26:07,043 ERROR [stderr] (default-threads - 5) at org.jboss.jca.core.connectionmanager.listener.TxConnectionListener$TransactionSynchronization.enlist(TxConnectionListener.java:986)
      2017-08-18 12:26:07,043 ERROR [stderr] (default-threads - 5) at org.jboss.jca.core.connectionmanager.listener.TxConnectionListener.enlist(TxConnectionListener.java:379)
      2017-08-18 12:26:07,043 ERROR [stderr] (default-threads - 5) at org.jboss.jca.core.connectionmanager.tx.TxConnectionManagerImpl.transactionStarted(TxConnectionManagerImpl.java:449)
      2017-08-18 12:26:07,043 ERROR [stderr] (default-threads - 5) at org.jboss.jca.core.connectionmanager.ccm.CachedConnectionManagerImpl.userTransactionStarted(CachedConnectionManagerImpl.java:249)
      2017-08-18 12:26:07,044 ERROR [stderr] (default-threads - 5) at org.jboss.jca.core.tx.jbossts.UserTransactionListenerImpl.userTransactionStarted(UserTransactionListenerImpl.java:52)
      2017-08-18 12:26:07,044 ERROR [stderr] (default-threads - 5) at org.jboss.tm.usertx.UserTransactionRegistry.userTransactionStarted(UserTransactionRegistry.java:119)
      2017-08-18 12:26:07,044 ERROR [stderr] (default-threads - 5) at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.begin(ServerVMClientUserTransaction.java:171)
      2017-08-18 12:26:07,044 ERROR [stderr] (default-threads - 5) at org.drools.persistence.jta.JtaTransactionManager.begin(JtaTransactionManager.java:205)
      2017-08-18 12:26:07,044 ERROR [stderr] (default-threads - 5) at org.drools.persistence.SingleSessionCommandService.<init>(SingleSessionCommandService.java:106)
      2017-08-18 12:26:07,044 ERROR [stderr] (default-threads - 5) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      2017-08-18 12:26:07,044 ERROR [stderr] (default-threads - 5) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
      2017-08-18 12:26:07,044 ERROR [stderr] (default-threads - 5) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
      2017-08-18 12:26:07,044 ERROR [stderr] (default-threads - 5) at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
      2017-08-18 12:26:07,044 ERROR [stderr] (default-threads - 5) at org.drools.persistence.jpa.KnowledgeStoreServiceImpl.buildCommandService(KnowledgeStoreServiceImpl.java:171)
      2017-08-18 12:26:07,044 ERROR [stderr] (default-threads - 5) at org.drools.persistence.jpa.KnowledgeStoreServiceImpl.newKieSession(KnowledgeStoreServiceImpl.java:70)
      2017-08-18 12:26:07,044 ERROR [stderr] (default-threads - 5) at org.drools.persistence.jpa.KnowledgeStoreServiceImpl.newKieSession(KnowledgeStoreServiceImpl.java:39)
      2017-08-18 12:26:07,045 ERROR [stderr] (default-threads - 5) at org.kie.internal.persistence.jpa.JPAKnowledgeService.newStatefulKnowledgeSession(JPAKnowledgeService.java:121)
      2017-08-18 12:26:07,045 ERROR [stderr] (default-threads - 5) at org.jbpm.runtime.manager.impl.factory.JPASessionFactory.newKieSession(JPASessionFactory.java:42)
      2017-08-18 12:26:07,045 ERROR [stderr] (default-threads - 5) at org.jbpm.runtime.manager.impl.PerProcessInstanceRuntimeManager$PerProcessInstanceInitializer.initKieSession(PerProcessInstanceRuntimeManager.java:542)
      2017-08-18 12:26:07,045 ERROR [stderr] (default-threads - 5) at org.jbpm.runtime.manager.impl.RuntimeEngineImpl.getKieSession(RuntimeEngineImpl.java:70)
      2017-08-18 12:26:07,045 ERROR [stderr] (default-threads - 5) at org.jbpm.kie.services.impl.ProcessServiceImpl.startProcess(ProcessServiceImpl.java:97)
      2017-08-18 12:26:07,045 ERROR [stderr] (default-threads - 5) at org.kie.server.services.jbpm.ProcessServiceBase.startProcess(ProcessServiceBase.java:86)
      2017-08-18 12:26:07,045 ERROR [stderr] (default-threads - 5) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      2017-08-18 12:26:07,045 ERROR [stderr] (default-threads - 5) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      2017-08-18 12:26:07,045 ERROR [stderr] (default-threads - 5) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      2017-08-18 12:26:07,045 ERROR [stderr] (default-threads - 5) at java.lang.reflect.Method.invoke(Method.java:498)
      2017-08-18 12:26:07,045 ERROR [stderr] (default-threads - 5) at org.apache.commons.lang3.reflect.MethodUtils.invokeMethod(MethodUtils.java:133)
      2017-08-18 12:26:07,046 ERROR [stderr] (default-threads - 5) at org.apache.commons.lang3.reflect.MethodUtils.invokeMethod(MethodUtils.java:94)
      2017-08-18 12:26:07,046 ERROR [stderr] (default-threads - 5) at org.kie.server.services.jbpm.JBPMKieContainerCommandServiceImpl.executeScript(JBPMKieContainerCommandServiceImpl.java:137)
      2017-08-18 12:26:07,046 ERROR [stderr] (default-threads - 5) at org.kie.server.jms.KieServerMDB.onMessage(KieServerMDB.java:214)
      2017-08-18 12:26:07,046 ERROR [stderr] (default-threads - 5) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      2017-08-18 12:26:07,046 ERROR [stderr] (default-threads - 5) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      2017-08-18 12:26:07,046 ERROR [stderr] (default-threads - 5) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      2017-08-18 12:26:07,046 ERROR [stderr] (default-threads - 5) at java.lang.reflect.Method.invoke(Method.java:498)
      2017-08-18 12:26:07,046 ERROR [stderr] (default-threads - 5) at org.jboss.as.ee.component.ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptor.java:52)
      2017-08-18 12:26:07,047 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
      2017-08-18 12:26:07,047 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:437)
      2017-08-18 12:26:07,047 ERROR [stderr] (default-threads - 5) at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.doMethodInterception(Jsr299BindingsInterceptor.java:82)
      2017-08-18 12:26:07,047 ERROR [stderr] (default-threads - 5) at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:93)
      2017-08-18 12:26:07,047 ERROR [stderr] (default-threads - 5) at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)
      2017-08-18 12:26:07,047 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
      2017-08-18 12:26:07,047 ERROR [stderr] (default-threads - 5) at org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor.java:43)
      2017-08-18 12:26:07,047 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
      2017-08-18 12:26:07,047 ERROR [stderr] (default-threads - 5) at org.jboss.as.ejb3.tx.EjbBMTInterceptor.handleInvocation(EjbBMTInterceptor.java:103)
      2017-08-18 12:26:07,047 ERROR [stderr] (default-threads - 5) at org.jboss.as.ejb3.tx.BMTInterceptor.processInvocation(BMTInterceptor.java:58)
      2017-08-18 12:26:07,047 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
      2017-08-18 12:26:07,047 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:437)
      2017-08-18 12:26:07,047 ERROR [stderr] (default-threads - 5) at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:73)
      2017-08-18 12:26:07,048 ERROR [stderr] (default-threads - 5) at org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:83)
      2017-08-18 12:26:07,048 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
      2017-08-18 12:26:07,048 ERROR [stderr] (default-threads - 5) at org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45)
      2017-08-18 12:26:07,048 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
      2017-08-18 12:26:07,048 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21)
      2017-08-18 12:26:07,048 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
      2017-08-18 12:26:07,048 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
      2017-08-18 12:26:07,048 ERROR [stderr] (default-threads - 5) at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:52)
      2017-08-18 12:26:07,048 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
      2017-08-18 12:26:07,049 ERROR [stderr] (default-threads - 5) at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51)
      2017-08-18 12:26:07,049 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
      2017-08-18 12:26:07,049 ERROR [stderr] (default-threads - 5) at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
      2017-08-18 12:26:07,049 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
      2017-08-18 12:26:07,049 ERROR [stderr] (default-threads - 5) at org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:43)
      2017-08-18 12:26:07,049 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
      2017-08-18 12:26:07,049 ERROR [stderr] (default-threads - 5) at org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:100)
      2017-08-18 12:26:07,049 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
      2017-08-18 12:26:07,049 ERROR [stderr] (default-threads - 5) at org.jboss.as.ejb3.deployment.processors.StartupAwaitInterceptor.processInvocation(StartupAwaitInterceptor.java:22)
      2017-08-18 12:26:07,049 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
      2017-08-18 12:26:07,049 ERROR [stderr] (default-threads - 5) at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64)
      2017-08-18 12:26:07,050 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
      2017-08-18 12:26:07,050 ERROR [stderr] (default-threads - 5) at org.jboss.as.ejb3.deployment.processors.EjbSuspendInterceptor.processInvocation(EjbSuspendInterceptor.java:53)
      2017-08-18 12:26:07,050 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
      2017-08-18 12:26:07,050 ERROR [stderr] (default-threads - 5) at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:66)
      2017-08-18 12:26:07,050 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
      2017-08-18 12:26:07,050 ERROR [stderr] (default-threads - 5) at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
      2017-08-18 12:26:07,050 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
      2017-08-18 12:26:07,051 ERROR [stderr] (default-threads - 5) at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:54)
      2017-08-18 12:26:07,051 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
      2017-08-18 12:26:07,051 ERROR [stderr] (default-threads - 5) at org.jboss.as.ejb3.component.messagedriven.MessageDrivenComponentDescription$5$1.processInvocation(MessageDrivenComponentDescription.java:239)
      2017-08-18 12:26:07,051 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
      2017-08-18 12:26:07,051 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64)
      2017-08-18 12:26:07,051 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
      2017-08-18 12:26:07,051 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)
      2017-08-18 12:26:07,051 ERROR [stderr] (default-threads - 5) at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:636)
      2017-08-18 12:26:07,051 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.AccessCheckingInterceptor.processInvocation(AccessCheckingInterceptor.java:61)
      2017-08-18 12:26:07,052 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
      2017-08-18 12:26:07,052 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)
      2017-08-18 12:26:07,052 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80)
      2017-08-18 12:26:07,052 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
      2017-08-18 12:26:07,052 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
      2017-08-18 12:26:07,052 ERROR [stderr] (default-threads - 5) at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:198)
      2017-08-18 12:26:07,052 ERROR [stderr] (default-threads - 5) at org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:185)
      2017-08-18 12:26:07,052 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
      2017-08-18 12:26:07,053 ERROR [stderr] (default-threads - 5) at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
      2017-08-18 12:26:07,053 ERROR [stderr] (default-threads - 5) at org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:73)
      2017-08-18 12:26:07,053 ERROR [stderr] (default-threads - 5) at org.kie.server.jms.KieServerMDB$$$view3.onMessage(Unknown Source)
      2017-08-18 12:26:07,053 ERROR [stderr] (default-threads - 5) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      2017-08-18 12:26:07,053 ERROR [stderr] (default-threads - 5) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      2017-08-18 12:26:07,053 ERROR [stderr] (default-threads - 5) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      2017-08-18 12:26:07,053 ERROR [stderr] (default-threads - 5) at java.lang.reflect.Method.invoke(Method.java:498)
      2017-08-18 12:26:07,053 ERROR [stderr] (default-threads - 5) at org.jboss.as.ejb3.inflow.MessageEndpointInvocationHandler.doInvoke(MessageEndpointInvocationHandler.java:139)
      2017-08-18 12:26:07,053 ERROR [stderr] (default-threads - 5) at org.jboss.as.ejb3.inflow.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:73)
      2017-08-18 12:26:07,054 ERROR [stderr] (default-threads - 5) at org.kie.server.jms.KieServerMDB$$$endpoint4.onMessage(Unknown Source)
      2017-08-18 12:26:07,054 ERROR [stderr] (default-threads - 5) at org.jboss.resource.adapter.jms.inflow.JmsServerSession.onMessage(JmsServerSession.java:163)
      2017-08-18 12:26:07,054 ERROR [stderr] (default-threads - 5) at com.tibco.tibjms.TibjmsxSessionImp._submit(TibjmsxSessionImp.java:4249)
      2017-08-18 12:26:07,054 ERROR [stderr] (default-threads - 5) at com.tibco.tibjms.TibjmsxSessionImp._dispatchAsyncMessage(TibjmsxSessionImp.java:2299)
      2017-08-18 12:26:07,054 ERROR [stderr] (default-threads - 5) at com.tibco.tibjms.TibjmsxSessionImp._run(TibjmsxSessionImp.java:3706)
      2017-08-18 12:26:07,054 ERROR [stderr] (default-threads - 5) at com.tibco.tibjms.TibjmsxSessionImp.run(TibjmsxSessionImp.java:4936)

      The suggestion is to create the jms connection/session inside of the onMessage method instead of in the init method so that a clean connection/session is being used upon each message request.

      [1] https://github.com/kiegroup/droolsjbpm-integration/blob/master/kie-server-parent/kie-server-remote/kie-server-jms/src/main/java/org/kie/server/jms/KieServerMDB.java

            swiderski.maciej Maciej Swiderski (Inactive)
            rhn-support-ghu Gary Hu
            Radovan Synek Radovan Synek
            Radovan Synek Radovan Synek
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: