[
http://jira.jboss.com/jira/browse/JBRULES-1572?page=comments#action_12410824 ]
Ming Fang commented on JBRULES-1572:
------------------------------------
Admittedly I'm not a Drools expert, but looking at the source it seams that
wm.insert() in not thread safe.
Here is the call stack when BinaryHeapQueue.enqueue() is called...
at org.drools.util.BinaryHeapQueue.enqueue(BinaryHeapQueue.java:133)
at
org.drools.common.BinaryHeapQueueAgendaGroup.add(BinaryHeapQueueAgendaGroup.java:102)
at org.drools.reteoo.RuleTerminalNode.assertTuple(RuleTerminalNode.java:309)
at org.drools.reteoo.RuleTerminalNode.assertLeftTuple(RuleTerminalNode.java:164)
at
org.drools.reteoo.SingleLeftTupleSinkAdapter.createAndPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:99)
at org.drools.reteoo.LeftInputAdapterNode.assertObject(LeftInputAdapterNode.java:143)
at
org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:42)
at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:177)
at org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:147)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:953)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:922)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:689)
at test.Test$1.run(Test.java:28)
at java.lang.Thread.run(Thread.java:613)
It appears there's no locking at any point.
Thanks for giving this issue attention.
sometimes getting ClassFieldExtractor error
-------------------------------------------
Key: JBRULES-1572
URL:
http://jira.jboss.com/jira/browse/JBRULES-1572
Project: JBoss Drools
Issue Type: Bug
Security Level: Public(Everyone can see)
Affects Versions: 5.0.0-M1, 4.0.4, 4.0.7
Reporter: Ming Fang
Assigned To: Mark Proctor
Attachments: Foo.java, rule.drl, Test.java, Test.java
Caused by: java.lang.NullPointerException
at org.drools.base.com.ml.ax.ModelValue10285014$getModelValue.getDoubleValue(Unknown
Source)
at org.drools.base.ClassFieldExtractor.getDoubleValue(ClassFieldExtractor.java:191)
at org.drools.rule.Declaration.getDoubleValue(Declaration.java:281)
at
com.ml.ax.drools.Rule_Quote_0ConsequenceInvoker.evaluate(Rule_Quote_0ConsequenceInvoker.java:17)
at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:586)
This only happens sometimes but it completely breaks my program.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira