This sequence of statements disagrees with the documentation:
WorkingMemoryEntryPoint entryPoint = kSession.getWorkingMemoryEntryPoint( "epn" );
FactHandle fh = entryPoint.insert( fact );
kSession.update( fh, fact ); // should be done using entryPoint.update
But this causes (in 5.1.1) a NPE
Exception in thread "main" java.lang.NullPointerException
at org.drools.common.AbstractWorkingMemory.update(AbstractWorkingMemory.java:1379)
at org.drools.common.AbstractWorkingMemory.update(AbstractWorkingMemory.java:1338)
at org.drools.impl.StatefulKnowledgeSessionImpl.update(StatefulKnowledgeSessionImpl.java:266)
at event.Main.execute(Main.java:153)
at event.Main.main(Main.java:164)
This is the line:
if ( this.maintainTms ) {
status = ((InternalFactHandle) factHandle).getEqualityKey().getStatus();
}
and similar code can be found in trunk, so I suppose this is still possible.
-W