[jboss-jira] [JBoss JIRA] Updated: (JBRULES-3102) InvalidClassException while deserialize knowledgeBase

winton xu (JIRA) jira-events at lists.jboss.org
Mon Jun 27 01:57:23 EDT 2011


     [ https://issues.jboss.org/browse/JBRULES-3102?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

winton xu updated JBRULES-3102:
-------------------------------

    Description: 
org.drools.rule.MVELDialectRuntimeData have not serialVersionUID defined
Error:
{noformat}
java.io.InvalidClassException: org.drools.rule.MVELDialectRuntimeData; local class incompatible: stream classdesc serialVersionUID = 2609855281272796208, local class serialVersionUID = 5166066541265170937
	at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:562) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) ~[na:1.6.0_20]
	at java.util.HashMap.readObject(HashMap.java:1030) ~[na:1.6.0_20]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_20]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) ~[na:1.6.0_20]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ~[na:1.6.0_20]
	at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0_20]
	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) ~[na:1.6.0_20]
	at org.drools.rule.DialectRuntimeRegistry.readExternal(DialectRuntimeRegistry.java:59) ~[org.drools.core_5.3.0.SNAPSHOT.jar:5.3.0-SNAPSHOT]
	at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) ~[na:1.6.0_20]
	at org.drools.rule.Package.readExternal(Package.java:191) ~[org.drools.core_5.3.0.SNAPSHOT.jar:5.3.0-SNAPSHOT]
	at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) ~[na:1.6.0_20]
	at java.util.HashMap.readObject(HashMap.java:1030) ~[na:1.6.0_20]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_20]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) ~[na:1.6.0_20]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ~[na:1.6.0_20]
	at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0_20]
	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) ~[na:1.6.0_20]
	at org.drools.common.AbstractRuleBase.readExternal(AbstractRuleBase.java:270) ~[org.drools.core_5.3.0.SNAPSHOT.jar:5.3.0-SNAPSHOT]
	at org.drools.reteoo.ReteooRuleBase.readExternal(ReteooRuleBase.java:217) ~[org.drools.core_5.3.0.SNAPSHOT.jar:5.3.0-SNAPSHOT]
	at org.drools.impl.KnowledgeBaseImpl.readExternal(KnowledgeBaseImpl.java:115) ~[org.drools.core_5.3.0.SNAPSHOT.jar:5.3.0-SNAPSHOT]
	at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) ~[na:1.6.0_20]

{noformat}

Detail: 
we serialize the KnowledgeBase by the following code.
{noformat}
        ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
        ObjectOutputStream out = new ObjectOutputStream(byteStream);
        out.writeObject(_kbase);
        out.close();
        setKnowledgeBaseContents(byteStream.toByteArray());
{noformat}

we deserialize the knowledgebase by the following code.
{noformat}
          ByteArrayInputStream bi = new ByteArrayInputStream(info.getData());
          ObjectInputStream oi = new ObjectInputStream(bi);
          kbase = (KnowledgeBase) oi.readObject();
          bi.close();
          oi.close();
{noformat}


  was:
org.drools.rule.MVELDialectRuntimeData have not serialVersionUID defined
Error:
{noformat}
java.io.InvalidClassException: org.drools.rule.MVELDialectRuntimeData; local class incompatible: stream classdesc serialVersionUID = 2609855281272796208, local class serialVersionUID = 5166066541265170937
	at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:562) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) ~[na:1.6.0_20]
	at java.util.HashMap.readObject(HashMap.java:1030) ~[na:1.6.0_20]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_20]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) ~[na:1.6.0_20]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ~[na:1.6.0_20]
	at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0_20]
	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) ~[na:1.6.0_20]
	at org.drools.rule.DialectRuntimeRegistry.readExternal(DialectRuntimeRegistry.java:59) ~[org.drools.core_5.3.0.SNAPSHOT.jar:5.3.0-SNAPSHOT]
	at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) ~[na:1.6.0_20]
	at org.drools.rule.Package.readExternal(Package.java:191) ~[org.drools.core_5.3.0.SNAPSHOT.jar:5.3.0-SNAPSHOT]
	at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) ~[na:1.6.0_20]
	at java.util.HashMap.readObject(HashMap.java:1030) ~[na:1.6.0_20]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_20]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) ~[na:1.6.0_20]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ~[na:1.6.0_20]
	at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0_20]
	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) ~[na:1.6.0_20]
	at org.drools.common.AbstractRuleBase.readExternal(AbstractRuleBase.java:270) ~[org.drools.core_5.3.0.SNAPSHOT.jar:5.3.0-SNAPSHOT]
	at org.drools.reteoo.ReteooRuleBase.readExternal(ReteooRuleBase.java:217) ~[org.drools.core_5.3.0.SNAPSHOT.jar:5.3.0-SNAPSHOT]
	at org.drools.impl.KnowledgeBaseImpl.readExternal(KnowledgeBaseImpl.java:115) ~[org.drools.core_5.3.0.SNAPSHOT.jar:5.3.0-SNAPSHOT]
	at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) ~[na:1.6.0_20]
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) ~[na:1.6.0_20]

