This list is now closed. Please use the google group: https://groups.google.com/forum/#!forum/drools-usage
Are the auto-responders informing people that the list is closed working? Mark On 28 Aug 2014, at 14:31, Vincent LEGENDRE <vincent.legen...@eurodecision.com> wrote: > Forgot to say : using drools 5.6.FINAL > > De: "Vincent LEGENDRE" <vincent.legen...@eurodecision.com> > À: "Rules Users List" <rules-users@lists.jboss.org> > Envoyé: Jeudi 28 Août 2014 15:28:49 > Objet: [rules-users] Inconsistent behaviour of insertLogical in rules having > from pattern > > Hi all, > > It is 2 days I am fighting with a strange behaviour of insertLogical in rules > having from pattern in conditions : it works the first time, and not after ... > > ----------------------------------------- > Here is my use-case (simplified) : > > I have a class that represent a Flight. A Flight has a start/end datetime and > is associated with a Airplane and a list of Crew : > class Flight { > String airplaneId; > List<String> crewIds; > Date start; > Date end; > } > > I want to maintain an alert list that contains all overlaps for each airplane > and each crew. So I have rules like: > > rule "Overlap Airplane" > when > $f1 : Flight($airplaneId : airplaneId) > $f2 : Flight(this != $1, airplaneId == $airplaneId, ... and periods > intersecting ... ) > then > insertLogical(new Alert(...)); > end > > rule "Overlap Crews" > when > $f1 : Flight() > $crew : String from $f1.getCrewIds() > $f2 : Flight(this != $1, eval($f2.getCrewIds().contains($crew)) , ... > and periods intersecting ... ) > then > insertLogical(new Alert(...)); > end > > > ----------------------------------------- > Ok. So what I do to test all that stuff : > - create a new session > - add a first single Flight --> no alerts at all, normal > - add a second Flight insersecting the first one with same airplane and > same crews list --> 3 new alerts inserted (one for airplane, one for each > crew) : normal > - remove this second Flight --> the 3 preivous alerts are retracted : still > ok > - re-add this second Flight --> only the 'airplane' rule triggers, I only > get one new alert insteads of the previous same 3 .... The alerts not > inserted correspond to the rule having 'from' in it > > > ----------------------------------------- > To test that it is the source of the problem, I add a new explicit > association object that I insert in WM : > class CrewAffectation { > String idCrew; > String idFlight; > } > > For each inserted Flight, I also insert corresponding new CrewAffectation > objects. (in case of retract, I retract them of course). > I change the last rule to something like : > > rule "Overlap Crews" > when > $f1 : Flight($id1 : id > $f2 : Flight(this != $1, $id2 : id, ... and periods intersecting ... ) > $crewAff1 : CrewAffectation($idCrew : idCrew, idFlight== $id1) > $crewAff2 : CrewAffectation(idCrew == $idCrew, idFlight== $id2) > then > insertLogical(new Alert(...)); > end > And with this 'no-from' approach, everything is working as expected. > > ----------------------------------------- > In addition, I suspect the truth maintenance system to have leaks, and > notably in the source kBase. > Why ? Because I was facing problems by reusing the same kBase to generate > multiples kSessions : The first session created reacted well, while all the > folowing not. > And it was in fact the same problem as the one described here : usage of from > and insertLogical in the same rule. > The first created session adds and retract my 3 alerts, the second created > session only adds the airplane alert. > > With using the explicit association object, I can reuse my kBase and > everything is working well. > > ----------------------------------------- > Does someone already faced the problem ? > Does it looks like a real bug to dev team or am I doing something wrong (but > as it work once, I guess it is a bug) ? > > > Vincent > > > _______________________________________________ > rules-users mailing list > rules-users@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > > _______________________________________________ > rules-users mailing list > rules-users@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users