Hi, I came across in my view strange behaviour of rules defined with activation-group and salience. I use this combination to set the priority of exclusively fired rules "Democracy City Tiles Production" and "Basic City Tiles Production". Their definitions: rule "Democracy City Tiles Production" dialect "mvel" ruleflow-group "manageProductions" activation-group "cityProduction" salience 5 when PlayerDTO($owner:id, government=="democracy") $city:CityDTO( owner==$owner ,$cityId:id ,$managedTiles:managedTiles ) accumulate( TileDTO ( id memberOf $managedTiles ,$foodProd:foodProduction ,$resourcesProd:resourcesProduction ,$tradeProd:tradeProduction ) @watch(foodProduction,resourcesProduction,tradeProduction) ,$sumFood : sum($foodProd) ,$sumResources : sum($resourcesProd) ,$sumTrade : sum(($tradeProd<1)?$tradeProd:($tradeProd+1)) ) UpdateCityProduction(cityId==$cityId) then modify($city){ setFoodProduction($sumFood) ,setResourcesProduction($sumResources) ,setTradeProduction($sumTrade) } end
and rule "Basic City Tiles Production" dialect "mvel" ruleflow-group "manageProductions" activation-group "cityProduction" when PlayerDTO($owner:id) $city:CityDTO( owner==$owner ,$cityId:id ,$managedTiles:managedTiles ) accumulate( TileDTO ( id memberOf $managedTiles ,$foodProd:foodProduction ,$resourcesProd:resourcesProduction ,$tradeProd:tradeProduction ) @watch(foodProduction,resourcesProduction,tradeProduction) ,$sumFood : sum($foodProd) ,$sumResources : sum($resourcesProd) ,$sumTrade : sum($tradeProd) ) UpdateCityProduction(cityId==$cityId) then modify($city){ setFoodProduction($sumFood) ,setResourcesProduction($sumResources) ,setTradeProduction($sumTrade) } end But problem occurs when two CityDTO objects are in the session. I would like to fire one rule for each CityDTO, but the activation-group cancels all the activations after first is fired. So only one activation in place of two fires. Here is the log: ==>[BeforeActivationFiredEvent: getActivation()=[[ Democracy City Tiles Production active=false ] [ [fact 0:12:36803987:36803987:12:DEFAULT:NON_TRAIT:UpdateCityProduction( cityId=5 )] [fact 0:16:2083264739:2083264739:16:null:NON_TRAIT:[Ljava.lang.Object;@7c2c18e3] [fact 0:11:792938926:966:11:DEFAULT:NON_TRAIT:CityDTO [id=5, name=marefy, cityCentre=null, owner=1, improvements=[], currentImprovement=null, enabledImprovements=[], homeUnits=[], currentUnit=null, enabledUnitTypes=[], tradeRoutes=[], managedTiles=[1, 2], size=5, weLoveDay=false, disorder=false, foodProduction=0, foodConsumption=0, foodSurplus=0, foodStock=0, resourcesProduction=0, resourcesConsumption=0, resourcesSurplus=null, tradeProduction=0, corruption=0, luxuriesAmount=0, luxuriesSpent=0, taxesAmount=0, researchAmount=0, peopleHappy=2, peopleUnhappy=1, peopleContent=1, peopleEntertainers=0, peopleTaxmen=1, peopleScientists=0, pollutionChance=0, improvementsUpkeep=0, unitsSupport=0]] [fact 0:9:1762763035:99463566:9:DEFAULT:NON_TRAIT:PlayerDTO [id=1, name=honza, government=democracy, enabledGovernments=null, currentAdvance=null, advances=null, enabledAdvances=null, treasury=0, research=0, researchSpent=null, turnsAvailable=null, luxuriesRatio=0, taxesRatio=0, researchRatio=0]] ] ], getKnowledgeRuntime()=org.drools.core.impl.StatefulKnowledgeSessionImpl@6a5b07f2] ==>[ActivationCancelledEvent: getCause()=CLEAR, getActivation()=[[ Basic City Tiles Production active=false ] [ [fact 0:15:807492131:807492131:15:null:NON_TRAIT:[Ljava.lang.Object;@30215a23] [fact 0:11:792938926:966:11:DEFAULT:NON_TRAIT:CityDTO [id=5, name=marefy, cityCentre=null, owner=1, improvements=[], currentImprovement=null, enabledImprovements=[], homeUnits=[], currentUnit=null, enabledUnitTypes=[], tradeRoutes=[], managedTiles=[1, 2], size=5, weLoveDay=false, disorder=false, foodProduction=0, foodConsumption=0, foodSurplus=0, foodStock=0, resourcesProduction=0, resourcesConsumption=0, resourcesSurplus=null, tradeProduction=0, corruption=0, luxuriesAmount=0, luxuriesSpent=0, taxesAmount=0, researchAmount=0, peopleHappy=2, peopleUnhappy=1, peopleContent=1, peopleEntertainers=0, peopleTaxmen=1, peopleScientists=0, pollutionChance=0, improvementsUpkeep=0, unitsSupport=0]] [fact 0:12:36803987:36803987:12:DEFAULT:NON_TRAIT:UpdateCityProduction( cityId=5 )] ] ], getKnowledgeRuntime()=org.drools.core.impl.StatefulKnowledgeSessionImpl@6a5b07f2] ==>[ActivationCancelledEvent: getCause()=CLEAR, getActivation()=[[ Basic City Tiles Production active=false ] [ [fact 0:23:833001332:833001332:23:null:NON_TRAIT:[Ljava.lang.Object;@31a69774] [fact 0:18:1816369501:968:18:DEFAULT:NON_TRAIT:CityDTO [id=7, name=Brno, cityCentre=null, owner=1, improvements=[], currentImprovement=null, enabledImprovements=[], homeUnits=[], currentUnit=null, enabledUnitTypes=[], tradeRoutes=[], managedTiles=[3, 4], size=1, weLoveDay=false, disorder=false, foodProduction=0, foodConsumption=0, foodSurplus=0, foodStock=0, resourcesProduction=0, resourcesConsumption=0, resourcesSurplus=null, tradeProduction=0, corruption=0, luxuriesAmount=0, luxuriesSpent=0, taxesAmount=0, researchAmount=0, peopleHappy=0, peopleUnhappy=0, peopleContent=1, peopleEntertainers=0, peopleTaxmen=0, peopleScientists=0, pollutionChance=0, improvementsUpkeep=0, unitsSupport=0]] [fact 0:20:1314789527:1314789527:20:DEFAULT:NON_TRAIT:UpdateCityProduction( cityId=7 )] ] ], getKnowledgeRuntime()=org.drools.core.impl.StatefulKnowledgeSessionImpl@6a5b07f2] ==>[ActivationCancelledEvent: getCause()=CLEAR, getActivation()=[[ Democracy City Tiles Production active=false ] [ [fact 0:20:1314789527:1314789527:20:DEFAULT:NON_TRAIT:UpdateCityProduction( cityId=7 )] [fact 0:19:1857434733:1857434733:19:null:NON_TRAIT:[Ljava.lang.Object;@6eb6346d] [fact 0:18:1816369501:968:18:DEFAULT:NON_TRAIT:CityDTO [id=7, name=Brno, cityCentre=null, owner=1, improvements=[], currentImprovement=null, enabledImprovements=[], homeUnits=[], currentUnit=null, enabledUnitTypes=[], tradeRoutes=[], managedTiles=[3, 4], size=1, weLoveDay=false, disorder=false, foodProduction=0, foodConsumption=0, foodSurplus=0, foodStock=0, resourcesProduction=0, resourcesConsumption=0, resourcesSurplus=null, tradeProduction=0, corruption=0, luxuriesAmount=0, luxuriesSpent=0, taxesAmount=0, researchAmount=0, peopleHappy=0, peopleUnhappy=0, peopleContent=1, peopleEntertainers=0, peopleTaxmen=0, peopleScientists=0, pollutionChance=0, improvementsUpkeep=0, unitsSupport=0]] [fact 0:9:1762763035:99463566:9:DEFAULT:NON_TRAIT:PlayerDTO [id=1, name=honza, government=democracy, enabledGovernments=null, currentAdvance=null, advances=null, enabledAdvances=null, treasury=0, research=0, researchSpent=null, turnsAvailable=null, luxuriesRatio=0, taxesRatio=0, researchRatio=0]] ] ], getKnowledgeRuntime()=org.drools.core.impl.StatefulKnowledgeSessionImpl@6a5b07f2] Is it a bug? Thanks Jan _______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users