Thanks for your reply. If I formulate the rules this way I get the following error from the KnowledgeBuilder:<br><br><pre><span style="border-bottom: 1px solid rgb(153, 153, 153); padding: 2px; margin-top: 5px; display: block; color: rgb(164, 0, 0);">[21,4]: [ERR 102] Line 21:4 mismatched input 'not' expecting ')' in rule "R50"<br>
[24,66]: [ERR 102] Line 24:66 mismatched input ')' expecting 'then' in rule "R50</span><br>Best Regards<br><br>Sebastian Furth<br></pre><br><div class="gmail_quote">2010/3/29 Wolfgang Laun <span dir="ltr"><<a href="mailto:wolfgang.laun@gmail.com">wolfgang.laun@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">If you mean<br>
<br>
when<br>
( $value1: Value(...)<br>
not Input(...)<br>
or<br>
$value2: Value(...)<br>
not Input(...) )<br>
<br>
$solution: SolutionInput(...)<br>
then<br>
...<br>
<br>
you'll have to use parentheses. If not, what *do* you mean?<br>
-W<br>
<div><div></div><div class="h5"><br>
<br>
On 3/29/10, Sebastian Furth <<a href="mailto:sebastian.furth@googlemail.com">sebastian.furth@googlemail.com</a>> wrote:<br>
> Hello,<br>
><br>
> i've already mailed last week with the same problem and with your help I was<br>
> able to locate the source of the following NullPointerException which<br>
> happens if we try to insert the Fact "knocking" (@see Source Code of the<br>
> Java Class here: <a href="http://www.pastie.org/private/juv7hh7rxahpluo5agu3q" target="_blank">http://www.pastie.org/private/juv7hh7rxahpluo5agu3q</a>) :<br>
><br>
> *java.lang.NullPointerException<br>
> at org.drools.reteoo.LeftTuple.get(LeftTuple.java:265)<br>
> at org.drools.reteoo.LeftTuple.get(LeftTuple.java:300)<br>
> at<br>
> org.drools.rule.VariableRestriction$ObjectVariableContextEntry.updateFromTuple(VariableRestriction.java:320)<br>
> at<br>
> org.drools.common.SingleBetaConstraints.updateFromTuple(SingleBetaConstraints.java:119)<br>
> at org.drools.reteoo.NotNode.assertLeftTuple(NotNode.java:98)<br>
> at<br>
> org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:117)<br>
> at<br>
> org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:34)<br>
> at org.drools.reteoo.NotNode.assertLeftTuple(NotNode.java:123)<br>
> at<br>
> org.drools.reteoo.CompositeLeftTupleSinkAdapter.doPropagateAssertLeftTuple(CompositeLeftTupleSinkAdapter.java:145)<br>
> at<br>
> org.drools.reteoo.CompositeLeftTupleSinkAdapter.createAndPropagateAssertLeftTuple(CompositeLeftTupleSinkAdapter.java:57)<br>
> at<br>
> org.drools.reteoo.LeftInputAdapterNode.assertObject(LeftInputAdapterNode.java:142)<br>
> at<br>
> org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:42)<br>
> at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:147)<br>
> at<br>
> org.drools.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:360)<br>
> at<br>
> org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:344)<br>
> at<br>
> org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:185)<br>
> at<br>
> org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:146)<br>
> at<br>
> org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1046)<br>
> at<br>
> org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1001)<br>
> at<br>
> org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:788)<br>
> at<br>
> org.drools.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:216)<br>
> at de.d3web.we.drools.DroolsAction.addFacts(DroolsAction.java:334)<br>
> *<br>
><br>
> The source of the problem is the following rule:<br>
><br>
> *rule "R50"<br>
> when<br>
> $value1 : Value(value == "knocking")<br>
> not Input(name == "Engine noises" && values contains $value1)<br>
> or<br>
> $value2 : Value(value == "ringing")<br>
> not Input(name == "Engine noises" && values contains $value2)<br>
> $solution : SolutionInput(name == "Bad ignition timing")<br>
> then<br>
> $solution.setValue(N3);<br>
> end<br>
> *<br>
><br>
> Could you please tell me how I have to formulate the rule to avoid the<br>
> NullPointerException while inserting the fact?<br>
><br>
> Thank you in advance for your help.<br>
><br>
> Best regards<br>
><br>
> Sebastian Furth<br>
><br>
</div></div>_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
</blockquote></div><br>