[
https://issues.jboss.org/browse/DROOLS-861?page=com.atlassian.jira.plugin...
]
Mario Fusco commented on DROOLS-861:
------------------------------------
I'm investigating this issue, but anyway it doesn't seem related with
@PropertyReactive. Just declaring the type in the 2nd drl (while it wasn't declared in
the 1st) is enough to reproduce this NPE.
Incremental update causes NPE in TypeDeclarationFactory when
declaring interface as @PropertyReactive event.
------------------------------------------------------------------------------------------------------------
Key: DROOLS-861
URL:
https://issues.jboss.org/browse/DROOLS-861
Project: Drools
Issue Type: Bug
Components: core engine
Affects Versions: 6.3.0.Beta2
Environment: Mac OS X 10.10.3, Oracle JDK 1.7.0_79
Reporter: Duncan Doyle
Assignee: Mario Fusco
When incrementally updating a KieContainer, the TypeDeclarationFactory throws an NPE when
an Interface is declared as an @PropertyReactive event in the new rulebase.
{code}
java.lang.NullPointerException
at
org.drools.compiler.builder.impl.TypeDeclarationFactory.compareTypeDeclarations(TypeDeclarationFactory.java:214)
at
org.drools.compiler.builder.impl.TypeDeclarationFactory.checkRedeclaration(TypeDeclarationFactory.java:152)
at
org.drools.compiler.builder.impl.TypeDeclarationBuilder.createBean(TypeDeclarationBuilder.java:235)
at
org.drools.compiler.builder.impl.TypeDeclarationBuilder.processTypeDeclarations(TypeDeclarationBuilder.java:128)
at
org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl.buildTypeDeclarations(CompositeKnowledgeBuilderImpl.java:333)
at
org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl.buildPackages(CompositeKnowledgeBuilderImpl.java:117)
at
org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl.build(CompositeKnowledgeBuilderImpl.java:105)
at
org.drools.compiler.kie.builder.impl.KieContainerImpl.rebuildAll(KieContainerImpl.java:369)
at
org.drools.compiler.kie.builder.impl.KieContainerImpl.update(KieContainerImpl.java:207)
at
org.drools.compiler.kie.builder.impl.KieContainerImpl.updateToVersion(KieContainerImpl.java:128)
at org.jboss.ddoyle.drools.IncrementalUpdateTest.test(IncrementalUpdateTest.java:48)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
at
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at
org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at
org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at
org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75){code}
See reproducer here:
https://github.com/DuncanDoyle/drools-declare-interface-incremental-updat...
Simply run {{mvn clean test}}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)