Wolfgang,
thank you for your prompt reply. After further work with my code I think the culprit may have either been the setting of the event expiration time to 1s OR that I was using session.update to insert a new counter object; but maybe not. I cleaned up my code in order to send it out. In doing so I also downloaded the official Drools 5.5 distribution (in the previous example I was using the libraries packaged with BRMS). Between the code cleanup and the use of the official distro I'm no longer experiencing a Consequence Exception.
That being said I am still experiencing a NPE when a high iteration count. If you take a look at Drools5FusionEval.java, around line 51 you'll see a variable 'eventLimit'. If set to 500000 it seems to pretty reliably kick out the following NPE:
Exception in thread "Thread-1" java.lang.NullPointerException
at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1319)
at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1221)
at org.drools.common.DefaultAgenda.fireUntilHalt(DefaultAgenda.java:1434)
at org.drools.common.AbstractWorkingMemory.fireUntilHalt(AbstractWorkingMemory.java:755)
at org.drools.common.AbstractWorkingMemory.fireUntilHalt(AbstractWorkingMemory.java:731)
at org.drools.impl.StatefulKnowledgeSessionImpl.fireUntilHalt(StatefulKnowledgeSessionImpl.java:247)
at drools5fusioneval.Drools5FusionEval$1.run(Drools5FusionEval.java:47)
As I've said I'm still very new to Drools and trying to understand better how it does what it does - any information that anyone can provide to help me understand why the above error is being experienced would be greatly appreciated.
Source code and rules are attached.