You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kie.apache.org by "Rikkola (via GitHub)" <gi...@apache.org> on 2026/09/16 13:54:57 UTC
[I] Drools: rule with `not` inside `exists` stops firing [incubator-kie]
Rikkola opened a new issue, #7115:
URL: https://github.com/apache/incubator-kie/issues/7115
### Describe the bug
On Drools 10.x a rule guarded by exists ( A() and not B() ) stops firing even though its condition is satisfied, when another rule in a different package wraps the same leading conditional element in its own exists. The rule is simply never activated: no build error, no warning, nothing in the logs. The same rules fire correctly on 9.44.0.Final.
The whole reproducer is four DRL files. Types (repro.types):
```
package repro.types;
declare Seed end
declare SharedFact end
declare NegatedFact end
declare OtherFact end
declare Result end
```
A rule that derives SharedFact from the single input fact (repro.a):
```
package repro.a;
import repro.types.*;
rule "produce-shared-fact"
when
Seed()
then
insert(new SharedFact());
end
```
The rule that misbehaves (repro.b):
```
package repro.b;
import repro.types.*;
rule "subject"
when
exists ( SharedFact() and not NegatedFact() )
then
insert(new Result());
end
```
And a rule that never fires itself, but whose presence is what breaks the one above (repro.c):
```
package repro.c;
import repro.types.*;
rule "sibling"
when
exists ( SharedFact() and OtherFact() )
then
end
```
A single Seed is inserted and fireAllRules() is called. Nothing in the rule set ever produces NegatedFact or OtherFact, so after produce-shared-fact runs, subject's condition is satisfied and it must fire. sibling correctly does not fire, since OtherFact is absent.
On 9.44.0.Final it fires. On 10.0.0, 10.1.0 and 10.2.0 it does not.
This looks like the same family as https://github.com/apache/incubator-kie/issues/7109
### Expected behavior
_No response_
### Actual behavior
_No response_
### How to Reproduce?
_No response_
### Output of `uname -a` or `ver`
_No response_
### Output of `java -version`
_No response_
### GraalVM version (if different from Java)
_No response_
### Kogito version or git rev (or at least Quarkus version if you are using Kogito via Quarkus platform BOM)
_No response_
### Build tool (ie. output of `mvnw --version` or `gradlew --version`)
_No response_
### Additional information
_No response_
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@kie.apache.org.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@kie.apache.org
For additional commands, e-mail: commits-help@kie.apache.org
Re: [I] Drools: rule with `not` inside `exists` stops firing [incubator-kie]
Posted by "Rikkola (via GitHub)" <gi...@apache.org>.
Rikkola closed issue #7115: Drools: rule with `not` inside `exists` stops firing
URL: https://github.com/apache/incubator-kie/issues/7115
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@kie.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@kie.apache.org
For additional commands, e-mail: commits-help@kie.apache.org