<div>Hi <span class="Apple-style-span" style="font-family: Verdana; ">Siddhartha,</span></div><div>See this blog for more info:<a href="http://blog.athico.com/2008/05/efficient-binary-protocol-marshalling.html" target="_blank">http://blog.athico.com/2008/05/efficient-binary-protocol-marshalling.html</a></div>
<div>"<span style="line-height:22px">The <a href="http://fisheye.jboss.org/browse/JBossRules/trunk/drools-core/src/main/java/org/drools/marshalling/DefaultMarshaller.java?r=HEAD" style="text-decoration:none;color:rgb(128, 0, 128)" target="_blank">DefaultMarshalling </a>class uses the Identity strategy if it is not passed a strategy factory.<span style="font-family:arial;line-height:normal">"</span></span></div>
<div><span style="line-height:22px">Identity strategy is stateful</span>. This means that the same instance needs to be used for deserialization.</div><div>
You may try the <span style="line-height:22px">Serialised strategy - <span class="Apple-style-span" style="line-height: normal; "><span class="Apple-style-span" style="line-height: 22px;">SerializablePlaceholderResolverStrategy</span><span class="Apple-style-span" style="line-height: 22px; ">. However, with this strategy the fact identities change when you deserialize. That may or may not be a problem, depending on what you are doing.</span></span></span></div>
<div>Best Regards,</div><div>Michal</div><div><br><div class="gmail_quote">On Mon, Nov 3, 2008 at 9:06 PM, siddhartha banik <span dir="ltr"><<a href="mailto:siddhartha.banik@gmail.com" target="_blank">siddhartha.banik@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div><font face="Verdana" color="#000000"><span>Hi Drools Team,</span></font></div>
<div><font face="Verdana" color="#000000"><span></span></font> </div>
<div><font face="Verdana" color="#000000"><span>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></span></font> </div>
<div><font face="Verdana" color="#000000"><span>The use case I am trying, is: </span></font></div>
<div><font face="Verdana" color="#000000"><span> Create a Stateful session. </span></font></div>
<div><font face="Verdana" color="#000000"><span> Then Serialize that. </span></font></div>
<div><font face="Verdana" color="#000000"><span> Try to load the the serialized session back. </span></font></div>
<div><font face="Verdana" color="#000000"><span></span></font> </div>
<div><font face="Verdana" color="#000000"><span>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></span></font> </div>
<div><font face="Verdana" color="#000000"><span>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></span></font> </div>
</div><div><font face="Verdana" color="#000000"><span>java.lang.NullPointerException<br> at org.drools.common.DefaultFactHandle.<init>(DefaultFactHandle.java:78)<div><div></div><div><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)</div>
</div></span></font></div><div><div></div><div>
<div><font face="Verdana" color="#000000"><span></span></font> </div>
<div><font face="Verdana" color="#000000"><span>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></span></font> </div>
<div><font face="Verdana" color="#000000"><span>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></span></font> </div>
<div><font face="Verdana" color="#000000"><span>I have attached my test files.</span></font></div>
<div><font face="Verdana" color="#000000"></font> </div>
<div>
<p align="left"><span style="font-size:10pt;font-family:Verdana">Best Regards!<br>Siddhartha</span></p></div>
</div></div><br>_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<br></blockquote></div><br></div>