|
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() );
|