[rules-users] Problem with JPA session persistence in Drools Flow (5.0.1)

SBalakrishnan Sanjay.Balakrishnan at fnis.com
Tue Sep 1 20:37:36 EDT 2009


Kris,

Did download the artifacts (drools-5.1.0.SNAPSHOT-bin.zip)
from the above location but ran into the same issue reported earlier.

/*------------------------------------------------------------------*/

java.lang.RuntimeException: Unable to load session snapshot
	at
org.drools.persistence.session.JPASessionMarshallingHelper.loadSnapshot(JPASessionMarshallingHelper.java:112)
	at
org.drools.persistence.session.JPASessionMarshallingHelper.<init>(JPASessionMarshallingHelper.java:46)
	at
org.drools.persistence.session.SingleSessionCommandService.<init>(SingleSessionCommandService.java:194)
	at
org.drools.persistence.jpa.impl.JPAKnowledgeServiceProviderImpl.loadStatefulKnowledgeSession(JPAKnowledgeServiceProviderImpl.java:75)
	at
org.drools.persistence.jpa.JPAKnowledgeService.loadStatefulKnowledgeSession(JPAKnowledgeService.java:102)
	at
org.drools.examples.process.order.OrderExample.createWorkingMemory(OrderExample.java:279)
	at
org.drools.examples.process.order.OrderExample.<init>(OrderExample.java:107)
	at
org.drools.examples.process.order.OrderExample.main(OrderExample.java:88)
Caused by: java.lang.NullPointerException
	at
org.drools.marshalling.impl.InputMarshaller.readLeftTuple(InputMarshaller.java:496)
	at
org.drools.marshalling.impl.InputMarshaller.readLeftTuples(InputMarshaller.java:426)
	at
org.drools.marshalling.impl.InputMarshaller.readFactHandles(InputMarshaller.java:349)
	at
org.drools.marshalling.impl.InputMarshaller.readSession(InputMarshaller.java:207)
	at
org.drools.marshalling.impl.DefaultMarshaller.unmarshall(DefaultMarshaller.java:75)
	at
org.drools.persistence.session.JPASessionMarshallingHelper.loadSnapshot(JPASessionMarshallingHelper.java:104)

/*------------------------------------------------------------------*/


I am  creating a JPA session and starting a process
with a human task and then stopping the engine without completing
the human task .Then trying to load from the earlier session.

Am I missing any calls before exit.

Appreciate your help,thanks in advance

Sanjay


