<div><font face="Verdana" color="#000000"><span class="038572619-03112008">Hi Drools Team,</span></font></div>
<div><font face="Verdana" color="#000000"><span class="038572619-03112008"></span></font> </div>
<div><font face="Verdana" color="#000000"><span class="038572619-03112008">I am trying out new Serialization technique introduced in Drools 5.0 using "<font size="2">org.drools.marshalling.<font size="2">DefaultMarshaller". </font></font></span></font></div>
<div><font face="Verdana" color="#000000"><span class="038572619-03112008"></span></font> </div>
<div><font face="Verdana" color="#000000"><span class="038572619-03112008">The use case I am trying, is: </span></font></div>
<div><font face="Verdana" color="#000000"><span class="038572619-03112008"> Create a Stateful session. </span></font></div>
<div><font face="Verdana" color="#000000"><span class="038572619-03112008"> Then Serialize that. </span></font></div>
<div><font face="Verdana" color="#000000"><span class="038572619-03112008"> Try to load the the serialized session back. </span></font></div>
<div><font face="Verdana" color="#000000"><span class="038572619-03112008"></span></font> </div>
<div><font face="Verdana" color="#000000"><span class="038572619-03112008">Loading of serialized session is working good if, I try that in same java program & same object of DefaultMarshaller is used during serialization & de serialization of the Stateful session.</span></font></div>
<div><font face="Verdana" color="#000000"><span class="038572619-03112008"></span></font> </div>
<div><font face="Verdana" color="#000000"><span class="038572619-03112008">But, when I tried a different instance of DefaultMarshaller to read back the saved session, that is not working anymore. I am getting a exception :</span></font></div>
<div><font face="Verdana" color="#000000"><span class="038572619-03112008"></span></font> </div>
<div><font face="Verdana" color="#000000"><span class="038572619-03112008">java.lang.NullPointerException<br> at org.drools.common.DefaultFactHandle.<init>(DefaultFactHandle.java:78)<br> at org.drools.marshalling.InputMarshaller.readFactHandle(InputMarshaller.java:331)<br>
at org.drools.marshalling.InputMarshaller.readFactHandles(InputMarshaller.java:277)<br> at org.drools.marshalling.InputMarshaller.readSession(InputMarshaller.java:179)<br> at org.drools.marshalling.DefaultMarshaller.read(DefaultMarshaller.java:58)<br>
at org.drools.marshalling.DefaultMarshaller.read(DefaultMarshaller.java:15)<br> at org.drools.reteoo.ReteooRuleBase.readStatefulSession(ReteooRuleBase.java:277)<br> at org.drools.common.AbstractRuleBase.readStatefulSession(AbstractRuleBase.java:321)<br>
at com.sample.test.NewMarshallingTest.testSerializationInFile_1(NewMarshallingTest.java:79)<br> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)<br>
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)<br> at java.lang.reflect.Method.invoke(Unknown Source)<br> at junit.framework.TestCase.runTest(TestCase.java:154)<br> at junit.framework.TestCase.runBare(TestCase.java:127)<br>
at junit.framework.TestResult$1.protect(TestResult.java:106)<br> at junit.framework.TestResult.runProtected(TestResult.java:124)<br> at junit.framework.TestResult.run(TestResult.java:109)<br> at junit.framework.TestCase.run(TestCase.java:118)<br>
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)<br> at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)<br> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)<br>
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)<br> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)<br> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)</span></font></div>
<div><font face="Verdana" color="#000000"><span class="038572619-03112008"></span></font> </div>
<div><font face="Verdana" color="#000000"><span class="038572619-03112008">With Drools 4.0.7 ... I can serialize a Stateful session & at later point of time I can deserialize that back. For our usecase, the feature is very critical.</span></font></div>
<div><font face="Verdana" color="#000000"><span class="038572619-03112008"></span></font> </div>
<div><font face="Verdana" color="#000000"><span class="038572619-03112008">Does Drools 5.0 support that ? DefaultMarshaller is not serializable. So once a Stateful session is serialized. At Later point of time, I am not able to read that back.</span></font></div>
<div><font face="Verdana" color="#000000"><span class="038572619-03112008"></span></font> </div>
<div><font face="Verdana" color="#000000"><span class="038572619-03112008">I have attached my test files.</span></font></div>
<div><font face="Verdana" color="#000000"></font> </div>
<div class="Section1">
<p class="MsoNormal" align="left"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-bidi-font-family: Arial">Best Regards!<br>Siddhartha</span></p></div>