[jboss-jira] [JBoss JIRA] (DROOLS-92) NPE when removing a rule using a Java object with Drools annotations
Mario Fusco (JIRA)
jira-events at lists.jboss.org
Wed Apr 3 04:15:42 EDT 2013
[ https://issues.jboss.org/browse/DROOLS-92?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mario Fusco resolved DROOLS-92.
-------------------------------
Fix Version/s: (was: 6.0.0.Alpha1)
Resolution: Done
I fixed it on the 5.6. It was already ok on the master because of the changes in the rewiring process.
> NPE when removing a rule using a Java object with Drools annotations
> --------------------------------------------------------------------
>
> Key: DROOLS-92
> URL: https://issues.jboss.org/browse/DROOLS-92
> Project: Drools
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Affects Versions: 5.5
> Reporter: Davide Sottara
> Assignee: Mario Fusco
> Priority: Critical
> Fix For: 5.6
>
>
> - Drools 5.5.x still has Accessors : field readers and writers. They are created consistently (reader+writer) for declared types, but in case of non-declared types (java objects), only readers are created, and only when
> a field is involved in a constraint.
> - when a rule is added (dynamically) during an incremental construction process, the packagebuilder creates "redeclarations" (TypeDeclarations with
> NATURE == DECLARATION) of involved classes, in order to process annotations
> such as @Position or @Modifies.
> - if a rule triggers the removal/update of a rule in its own KB, AbstractRuleBase.executeQueuedActions() is called, which tries to rewire the accessors
> Problem: if the modified rule's package contains a TypeDeclaration for
> an annotated java object, only the reader will exist and the rewiring
> process will throw a NPE as it tries to rewire the writer.
> Possible solutions?
> a) make the rewiring process check that an accessor exists before trying to rewire it
> OR
> b) change AbstractRuleBase.executeQueuedActions() - the code seems to have
> been removed in 6.x (master)
> OR
> c) limit the rewiring to TypeDeclarations with Nature == DEFINITION
> OR
> d) always create the writer together with the reader
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list