[jboss-jira] [JBoss JIRA] Commented: (JBRULES-631) Return of serialize/deserialize - HashMap of Compiled Rule Bases.

Mark Proctor (JIRA) jira-events at lists.jboss.org
Wed Jul 4 21:35:51 EDT 2007


    [ http://jira.jboss.com/jira/browse/JBRULES-631?page=comments#action_12367766 ] 
            
Mark Proctor commented on JBRULES-631:
--------------------------------------

can you create a failing test case for us? using our latest 4.0 milestone release? or from your own build of trunk, if you can do it.

> Return of serialize/deserialize - HashMap of Compiled Rule Bases.
> -----------------------------------------------------------------
>
>                 Key: JBRULES-631
>                 URL: http://jira.jboss.com/jira/browse/JBRULES-631
>             Project: JBoss Rules
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: All
>    Affects Versions: 3.0.1
>         Environment: Websphere 6.0.  
>            Reporter: Joe Son
>         Assigned To: Mark Proctor
>
> I'm trying to deserialize hashMap of compiled RuleBases back so that i can use it.
> I've tried out different ideas but this one kinda kills me as to why i am getting this error.
> It is compiled and serialized during the start up of the webserver (webapp).  When the web app is restarted, it uses the same classloader to load the file from the disk.  
> I get this error below:
> Am I getting this because of difference in classloader instances?
> say first time around classloader instance A does the serialization.  Then when it come time for deserialization during webapp restart, classloader instance B does the desrialize. 
> Could this cause such error below?
> I'm also using JANINO compiler.
> Please help.
> java.lang.ClassNotFoundException: rules.Rule_dept00004_10_0ConsequenceInvoker
> 	at java.net.URLClassLoader.findClass(URLClassLoader.java(Compiled Code))
> 	at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java(Compiled Code))
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java(Compiled Code))
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java(Compiled Code))
> 	at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java(Compiled Code))
> 	at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java(Compiled Code))
> 	at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java(Compiled Code))
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java(Compiled Code))
> 	at com.ibm.ws.classloader.ReloadableClassLoader.loadClass(ReloadableClassLoader.java(Compiled Code))
> 	at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java(Compiled Code))
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java(Compiled Code))
> 	at org.drools.rule.CompositePackageClassLoader.loadClass(Unknown Source)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java(Compiled Code))
> 	at org.drools.common.ObjectInputStreamWithLoader.resolveClass(Unknown Source)
> 	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java(Compiled Code))
> 	at java.util.ArrayList.readObject(ArrayList.java(Compiled Code))
> 	at sun.reflect.GeneratedMethodAccessor17.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code))
> 	at java.lang.reflect.Method.invoke(Method.java(Compiled Code))
> 	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java(Compiled Code))
> 	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java(Compiled Code))
> 	at java.util.ArrayList.readObject(ArrayList.java(Compiled Code))
> 	at sun.reflect.GeneratedMethodAccessor17.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code))
> 	at java.lang.reflect.Method.invoke(Method.java(Compiled Code))
> 	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java(Compiled Code))
> 	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java(Compiled Code))
> 	at java.util.HashMap.readObject(HashMap.java(Compiled Code))
> 	at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code))
> 	at java.lang.reflect.Method.invoke(Method.java(Compiled Code))
> 	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java(Compiled Code))
> 	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java(Compiled Code))
> 	at java.util.HashMap.readObject(HashMap.java(Compiled Code))
> 	at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code))
> 	at java.lang.reflect.Method.invoke(Method.java(Compiled Code))
> 	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java(Compiled Code))
> 	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java(Compiled Code))
> 	at org.drools.common.AbstractRuleBase.doReadExternal(Unknown Source)
> 	at org.drools.reteoo.ReteooRuleBase.readExternal(Unknown Source)
> 	at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1718)
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java(Compiled Code))
> 	at java.util.HashMap.readObject(HashMap.java(Compiled Code))
> 	at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code))
> 	at java.lang.reflect.Method.invoke(Method.java(Compiled Code))
> 	at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java(Compiled Code))
> 	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java(Compiled Code))
> 	at java.io.ObjectInputStream.readObject(ObjectInputStream.java(Compiled Code))
> 	at com.nationwide.pc.util.RulesXmlUtilTest.getRuleBaseFromDisk(RulesXmlUtilTest.java:271)
> 	at com.nationwide.pc.performers.eProcess.DroolsPerformerTest.initialize(DroolsPerformerTest.java:88)
> 	at com.nationwide.pc.performers.framework.ServletFrameWork.init(ServletFrameWork.java:86)
> 	at javax.servlet.GenericServlet.init(GenericServlet.java:256)
> 	at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:274)
> 	at com.ibm.ws.webcontainer.servlet.ServletWrapper.initialize(ServletWrapper.java:1398)
> 	at com.ibm.wsspi.webcontainer.extension.WebExtensionProcessor.createServletWrapper(WebExtensionProcessor.java:86)
> 	at com.ibm.ws.webcontainer.webapp.WebApp.initializeTargetMappings(WebApp.java:558)
> 	at com.ibm.ws.webcontainer.webapp.WebApp.initialize(WebApp.java:395)
> 	at com.ibm.ws.webcontainer.webapp.WebGroup.addWebApplication(WebGroup.java:115)
> 	at com.ibm.ws.webcontainer.VirtualHost.addWebApplication(VirtualHost.java:128)
> 	at com.ibm.ws.webcontainer.WebContainer.addWebApp(WebContainer.java:905)
> 	at com.ibm.ws.webcontainer.WebContainer.addWebApplication(WebContainer.java:858)
> 	at com.ibm.ws.runtime.component.WebContainerImpl.install(WebContainerImpl.java:167)
> 	at com.ibm.ws.runtime.component.WebContainerImpl.start(WebContainerImpl.java:391)
> 	at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1228)
> 	at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1067)
> 	at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:547)
> 	at com.ibm.ws.runtime.component.ApplicationMgrImpl.startModule(ApplicationMgrImpl.java:1651)
> 	at com.ibm.ws.runtime.component.ApplicationMgrImpl._startModule(ApplicationMgrImpl.java:1599)
> 	at com.ibm.ws.runtime.component.ApplicationMgrImpl$ApplicationNotifier.classChanged(ApplicationMgrImpl.java:1811)
> 	at com.ibm.ws.classloader.ClassLoaderManager.checkAndNotify(ClassLoaderManager.java:536)
> 	at com.ibm.ws.classloader.ClassLoaderManager.access$000(ClassLoaderManager.java:58)
> 	at com.ibm.ws.classloader.ClassLoaderManager$ReloadTimerTask.alarm(ClassLoaderManager.java:604)
> 	at com.ibm.ejs.util.am._Alarm.run(_Alarm.java(Compiled Code))
> 	at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1462)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list