I have a scenario where I'm building the rules packages using the BRMS and using a standalone drools-core deployment to load these binaries. However, with the 4.0.4 release the following exception is generated by the Package.readExternal
(…) method during de-serialization. <br><br>It's using the BRMS 4.0.4 distribution war and the drools-core.jar 4.0.4 available via Maven. <br><br>------------------------------------------------------------------------------------------------------------------------------------------------------
<br><br>java.lang.ClassCastException: org.drools.rule.Package<br> at org.drools.rule.Package.readExternal(Package.java:176)<br> at com.gbv.platform.rules.drools.impl.RuleRuntimeImpl.init(RuleRuntimeImpl.java
:61)<br> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<br> at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)<br> at java.lang.reflect.Method.invoke(Method.java:585)<br> at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java
<br>:1214)<br> at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1179<br>)<br> at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean
(AbstractAutowireCapableBeanFactory.java:1145)<br> at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:427)<br> at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject
(AbstractBeanFactory.java:251)<br> at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:144)<br> at org.springframework.beans.factory.support.AbstractBeanFactory.getBean
(AbstractBeanFactory.java:248)<br> at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)<br> at org.springframework.osgi.service.exporter.OsgiServiceFactoryBean.afterPropertiesSet
(OsgiServiceFactoryBean.java:271)<br> at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1175<br>)<br> at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean
(AbstractAutowireCapableBeanFactory.java:1145)<br> at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:427)<br> at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject
(AbstractBeanFactory.java:251)<br> at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:144)<br> at org.springframework.beans.factory.support.AbstractBeanFactory.getBean
(AbstractBeanFactory.java:248)<br> at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)<br> at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons
(DefaultListableBeanFactory.java:276)<br> at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:360)<br> at org.springframework.osgi.context.support.AbstractRefreshableOsgiBundleApplicationContext.refresh
(AbstractRefreshableOsgiBundleApplicationCo<br>ntext.java:170)<br> at org.springframework.osgi.extender.support.ServiceDependentOsgiBundleXmlApplicationContext.refresh(ServiceDependentOsgiBundleXmlApplicationC<br>ontext.java
:76)<br> at org.springframework.osgi.extender.support.ApplicationContextCreator.run(ApplicationContextCreator.java:155)<br> at java.lang.Thread.run(Thread.java:595)<br>Error Loading DROOLS Package : org.drools.rule.Package
<br><br>------------------------------------------------------------------------------------------------------------------------------------------------------<br><br>BTW, Running the debugger through it I was able to get the stack trace below. This occurs on the first call to
Package.readExternal(ObjectInput) line: 176 after returning from ObjectInputStream.readObject() line: 348<br><br>------------------------------------------------------------------------------------------------------------------------------------------------------
<br><br> Package.readExternal(ObjectInput) line: 176 <br> ObjectInputStream.readExternalData(Externalizable, ObjectStreamClass) line: 1755 <br> ObjectInputStream.readOrdinaryObject
(boolean) line: 1717 <br> ObjectInputStream.readObject0(boolean) line: 1305 <br> ObjectInputStream.readObject() line: 348 <br> Package.readExternal(ObjectInput) line: 176
<br> RuleRuntimeImpl.init() line: 61 <br> NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] <br> NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39
<br> DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25 <br> Method.invoke(Object, Object...) line: 585 <br> DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).invokeCustomInitMethod(String, Object, String, boolean) line: 1214
<br> DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).invokeInitMethods(String, Object, RootBeanDefinition) line: 1179 <br> DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).initializeBean(String, Object, RootBeanDefinition) line: 1145
<br> DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).createBean(String, RootBeanDefinition, Object[]) line: 427 <br> AbstractBeanFactory$1.getObject() line: 251 <br> DefaultListableBeanFactory(DefaultSingletonBeanRegistry).getSingleton(String, ObjectFactory) line: 144
<br> DefaultListableBeanFactory(AbstractBeanFactory).getBean(String, Class, Object[]) line: 248 <br> DefaultListableBeanFactory(AbstractBeanFactory).getBean(String) line: 160 <br>
OsgiServiceFactoryBean.afterPropertiesSet() line: 271 <br> DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).invokeInitMethods(String, Object, RootBeanDefinition) line: 1175
<br> DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).initializeBean(String, Object, RootBeanDefinition) line: 1145 <br> DefaultListableBeanFactory(AbstractAutowireCapableBeanFactory).createBean(String, RootBeanDefinition, Object[]) line: 427
<br> AbstractBeanFactory$1.getObject() line: 251 <br> DefaultListableBeanFactory(DefaultSingletonBeanRegistry).getSingleton(String, ObjectFactory) line: 144 <br> DefaultListableBeanFactory(AbstractBeanFactory).getBean(String, Class, Object[]) line: 248
<br> DefaultListableBeanFactory(AbstractBeanFactory).getBean(String) line: 160 <br> DefaultListableBeanFactory.preInstantiateSingletons() line: 276 <br> ServiceDependentOsgiBundleXmlApplicationContext(AbstractApplicationContext).refresh() line: 360
<br> ServiceDependentOsgiBundleXmlApplicationContext(AbstractRefreshableOsgiBundleApplicationContext).refresh() line: 170 <br> ServiceDependentOsgiBundleXmlApplicationContext.refresh() line: 76
<br> ApplicationContextCreator.run() line: 155 <br> Thread.run() line: 595 <br><br>------------------------------------------------------------------------------------------------------------------------------------------------------
<br><br>Cheers,<br>Pavi<br><br>