[jboss-jira] [JBoss JIRA] Commented: (JBRULES-1946) Deserializing a KnowledgeBase object throws a java.io.EOFException
Nestor Tarin Burriel (JIRA)
jira-events at lists.jboss.org
Fri Oct 2 06:45:49 EDT 2009
[ https://jira.jboss.org/jira/browse/JBRULES-1946?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12488193#action_12488193 ]
Nestor Tarin Burriel commented on JBRULES-1946:
-----------------------------------------------
Hi Again,
I'm testing the same marshalling strategy by using the Snapshot 5.1.0 from drools-core, and now I'm getting the error:
at org.drools.reteoo.LeftTuple.<init>(LeftTuple.java:96)
at org.drools.marshalling.impl.InputMarshaller.readLeftTuple(InputMarshaller.java:453)
at org.drools.marshalling.impl.InputMarshaller.readFactHandles(InputMarshaller.java:347)
at org.drools.marshalling.impl.InputMarshaller.readSession(InputMarshaller.java:207)
at org.drools.marshalling.impl.DefaultMarshaller.unmarshall(DefaultMarshaller.java:75)
at org.drools.marshalling.impl.DefaultMarshaller.unmarshall(DefaultMarshaller.java:47)
at kagent.test.AbstractDroolsEngine.loadCorrelator(AbstractDroolsEngine.java:215)
at kagent.test.AbstractDroolsEngine.<init>(AbstractDroolsEngine.java:61)
at kagent.test.TemporalDroolsEngineServiceImpl.<init>(TemporalDroolsEngineServiceImpl.java:71)
at kagent.test.main.MainTemporal.main(MainTemporal.java:48)
My Marshalling strategy is:
public void saveEngine(FileOutputStream out) throws IOException {
DroolsObjectOutputStream droolsOut = new DroolsObjectOutputStream(out);
droolsOut.writeObject(ksession.getKnowledgeBase());
Marshaller mas = createMarshaller(ksession.getKnowledgeBase());
mas.marshall(droolsOut, ksession);
droolsOut.flush();
droolsOut.close();
}
public void loadEngine(FileInputStream input) throws IOException,
ClassNotFoundException {
DroolsObjectInputStream droolsIn = new DroolsObjectInputStream(input);
KnowledgeBase kbase = (KnowledgeBase) droolsIn.readObject();
Marshaller mas = createMarshaller(kbase);
ksession = mas.unmarshall(droolsIn);
droolsIn.close();
}
private Marshaller createMarshaller(KnowledgeBase knowledgeBase) {
ObjectMarshallingStrategyAcceptor acceptor = MarshallerFactory.newClassFilterAcceptor( new String[]{"*.*"} );
ObjectMarshallingStrategy strategy = MarshallerFactory.newSerializeMarshallingStrategy( acceptor );
Marshaller marshaller = MarshallerFactory.newMarshaller( knowledgeBase,
new ObjectMarshallingStrategy[]{strategy} );
return marshaller;
}
Nestor
> Deserializing a KnowledgeBase object throws a java.io.EOFException
> ------------------------------------------------------------------
>
> Key: JBRULES-1946
> URL: https://jira.jboss.org/jira/browse/JBRULES-1946
> Project: Drools
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: drools-core
> Affects Versions: 5.0.0.M4, 5.0.0.M5
> Environment: Ubuntu 8.10
> Reporter: Simon Kelly
> Assignee: Edson Tirelli
> Fix For: 5.0.2, 5.1.0.M1
>
> Attachments: drools.test.zip, DroolsTest.java, Sample.drl, Sample1.drl, Sandbox2.java
>
>
> A java.io.EOFException is thrown when reading a serialized KnowledgeBase object from a file.
> java.io.EOFException
> at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2281)
> at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2750)
> at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:780)
> at java.io.ObjectInputStream.<init>(ObjectInputStream.java:280)
> at org.drools.common.DroolsObjectInputStream.<init>(DroolsObjectInputStream.java:55)
> at org.drools.common.DroolsObjectInputStream.<init>(DroolsObjectInputStream.java:49)
> at org.drools.common.AbstractRuleBase.readExternal(AbstractRuleBase.java:227)
> at org.drools.reteoo.ReteooRuleBase.readExternal(ReteooRuleBase.java:173)
> at org.drools.impl.KnowledgeBaseImpl.readExternal(KnowledgeBaseImpl.java:83)
> at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
> at com.sample.DroolsTest.read(DroolsTest.java:75)
> at com.sample.DroolsTest.testIO(DroolsTest.java:50)
> at com.sample.DroolsTest.main(DroolsTest.java:40)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list