From: <jbo...@li...> - 2006-06-29 22:51:34
|
Author: mar...@jb... Date: 2006-06-29 18:51:30 -0400 (Thu, 29 Jun 2006) New Revision: 4879 Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryLogger.java Log: JBRULES-291 Audit Logging creates a NullPoiinter in the Fibonacci Example -It was trying to dump facts that have already been retracted. Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryLogger.java =================================================================== --- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryLogger.java 2006-06-29 22:49:03 UTC (rev 4878) +++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryLogger.java 2006-06-29 22:51:30 UTC (rev 4879) @@ -217,9 +217,13 @@ final Declaration[] declarations = activation.getRule().getDeclarations(); for ( int i = 0, length = declarations.length; i < length; i++ ) { final Declaration declaration = declarations[i]; - final FactHandle handle = tuple.get( declaration ); + final FactHandle handle = tuple.get( declaration ); if ( handle instanceof InternalFactHandle ) { final InternalFactHandle handleImpl = (InternalFactHandle) handle; + if ( handleImpl.getId() == -1 ) { + // This handle is now invalid, probably due to an fact retraction + continue; + } final Object value = declaration.getValue( this.workingMemory.getObject( handle ) ); result.append( declaration.getIdentifier() ); |