[JBoss JIRA] Created: (JBPM-2932) NullPointerException is thrown when forcing a process to end having attached end event listener
by Nándor Előd Fekete (JIRA)
NullPointerException is thrown when forcing a process to end having attached end event listener
-----------------------------------------------------------------------------------------------
Key: JBPM-2932
URL: https://jira.jboss.org/browse/JBPM-2932
Project: jBPM
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Runtime Engine
Affects Versions: jBPM 4.4
Reporter: Nándor Előd Fekete
NullPointerException is thrown when forcing a process to end using ExecutionService.endProcessInstance(...) having attached end event listener
DefaultCommandService - exception while executing command org.jbpm.pvm.internal.cmd.EndProcessInstance@6649
java.lang.NullPointerException
at org.jbpm.pvm.internal.util.ReflectUtil.installDeploymentClassLoader(ReflectUtil.java:385)
at org.jbpm.pvm.internal.util.ReflectUtil.instantiateUserCode(ReflectUtil.java:412)
at org.jbpm.pvm.internal.wire.usercode.UserCodeReference.getObject(UserCodeReference.java:63)
at org.jbpm.pvm.internal.wire.usercode.UserCodeReference.getObject(UserCodeReference.java:47)
at org.jbpm.pvm.internal.wire.usercode.UserCodeEventListener.notify(UserCodeEventListener.java:38)
at org.jbpm.pvm.internal.model.op.ExecuteEventListener.perform(ExecuteEventListener.java:81)
at org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperationSync(ExecutionImpl.java:672)
at org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperation(ExecutionImpl.java:632)
at org.jbpm.pvm.internal.model.ExecutionImpl.fire(ExecutionImpl.java:579)
at org.jbpm.pvm.internal.model.ExecutionImpl.fire(ExecutionImpl.java:568)
at org.jbpm.pvm.internal.model.ExecutionImpl.end(ExecutionImpl.java:386)
at org.jbpm.pvm.internal.cmd.EndProcessInstance.execute(EndProcessInstance.java:48)
at org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)
at org.jbpm.pvm.internal.svc.SkipInterceptor.execute(SkipInterceptor.java:40)
at org.jbpm.pvm.internal.svc.ExecutionServiceImpl.endProcessInstance(ExecutionServiceImpl.java:117)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 2 months
[JBoss JIRA] Created: (JBPM-2945) EJB3 based job processor
by Alejandro Guizar (JIRA)
EJB3 based job processor
------------------------
Key: JBPM-2945
URL: https://jira.jboss.org/browse/JBPM-2945
Project: jBPM
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Components: Runtime Engine
Reporter: Alejandro Guizar
Fix For: jBPM 3.2.10
There have some issues with how the retry mechanism works with Timers, and we recommend not ditching the XA driver for 2 phase commit.
We will be changing how the JMS Listener works for jBPM; currently, it used JCA Inflow Adapter, which is an element of JBoss SOA-P. We would like to instead use Message Driven Beans; this is a really stable project and an element of EJB 3.0. We believe that the issue with hung commits probably internally has something to do with JCA Inflow Adapter and its transaction management. By using MDB, we will get Container Managed Transactions, which is a stable and standard TX implementation which is well documented.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 3 months
[JBoss JIRA] Created: (JBPM-2946) class org.jbpm.ejb.impl.CommandListenerBean.java the lookup has the JNDI name harcoded
by eric schabell (JIRA)
class org.jbpm.ejb.impl.CommandListenerBean.java the lookup has the JNDI name harcoded
--------------------------------------------------------------------------------------
Key: JBPM-2946
URL: https://jira.jboss.org/browse/JBPM-2946
Project: jBPM
Issue Type: Patch
Security Level: Public (Everyone can see)
Components: Runtime Engine
Affects Versions: jBPM 3.2.x
Reporter: eric schabell
Priority: Minor
Fix For: jBPM 3.2.10
Working with jBPM 3.2.8 but I have found it still is the same in jBPM 3.x TRUNK. This issue was raised in issue 00063190, but is resolved in JBoss environments only with their answer. To be more flexible the fix below would be nice.
Class org.jbpm.ejb.impl.CommandListenerBean.java the lookup has the JNDI name harcoded:
LocalCommandServiceHome commandServiceHome = (LocalCommandServiceHome) initial.lookup("java:comp/env/ejb/LocalCommandServiceBean");
So this can't be configured through jbpm-cfg.xml. This causes problems when the EJB JNDI name is different from ejb/LocalCommandServiceBean.
I wonder if it's possible to fix it so it works like the org.jbpm.scheduler.ejbtimer.EntitySchedulerServiceFactory.java, which has this:
String timerEntityHomeJndiName = "java:comp/env/ejb/TimerEntityBean";
[...]
timerEntityHome = (LocalTimerEntityHome) lookup(timerEntityHomeJndiName);
This way it can be configured through jbpm-cfg.xml:
<service name="scheduler">
<factory>
<bean class="org.jbpm.scheduler.ejbtimer.EntitySchedulerServiceFactory">
<field name="timerEntityHomeJndiName">
<string value="TimerEntityBean"/>
</field>
</bean>
</factory>
</service>
This is sort of like the issue resolved here https://jira.jboss.org/browse/JBPM-960
Patch would be something like this in CommandListenerBean.java starting at line 179 (entire method provided here):
private Session createSession() throws JMSException {
if (jmsConnection == null) {
// lookup factory and create jms connection
try {
log.debug("trying to create session with CommanListenerBean");
Context initial = new InitialContext();
// Changed the following line to change the hardcoded comp:env/ejb JNDI
// ConnectionFactory jmsConnectionFactory = (ConnectionFactory) initial.lookup("java:comp/env/jms/JbpmConnectionFactory");
ConnectionFactory jmsConnectionFactory = (ConnectionFactory) initial.lookup("jbpmJobExecConFact");
jmsConnection = jmsConnectionFactory.createConnection();
log.debug("done creating session with CommanListenerBean");
}
catch (NamingException e) {
throw new EJBException("error retrieving jms connection factory", e);
}
}
/*
* if the connection supports xa, the session will be transacted, else the session will auto
* acknowledge; in either case no explicit transaction control must be performed - see ejb 2.1 -
* 17.3.5
*/
return jmsConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 3 months