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 <[email protected]>: > > 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 <[email protected]>: > >> 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: > >> [email protected] 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 > >> [email protected] 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 [email protected] > >> https://lists.jboss.org/mailman/listinfo/rules-users > >> _______________________________________________ rules-users > mailing list > >> [email protected] > >> https://lists.jboss.org/mailman/listinfo/rules-users > >> _______________________________________________ rules-users > mailing list > >> [email protected] > >> 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 > >> [email protected] > >> https://lists.jboss.org/mailman/listinfo/rules-users > >> > >> > > > > > > > > -- > > - http://salaboy.wordpress.com > > - http://www.jbug.com.ar > > - Salatino "Salaboy" Mauricio - > > _______________________________________________ > > rules-users mailing list > > [email protected] > > 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 > [email protected] > https://lists.jboss.org/mailman/listinfo/rules-users > Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm _______________________________________________ rules-users mailing list [email protected] https://lists.jboss.org/mailman/listinfo/rules-users