{noformat}




> InvalidClassException while deserialize knowledgeBase
> -----------------------------------------------------
>
>                 Key: JBRULES-3102
>                 URL: https://issues.jboss.org/browse/JBRULES-3102
>             Project: Drools
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: drools-core
>            Reporter: winton xu
>            Assignee: Mark Proctor
>            Priority: Critical
>
> org.drools.rule.MVELDialectRuntimeData have not serialVersionUID defined
> Error:
> {noformat}
> java.io.InvalidClassException: org.drools.rule.MVELDialectRuntimeData; local class incompatible: stream classdesc serialVersionUID = 2609855281272796208, local class serialVersionUID = 5166066541265170937
> 	at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:562) ~[na:1.6.0_20]
> 	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583) ~[na:1.6.0_20]
> 	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496) ~[na:1.6.0_20]
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732) ~[na:1.6.0_20]
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) ~[na:1.6.0_20]
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) ~[na:1.6.0_20]
> 	at java.util.HashMap.readObject(HashMap.java:1030) ~[na:1.6.0_20]
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_20]
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) ~[na:1.6.0_20]
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ~[na:1.6.0_20]
> 	at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0_20]
> 	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974) ~[na:1.6.0_20]
> 	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849) ~[na:1.6.0_20]
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) ~[na:1.6.0_20]
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) ~[na:1.6.0_20]
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) ~[na:1.6.0_20]
> 	at org.drools.rule.DialectRuntimeRegistry.readExternal(DialectRuntimeRegistry.java:59) ~[org.drools.core_5.3.0.SNAPSHOT.jar:5.3.0-SNAPSHOT]
> 	at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792) ~[na:1.6.0_20]
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751) ~[na:1.6.0_20]
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) ~[na:1.6.0_20]
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) ~[na:1.6.0_20]
> 	at org.drools.rule.Package.readExternal(Package.java:191) ~[org.drools.core_5.3.0.SNAPSHOT.jar:5.3.0-SNAPSHOT]
> 	at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792) ~[na:1.6.0_20]
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751) ~[na:1.6.0_20]
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) ~[na:1.6.0_20]
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) ~[na:1.6.0_20]
> 	at java.util.HashMap.readObject(HashMap.java:1030) ~[na:1.6.0_20]
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_20]
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) ~[na:1.6.0_20]
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ~[na:1.6.0_20]
> 	at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0_20]
> 	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974) ~[na:1.6.0_20]
> 	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849) ~[na:1.6.0_20]
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) ~[na:1.6.0_20]
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) ~[na:1.6.0_20]
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) ~[na:1.6.0_20]
> 	at org.drools.common.AbstractRuleBase.readExternal(AbstractRuleBase.java:270) ~[org.drools.core_5.3.0.SNAPSHOT.jar:5.3.0-SNAPSHOT]
> 	at org.drools.reteoo.ReteooRuleBase.readExternal(ReteooRuleBase.java:217) ~[org.drools.core_5.3.0.SNAPSHOT.jar:5.3.0-SNAPSHOT]
> 	at org.drools.impl.KnowledgeBaseImpl.readExternal(KnowledgeBaseImpl.java:115) ~[org.drools.core_5.3.0.SNAPSHOT.jar:5.3.0-SNAPSHOT]
> 	at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792) ~[na:1.6.0_20]
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751) ~[na:1.6.0_20]
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) ~[na:1.6.0_20]
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) ~[na:1.6.0_20]
> {noformat}
> Detail: 
> we serialize the KnowledgeBase by the following code.
> {noformat}
>         ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
>         ObjectOutputStream out = new ObjectOutputStream(byteStream);
>         out.writeObject(_kbase);
>         out.close();
>         setKnowledgeBaseContents(byteStream.toByteArray());
> {noformat}
> we deserialize the knowledgebase by the following code.
> {noformat}
>           ByteArrayInputStream bi = new ByteArrayInputStream(info.getData());
>           ObjectInputStream oi = new ObjectInputStream(bi);
>           kbase = (KnowledgeBase) oi.readObject();
>           bi.close();
>           oi.close();
> {noformat}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jboss-jira mailing list