[jboss-jira] [JBoss JIRA] Updated: (JBRULES-2621) NPE due to activation.getDeclarationValue( declId )
Edson Tirelli (JIRA)
jira-events at lists.jboss.org
Fri Sep 10 10:07:50 EDT 2010
[ https://jira.jboss.org/browse/JBRULES-2621?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Edson Tirelli updated JBRULES-2621:
-----------------------------------
Fix Version/s: 5.2.0.M1
(was: 5.1.1.FINAL)
> NPE due to activation.getDeclarationValue( declId )
> ---------------------------------------------------
>
> Key: JBRULES-2621
> URL: https://jira.jboss.org/browse/JBRULES-2621
> Project: Drools
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: drools-api
> Affects Versions: 5.1.0.FINAL
> Reporter: Wolfgang Laun
> Assignee: Mark Proctor
> Fix For: 5.2.0.M1
>
>
> Trying to access the declarations and their values of an activation, as used during ActivationEvent logging:
> List<String> declIds = );
> for( String declId: activation.getDeclarationIDs( ){
> Object declVal = activation.getDeclarationValue( declId );
> // ...
> }
> If, however, a fact is retracted, this code, when executed for an AfterActivationFiredEvent, throws a NPE when declId is a binding for a component of the retracted fact.
> The optimum solution would be to not get such useless bindings in the List<String> returned by getDeclarationIDs() which is in AgendaItem.java. I have added the if-statement. The following code is untested:
> public List<String> getDeclarationIDs() {
> Declaration[] declArray = this.getRule().getDeclarations();
> List<String> declarations = new ArrayList<String>();
> for( Declaration decl : declArray ) {
> // return only "sound" declaration IDs
> if( this.tuple.get( decl ).getObject() != null ){
> declarations.add( decl.getIdentifier() );
> }
> }
> return Collections.unmodifiableList( declarations );
> }
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list