Hi Michal,
Thanks for your reply.
I have got a better idea about marshalling now. After I have made the
changes you suggested, the things are working now.
There is a bug in "SerializablePlaceholderResolverStrategy.java" file
Line#38. Recursive call is made inside the method "public boolean
accept(Object object)" . So marshalling is failing with stackOverflowError.
The blog
"http://blog.athico.com/2008/05/efficient-binary-protocol-marshalling.html"
says :
It's still very alphaware. The following types don't yet marshall, not sure
how to handle date/time stuff at the moment. Implementations have not been
added for accumulate, collect, from and rightinputadapter.
If these issues are fixed in Drools 5.0 M2 release?
Best Regards!
Siddhartha
Siddhartha Banik wrote:
Hi Drools Team,
I am trying out new Serialization technique introduced in Drools 5.0 using
"
org.drools.marshalling.DefaultMarshaller".
The use case I am trying, is:
Create a Stateful session.
Then Serialize that.
Try to load the the serialized
session
back.
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.
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 :
java.lang.NullPointerException
at org.drools.common.DefaultFactHandle.<init>(DefaultFactHandle.java:78)
at
org.drools.marshalling.InputMarshaller.readFactHandle(InputMarshaller.java:331)
at
org.drools.marshalling.InputMarshaller.readFactHandles(InputMarshaller.java:277)
at
org.drools.marshalling.InputMarshaller.readSession(InputMarshaller.java:179)
at
org.drools.marshalling.DefaultMarshaller.read(DefaultMarshaller.java:58)
at
org.drools.marshalling.DefaultMarshaller.read(DefaultMarshaller.java:15)
at
org.drools.reteoo.ReteooRuleBase.readStatefulSession(ReteooRuleBase.java:277)
at
org.drools.common.AbstractRuleBase.readStatefulSession(AbstractRuleBase.java:321)
at
com.sample.test.NewMarshallingTest.testSerializationInFile_1(NewMarshallingTest.java:79)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at
org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
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.
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.
I have attached my test files.
Best Regards!
Siddhartha
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
--
View this message in context:
http://www.nabble.com/Serialization-in-Drools-5.0-M2-tp20314346p20331052....
Sent from the drools - user mailing list archive at
Nabble.com.