[jboss-jira] [JBoss JIRA] (DROOLS-4996) NotSerializableException is thrown at the serialization of KieBase

Mario Fusco (Jira) issues at jboss.org
Mon Mar 2 07:52:39 EST 2020


     [ https://issues.redhat.com/browse/DROOLS-4996?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mario Fusco updated DROOLS-4996:
--------------------------------
    Sprint: 2020 Week 10-12 (from Mar 2)


> NotSerializableException is thrown at the serialization of KieBase 
> -------------------------------------------------------------------
>
>                 Key: DROOLS-4996
>                 URL: https://issues.redhat.com/browse/DROOLS-4996
>             Project: Drools
>          Issue Type: Bug
>          Components: core engine
>    Affects Versions: 7.25.0.Final
>            Reporter: Róbert István
>            Assignee: Mario Fusco
>            Priority: Minor
>
> NotSerializableException is thrown at the serialization of KieBase when the 'when' part of a rule contains a query call.
> InterceptorMap static subclass doesn't implement the Serializable interface.
> When I corrected the source of MVELCompilationUnit and rebuild the drools-core.jar, the issue disappeared.
>  
> Caused by: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.drools.core.base.mvel.MVELCompilationUnit$InterceptorMap
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1576)
> 	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2286)
> 	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2210)
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2068)
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
> 	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2286)
> 	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2210)
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2068)
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
> 	at org.drools.core.rule.QueryArgument$Expression.readExternal(QueryArgument.java:145)
> 	at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:2117)
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2066)
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
> 	at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1974)
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1566)
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
> 	at org.drools.core.rule.QueryElement.readExternal(QueryElement.java:75)
> 	at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:2117)
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2066)
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
> 	at java.util.ArrayList.readObject(ArrayList.java:797)
> 	at sun.reflect.GeneratedMethodAccessor112.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:498)
> 	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1170)
> 	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2177)
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2068)
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
> 	at org.drools.core.rule.GroupElement.readExternal(GroupElement.java:64)
> 	at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:2117)
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2066)
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
> 	at org.drools.core.definitions.rule.impl.RuleImpl.readExternal(RuleImpl.java:209)
> 	at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:2117)
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2066)
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
> 	at org.drools.core.rule.JavaDialectRuntimeData.readExternal(JavaDialectRuntimeData.java:195)
> 	at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:2117)
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2066)
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
> 	at java.util.HashMap.readObject(HashMap.java:1412)
> 	at sun.reflect.GeneratedMethodAccessor73.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:498)
> 	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1170)
> 	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2177)
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2068)
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
> 	at org.drools.core.rule.DialectRuntimeRegistry.readExternal(DialectRuntimeRegistry.java:60)
> 	at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:2117)
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2066)
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
> 	at org.drools.core.definitions.impl.KnowledgePackageImpl.readExternal(KnowledgePackageImpl.java:306)
> 	at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:2117)
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2066)
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
> 	at java.util.HashMap.readObject(HashMap.java:1412)
> 	at sun.reflect.GeneratedMethodAccessor73.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:498)
> 	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1170)
> 	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2177)
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2068)
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
> 	at org.drools.core.impl.KnowledgeBaseImpl.readExternal(KnowledgeBaseImpl.java:442)
> 	at org.jboss.marshalling.river.RiverUnmarshaller.doReadNewObject(RiverUnmarshaller.java:1418)
> 	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:272)
> 	at org.jboss.marshalling.river.RiverUnmarshaller.doReadObject(RiverUnmarshaller.java:205)
> 	at org.jboss.marshalling.AbstractObjectInput.readObject(AbstractObjectInput.java:41)
> 	at org.jboss.ejb.protocol.remote.EJBClientChannel$MethodInvocation$MethodCallResultProducer.apply(EJBClientChannel.java:1208)
> 	... 64 more
> Caused by: java.io.NotSerializableException: org.drools.core.base.mvel.MVELCompilationUnit$InterceptorMap
> 	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184)
> 	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
> 	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
> 	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
> 	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
> 	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548)
> 	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509)
> 	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
> 	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
> 	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
> 	at org.drools.core.rule.QueryArgument$Expression.writeExternal(QueryArgument.java:138)
> 	at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1459)
> 	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1430)
> 	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
> 	at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1378)
> 	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
> 	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
> 	at org.drools.core.rule.QueryElement.writeExternal(QueryElement.java:64)
> 	at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1459)
> 	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1430)
> 	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
> 	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
> 	at java.util.ArrayList.writeObject(ArrayList.java:762)
> 	at sun.reflect.GeneratedMethodAccessor308.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:498)
> 	at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1028)
> 	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496)
> 	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
> 	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
> 	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
> 	at org.drools.core.rule.GroupElement.writeExternal(GroupElement.java:69)
> 	at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1459)
> 	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1430)
> 	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
> 	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
> 	at org.drools.core.definitions.rule.impl.RuleImpl.writeExternal(RuleImpl.java:169)
> 	at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1459)
> 	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1430)
> 	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
> 	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
> 	at org.drools.core.rule.JavaDialectRuntimeData.writeExternal(JavaDialectRuntimeData.java:132)
> 	at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1459)
> 	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1430)
> 	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
> 	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
> 	at java.util.HashMap.internalWriteEntries(HashMap.java:1785)
> 	at java.util.HashMap.writeObject(HashMap.java:1362)
> 	at sun.reflect.GeneratedMethodAccessor1251.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:498)
> 	at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1028)
> 	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496)
> 	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
> 	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
> 	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
> 	at org.drools.core.rule.DialectRuntimeRegistry.writeExternal(DialectRuntimeRegistry.java:49)
> 	at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1459)
> 	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1430)
> 	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
> 	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
> 	at org.drools.core.definitions.impl.KnowledgePackageImpl.writeExternal(KnowledgePackageImpl.java:257)
> 	at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1459)
> 	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1430)
> 	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
> 	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
> 	at java.util.HashMap.internalWriteEntries(HashMap.java:1785)
> 	at java.util.HashMap.writeObject(HashMap.java:1362)
> 	at sun.reflect.GeneratedMethodAccessor1251.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:498)
> 	at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1028)
> 	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496)
> 	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432)
> 	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178)
> 	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
> 	at org.drools.core.impl.KnowledgeBaseImpl.writeExternal(KnowledgeBaseImpl.java:548)
> 	at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:908)
> 	at org.jboss.marshalling.AbstractObjectOutput.writeObject(AbstractObjectOutput.java:58)
> 	at org.jboss.marshalling.AbstractMarshaller.writeObject(AbstractMarshaller.java:111)
> 	at org.jboss.ejb.protocol.remote.EJBServerChannel$RemotingInvocationRequest$1.writeInvocationResult(EJBServerChannel.java:956)
> 	at org.jboss.as.ejb3.remote.AssociationImpl.lambda$receiveInvocationRequest$0(AssociationImpl.java:234)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> 	at java.lang.Thread.run(Thread.java:745)
> Caused by: an exception which occurred:
> 	in object of type org.drools.core.impl.KnowledgeBaseImpl 



--
This message was sent by Atlassian Jira
(v7.13.8#713008)



More information about the jboss-jira mailing list