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

SBalakrishnan Sanjay.Balakrishnan at fnis.com
Mon Aug 10 20:17:11 EDT 2009


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.




More information about the rules-users mailing list