Kris Verlaenen wrote:
> 
> We're planning to do a M1 near the end of the month, and a final a few
> weeks later.
> 
> Kris
> 
> Quoting SBalakrishnan <Sanjay.Balakrishnan at fnis.com>:
> 
>> 
>> Thanks Kris 
>> 
>> Will download from the below link and check.
>> 
>> Quick question, do you know when the official 5.1 release will be
>> available
>> ?
>> 
>> 
>> 
>> 
>> 
>> 
>> Kris Verlaenen wrote:
>> > 
>> > The fix for this issue has been added to trunk about a month ago
>> already
>> > I think, have you already tried with the 5.1.0 SNAPSHOT release?
>> Does
>> > this solve your issue?
>> > 
>> > You can get the snapshot at
>> >
>> https://hudson.jboss.org/hudson/job/drools/lastSuccessfulBuild/artifact/
>> > 
>> > Kris
>> > 
>> > Quoting SBalakrishnan <Sanjay.Balakrishnan at fnis.com>:
>> > 
>> >> 
>> >> Looks like I am running into the same/similar issue while
>> recreating
>> >> from a
>> >> session_id.
>> >> Exception pasted below.
>> >> 
>> >> Any idea whether it will be addressed in the coming release ?
>> >> 
>> >> 
>> >> Thanks in advance..
>> >> 
>> >> 
>> >> /*--------------------------------------------*/
>> >> 
>> >> Hibernate: select sessioninf0_.id as id0_0_, sessioninf0_.dirty
>> as
>> >> dirty0_0_, sessioninf0_.lastModificationDate as lastModi3_0_0_,
>> >> sessioninf0_.rulesByteArray as rulesByt4_0_0_,
>> sessioninf0_.startDate
>> >> as
>> >> startDate0_0_ from SessionInfo sessioninf0_ where
>> sessioninf0_.id=?
>> >> java.lang.RuntimeException: Unable to load session snapshot
>> >> 	at
>> >>
>> >
>>
> org.drools.persistence.session.JPASessionMarshallingHelper.loadSnapshot(JPASessionMarshallingHelper.java:112)
>> >> 	at
>> >>
>> >
>>
> org.drools.persistence.session.JPASessionMarshallingHelper.<init>(JPASessionMarshallingHelper.java:46)
>> >> 	at
>> >>
>> >
>>
> org.drools.persistence.session.SingleSessionCommandService.<init>(SingleSessionCommandService.java:171)
>> >> 	at
>> >>
>> >
>>
> org.drools.persistence.jpa.impl.JPAKnowledgeServiceProviderImpl.loadStatefulKnowledgeSession(JPAKnowledgeServiceProviderImpl.java:75)
>> >> 	at
>> >>
>> >
>>
> org.drools.persistence.jpa.JPAKnowledgeService.loadStatefulKnowledgeSession(JPAKnowledgeService.java:102)
>> >> 	at
>> >>
>> >
>>
> org.drools.examples.process.order.OrderExample.createWorkingMemory(OrderExample.java:257)
>> >> 	at
>> >>
>> >
>>
> org.drools.examples.process.order.OrderExample.<init>(OrderExample.java:99)
>> >> 	at
>> >>
>> org.drools.examples.process.order.OrderExample.main(OrderExample.java:80)
>> >> Caused by: java.lang.NullPointerException
>> >> 	at
>> >>
>> >
>>
> org.drools.marshalling.impl.InputMarshaller.readLeftTuple(InputMarshaller.java:496)
>> >> 	at
>> >>
>> >
>>
> org.drools.marshalling.impl.InputMarshaller.readLeftTuples(InputMarshaller.java:426)
>> >> 	at
>> >>
>> >
>>
> org.drools.marshalling.impl.InputMarshaller.readFactHandles(InputMarshaller.java:349)
>> >> 	at
>> >>
>> >
>>
> org.drools.marshalling.impl.InputMarshaller.readSession(InputMarshaller.java:207)
>> >> 	at
>> >>
>> >
>>
> org.drools.marshalling.impl.DefaultMarshaller.unmarshall(DefaultMarshaller.java:75)
>> >> 	at
>> >>
>> >
>>
> org.drools.persistence.session.JPASessionMarshallingHelper.loadSnapshot(JPASessionMarshallingHelper.java:104)
>> >> /*--------------------------------------------*/
>> >> 
>> >> 
>> >> Mauricio Salatino wrote:
>> >> > 
>> >> > Ok, I will try to take a look at it.. this week..
>> >> > I will let you know if I can fix it
>> >> > 
>> >> > 2009/7/28 DroolsUser <rafiuddin.mk at gmail.com>:
>> >> >> Mark / salaboy, I am also facing same problem while recreate
>> the
>> >> session
>> >> >> from database. Can you advice any alternative, so that I can
>> go
>> >> forward
>> >> >> till
>> >> >> the next release. Moreover when is the new release is .......
>> Do
>> >> new
>> >> >> release
>> >> >> will targeting this kind problem? Please suggest any
>> alternative
>> >> to
>> >> >> recreate
>> >> >> the session from db. Thanks in advance......
>> >> >>
>> >> >> gairey wrote:
>> >> >> Mark, Done: https://jira.jboss.org/jira/browse/JBRULES-2199 -
>> >> thanks for
>> >> >> the
>> >> >> quick response. Regards, Alan Mark Proctor Sent by:
>> >> >> rules-users-bounces at lists.jboss.org 08/07/2009 13:49 Please
>> >> respond to
>> >> >> Rules
>> >> >> Users List To Rules Users List cc Subject Re: [rules-users]
>> >> Problem with
>> >> >> JPA
>> >> >> session persistence in Drools Flow (5.0.1) Can you open a JIRA
>> for
>> >> this,
>> >> >> and
>> >> >> we'll make sure it's done in the next few weeks:
>> >> >> https://jira.jboss.org/jira/browse/JBRULES thanks Mark
>> >> >> Alan.Gairey at tessella.com wrote: I'm currently using Drools
>> Flow
>> >> with JPA
>> >> >> session persistence enabled as described in section 5.1 of the
>> >> User
>> >> >> Guide.
>> >> >> As a process executes, session information is saved to the H2
>> >> database
>> >> >> correctly. The problem comes if a process only executes part
>> way
>> >> through,
>> >> >> and I then try to finish the process by recreating a session
>> using
>> >> the
>> >> >> code:
>> >> >> // recreate the session from database using the sessionId
>> ksession
>> >> =
>> >> >> JPAKnowledgeService.loadStatefulKnowledgeSession( sessionId,
>> >> kbase, null,
>> >> >> env ); This gives me a NullPointerException. Having looked
>> into
>> >> the
>> >> >> Drools
>> >> >> Flow source code, I think the problem is in the class
>> >> >>
>> >>
>> >
>>
> drools-persistence-jpa\src\main\java\org\drools\persistence\session\SingleSessionCommandService.java.
>> >> >> The 4th constructor of this class is called as part of the
>> loading
>> >> of a
>> >> >> knowledge session from the H2 database; this in turn leads to
>> the
>> >> >> afterCompletion method of the inner class SynchronizationImpl
>> >> being
>> >> >> called.
>> >> >> The final two lines of this method are:
>> >> ((JPAProcessInstanceManager)
>> >> >> ((ReteooWorkingMemory)
>> >> >> session).getProcessInstanceManager()).clearProcessInstances();
>> >> >> ((JPAWorkItemManager) ((ReteooWorkingMemory)
>> >> >> session).getWorkItemManager()).clearWorkItems(); However, when
>> >> called via
>> >> >> the route described above, the session member variable of
>> >> >> SingleSessionCommandService has not been set, thus causing the
>> >> >> NullPointerException. (Interestingly, running the unit tests
>> for
>> >> >> drools-persistence-jpa does result in the NullPointerException
>> >> being
>> >> >> thrown
>> >> >> multiple times, although the tests are still listed as having
>> >> passed.) I
>> >> >> believe enclosing the above two lines as follows will fix the
>> >> problem: if
>> >> >> (session != null) { ((JPAProcessInstanceManager)
>> >> ((ReteooWorkingMemory)
>> >> >> session).getProcessInstanceManager()).clearProcessInstances();
>> >> >> ((JPAWorkItemManager) ((ReteooWorkingMemory)
>> >> >> session).getWorkItemManager()).clearWorkItems(); } Also, in
>> the
>> >> 4th
>> >> >> constructor of SingleSessionCommandService, after the session
>> has
>> >> been
>> >> >> set,
>> >> >> the following line needs to be added to ensure the session id
>> is
>> >> the same
>> >> >> as
>> >> >> the session info id: ((ReteooStatefulSession)
>> >> this.session).setId(
>> >> >> this.sessionInfo.getId() ); (This line is present at the end
>> of
>> >> the 3rd
>> >> >> constructor.) It would be great if this fix could make it into
>> the
>> >> Drools
>> >> >> 5.1 release. Thanks.
>> >> _______________________________________________
>> >> >> rules-users mailing list rules-users at lists.jboss.org
>> >> >> https://lists.jboss.org/mailman/listinfo/rules-users
>> >> >> _______________________________________________ rules-users
>> >> mailing list
>> >> >> rules-users at lists.jboss.org
>> >> >> https://lists.jboss.org/mailman/listinfo/rules-users
>> >> >> _______________________________________________ rules-users
>> >> mailing list
>> >> >> rules-users at lists.jboss.org
>> >> >> https://lists.jboss.org/mailman/listinfo/rules-users
>> >> >>
>> >> >> ________________________________
>> >> >> View this message in context: Re: Problem with JPA session
>> >> persistence in
>> >> >> Drools Flow (5.0.1)
>> >> >> Sent from the drools - user mailing list archive at
>> Nabble.com.
>> >> >>
>> >> >> _______________________________________________
>> >> >> rules-users mailing list
>> >> >> rules-users at lists.jboss.org
>> >> >> https://lists.jboss.org/mailman/listinfo/rules-users
>> >> >>
>> >> >>
>> >> > 
>> >> > 
>> >> > 
>> >> > -- 
>> >> >  - http://salaboy.wordpress.com
>> >> >  - http://www.jbug.com.ar
>> >> >  - Salatino "Salaboy" Mauricio -
>> >> > _______________________________________________
>> >> > rules-users mailing list
>> >> > rules-users at lists.jboss.org
>> >> > https://lists.jboss.org/mailman/listinfo/rules-users
>> >> > 
>> >> > 
>> >> 
>> >> -- 
>> >> View this message in context:
>> >>
>> >
>>
> http://www.nabble.com/Problem-with-JPA-session-persistence-in-Drools-Flow-%285.0.1%29-tp24377236p24909794.html
>> >> Sent from the drools - user mailing list archive at Nabble.com.
>> >> 
>> >> _______________________________________________
>> >> rules-users mailing list
>> >> rules-users at lists.jboss.org
>> >> https://lists.jboss.org/mailman/listinfo/rules-users
>> >> 
>> > 
>> > 
>> > 
>> > 
>> > Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm
>> > _______________________________________________
>> > rules-users mailing list
>> > rules-users at lists.jboss.org
>> > https://lists.jboss.org/mailman/listinfo/rules-users
>> > 
>> > 
>> 
>> -- 
>> View this message in context:
>>
> http://www.nabble.com/Problem-with-JPA-session-persistence-in-Drools-Flow-%285.0.1%29-tp24377236p24957542.html
>> Sent from the drools - user mailing list archive at Nabble.com.
>> 
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>> 
> 
> 
> 
> 
> Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
> 
> 

-- 
View this message in context: http://www.nabble.com/Problem-with-JPA-session-persistence-in-Drools-Flow-%285.0.1%29-tp24377236p25249792.html
Sent from the drools - user mailing list archive at Nabble.com.




More information about the rules-users mailing list