Both look like a bug to me. Even if RawEvent is an (abstract) base class, the "unable to resolve method" should not occur. (Are you using dialect MVEL?)
Are you using a separate thread running kSession.fireUntilHalt()? There was an alert indicating a race condition in 5.4.0. Can you post a reduced set of Java and DRL code reproducing both errors? -W On 1 September 2012 18:41, Rob21 <[email protected]> wrote: > Actually i meant that the first rule worked for every beginning of > scenario, > except the first scenario if the first event is a RawEvent. The second rule > doesn't work at all and gives me this : > > Thread [main] (Suspended (exception NullPointerException)) > > > BeforeEvaluatorDefinition$BeforeEvaluator.evaluateCachedLeft(InternalWorkingMemory, > VariableRestriction$VariableContextEntry, Object) line: 343 > EvaluatorConstraint.isAllowedCachedLeft(ContextEntry, > InternalFactHandle) > line: 67 > DoubleBetaConstraints.isAllowedCachedLeft(ContextEntry[], > InternalFactHandle) line: 168 > NotNode.assertLeftTuple(LeftTuple, PropagationContext, > InternalWorkingMemory) line: 80 > > SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(PropagationContext, > InternalWorkingMemory, LeftTuple) line: 196 > > > SingleLeftTupleSinkAdapter.createAndPropagateAssertLeftTuple(InternalFactHandle, > PropagationContext, InternalWorkingMemory, boolean, LeftInputAdapterNode) > line: 145 > LeftInputAdapterNode.assertObject(InternalFactHandle, > PropagationContext, > InternalWorkingMemory) line: 154 > > CompositeObjectSinkAdapter.doPropagateAssertObject(InternalFactHandle, > PropagationContext, InternalWorkingMemory, ObjectSink) line: 497 > > CompositeObjectSinkAdapter.propagateAssertObject(InternalFactHandle, > PropagationContext, InternalWorkingMemory) line: 382 > ObjectTypeNode.assertObject(InternalFactHandle, PropagationContext, > InternalWorkingMemory) line: 235 > EntryPointNode.assertObject(InternalFactHandle, PropagationContext, > ObjectTypeConf, InternalWorkingMemory) line: 240 > NamedEntryPoint.insert(InternalFactHandle, Object, Rule, > Activation, > ObjectTypeConf) line: 337 > NamedEntryPoint.insert(Object, boolean, boolean, Rule, Activation) > line: > 298 > ReteooStatefulSession(AbstractWorkingMemory).insert(Object, > boolean, > boolean, Rule, Activation) line: 888 > ReteooStatefulSession(AbstractWorkingMemory).insert(Object) line: > 847 > StatefulKnowledgeSessionImpl.insert(Object) line: 269 > DroolsTest.sendEvents(String, StatefulKnowledgeSession) line: 85 > DroolsTest.main(String[]) line: 62 > > About "this != $start", i tried that also as the documentation contains a > similar example with heartbeats. > Still for this rule : > rule "Detect it" > when > $start : RawEvent() > not RawEvent(this != $start, id == $start.id, $start > after[0s, 90s] this) > then > System.out.println($start); > end > The application terminates and Drools answers this : > Unable to Analyse Expression this != $start && after0.evaluate( $start, > this > ): > [Error: unable to resolve method using strict-mode: > com.sample.RawEvent.after0()] > [Near : {... this != $start && after0.evaluate( $start, this ....}] > ^ : [Rule name='Detect it'] > > java.lang.IllegalArgumentException: Could not parse knowledge. > at com.sample.DroolsTest.readKnowledgeBase(DroolsTest.java:109) > at com.sample.DroolsTest.main(DroolsTest.java:54) > > Which I don't understand > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/before-after-behavior-for-negative-pattern-tp4019497p4019499.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > [email protected] > https://lists.jboss.org/mailman/listinfo/rules-users >
_______________________________________________ rules-users mailing list [email protected] https://lists.jboss.org/mailman/listinfo/rules-users
