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 &#39;not&#39; expecting &#39;)&#39; in rule &quot;R50&quot;<br>
[24,66]: [ERR 102] Line 24:66 mismatched input &#39;)&#39; expecting &#39;then&#39; in rule &quot;R50</span><br>Best Regards<br><br>Sebastian Furth<br></pre><br><div class="gmail_quote">2010/3/29 Wolfgang Laun <span dir="ltr">&lt;<a href="mailto:wolfgang.laun@gmail.com">wolfgang.laun@gmail.com</a>&gt;</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&#39;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 &lt;<a href="mailto:sebastian.furth@googlemail.com">sebastian.furth@googlemail.com</a>&gt; wrote:<br>
&gt; Hello,<br>
&gt;<br>
&gt; i&#39;ve already mailed last week with the same problem and with your help I was<br>
&gt; able to locate the source of the following NullPointerException which<br>
&gt; happens if we try to insert the Fact &quot;knocking&quot; (@see Source Code of the<br>
&gt; Java Class here: <a href="http://www.pastie.org/private/juv7hh7rxahpluo5agu3q" target="_blank">http://www.pastie.org/private/juv7hh7rxahpluo5agu3q</a>) :<br>
&gt;<br>
&gt; *java.lang.NullPointerException<br>
&gt;     at org.drools.reteoo.LeftTuple.get(LeftTuple.java:265)<br>
&gt;     at org.drools.reteoo.LeftTuple.get(LeftTuple.java:300)<br>
&gt;     at<br>
&gt; org.drools.rule.VariableRestriction$ObjectVariableContextEntry.updateFromTuple(VariableRestriction.java:320)<br>
&gt;     at<br>
&gt; org.drools.common.SingleBetaConstraints.updateFromTuple(SingleBetaConstraints.java:119)<br>
&gt;     at org.drools.reteoo.NotNode.assertLeftTuple(NotNode.java:98)<br>
&gt;     at<br>
&gt; org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:117)<br>
&gt;     at<br>
&gt; org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:34)<br>
&gt;     at org.drools.reteoo.NotNode.assertLeftTuple(NotNode.java:123)<br>
&gt;     at<br>
&gt; org.drools.reteoo.CompositeLeftTupleSinkAdapter.doPropagateAssertLeftTuple(CompositeLeftTupleSinkAdapter.java:145)<br>
&gt;     at<br>
&gt; org.drools.reteoo.CompositeLeftTupleSinkAdapter.createAndPropagateAssertLeftTuple(CompositeLeftTupleSinkAdapter.java:57)<br>
&gt;     at<br>
&gt; org.drools.reteoo.LeftInputAdapterNode.assertObject(LeftInputAdapterNode.java:142)<br>
&gt;     at<br>
&gt; org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:42)<br>
&gt;     at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:147)<br>
&gt;     at<br>
&gt; org.drools.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:360)<br>
&gt;     at<br>
&gt; org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:344)<br>
&gt;     at<br>
&gt; org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:185)<br>
&gt;     at<br>
&gt; org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:146)<br>
&gt;     at<br>
&gt; org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1046)<br>
&gt;     at<br>
&gt; org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1001)<br>
&gt;     at<br>
&gt; org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:788)<br>
&gt;     at<br>
&gt; org.drools.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:216)<br>
&gt;     at de.d3web.we.drools.DroolsAction.addFacts(DroolsAction.java:334)<br>
&gt; *<br>
&gt;<br>
&gt; The source of the problem is the following rule:<br>
&gt;<br>
&gt; *rule &quot;R50&quot;<br>
&gt;   when<br>
&gt;     $value1 : Value(value == &quot;knocking&quot;)<br>
&gt;     not Input(name == &quot;Engine noises&quot; &amp;&amp; values contains $value1)<br>
&gt;     or<br>
&gt;     $value2 : Value(value == &quot;ringing&quot;)<br>
&gt;     not Input(name == &quot;Engine noises&quot; &amp;&amp; values contains $value2)<br>
&gt;     $solution : SolutionInput(name == &quot;Bad ignition timing&quot;)<br>
&gt;   then<br>
&gt;     $solution.setValue(N3);<br>
&gt; end<br>
&gt; *<br>
&gt;<br>
&gt; Could you please tell me how I have to formulate the rule to avoid the<br>
&gt; NullPointerException while inserting the fact?<br>
&gt;<br>
&gt; Thank you in advance for your help.<br>
&gt;<br>
&gt; Best regards<br>
&gt;<br>
&gt; Sebastian Furth<br>
&gt;<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>