[jboss-jira] [JBoss JIRA] Created: (BPEL-304) NullPointerException on ScopeInstance calling process with correlation after restart

Carlos (JIRA) jira-events at lists.jboss.org
Fri Mar 6 07:07:22 EST 2009


NullPointerException on ScopeInstance calling process with correlation after restart
------------------------------------------------------------------------------------

                 Key: BPEL-304
                 URL: https://jira.jboss.org/jira/browse/BPEL-304
             Project: JBoss jBPM BPEL
          Issue Type: Bug
      Security Level: Public (Everyone can see)
          Components: Engine
    Affects Versions: jBPM BPEL 1.1.1
         Environment: JBoss 4.2.3 + Windows XP and JBoss 4.2.3 para RedHat Linux
            Reporter: Carlos
            Assignee: Alejandro Guizar


After start a process with correlationIds setted i waited for the process to stop on a receive node, then i stopped jboss normally and started it again. After the restart i called the same process passing the correlationId necessary to continue. Jbpm throwed:

 NullPointerException on org.jbpm.bpel.graph.exe.ScopeInstance.completed() (line 140) 

because the property state was null. I checked jbpm_scopeinstance and there is a state on it (AP). I debugged, dit some hqls for this ScopeInstance with hibernate on tab display with Eclipse, and it never gets the state property. So i did the following, on Eclipse during debug i executed the following line on display tab.

ScopeState fake = ActiveState.PRIMARY;

After that, executed the hql again, then state property was get. I guess it's a classLoading x Hibernate problem.
If ater restart, a new process is executed and after that execute one process waiting for a correlation, the state property is found

To solve my problem quickyly i did the following on public constructor ScopeInstance

ScopeInstance() {
        ScopeState fake = ActiveState.PRIMARY;
        fake = CompensatingState.DEFAULT;
        fake = CompensatingState.DEFAULT;
        fake = EndState.COMPENSATED;
        fake = FaultingState.DEFAULT;
        fake = TerminatingState.DEFAULT;
        fake = CompensatingState.DEFAULT;
    }

All the state classes need to be loaded. This is not nice =D, i know i could use a loadClass, but anyway its only a workaround =D

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list