Caused by: java.lang.StackOverflowError
at org.drools.core.reteoo.BetaNode.equals(BetaNode.java:628)
at org.drools.core.common.UpdateContext.isVisiting(UpdateContext.java:33)
at org.drools.core.reteoo.BetaNode.networkUpdated(BetaNode.java:525)
at org.drools.core.reteoo.BetaNode.networkUpdated(BetaNode.java:526)
at org.drools.core.reteoo.BetaNode.networkUpdated(BetaNode.java:526)
at org.drools.core.reteoo.BetaNode.networkUpdated(BetaNode.java:526)
at org.drools.core.reteoo.BetaNode.networkUpdated(BetaNode.java:526)
.........
Test case
rule "101 - Test Rule"
no-loop true
when
$field2: PicklistField(getName()=="field2" && getHasValue())
$field3: PicklistField(getName()=="field3" && getHasValue())
$field4: PicklistField(getName()=="field4" && getHasValue())
$field5: PicklistField(getName()=="field5" && getHasValue())
$field6: PicklistField(getName()=="field6" && getHasValue())
exists(
(
PicklistField(getName()=="field2" && getStringValue() != "X")
|| PicklistField(getName()=="field3" && getStringValue() != "X")
|| PicklistField(getName()=="field4" && getStringValue() != "X")
|| PicklistField(getName()=="field5" && getStringValue() != "X")
|| PicklistField(getName()=="field6" && getStringValue() != "X")
)
&&
(
PicklistField(getName()=="field2" && getStringValue() != "X")
|| PicklistField(getName()=="field3" && getStringValue() != "X")
|| PicklistField(getName()=="field4" && getStringValue() != "X")
|| PicklistField(getName()=="field5" && getStringValue() != "X")
|| PicklistField(getName()=="field6" && getStringValue() != "X")
)
&&
(
PicklistField(getName()=="field2" && getStringValue() != "X")
|| PicklistField(getName()=="field3" && getStringValue() != "X")
|| PicklistField(getName()=="field4" && getStringValue() != "X")
|| PicklistField(getName()=="field5" && getStringValue() != "X")
|| PicklistField(getName()=="field6" && getStringValue() != "X")
)
&&
(
PicklistField(getName()=="field2" && getStringValue() != "X")
|| PicklistField(getName()=="field3" && getStringValue() != "X")
|| PicklistField(getName()=="field4" && getStringValue() != "X")
|| PicklistField(getName()=="field5" && getStringValue() != "X")
)
&&
(
PicklistField(getName()=="field2" && getStringValue() != "X")
|| PicklistField(getName()=="field3" && getStringValue() != "X")
|| PicklistField(getName()=="field4" && getStringValue() != "X")
|| PicklistField(getName()=="field5" && getStringValue() != "X")
)
&&
(
PicklistField(getName()=="field2" && getStringValue() != "X")
|| PicklistField(getName()=="field3" && getStringValue() != "X")
|| PicklistField(getName()=="field4" && getStringValue() != "X")
|| PicklistField(getName()=="field5" && getStringValue() != "X")
)
)
then
end
Caused by: java.lang.StackOverflowError
at org.drools.core.reteoo.BetaNode.equals(BetaNode.java:628)
at org.drools.core.common.UpdateContext.isVisiting(UpdateContext.java:33)
at org.drools.core.reteoo.BetaNode.networkUpdated(BetaNode.java:525)
at org.drools.core.reteoo.BetaNode.networkUpdated(BetaNode.java:526)
at org.drools.core.reteoo.BetaNode.networkUpdated(BetaNode.java:526)
at org.drools.core.reteoo.BetaNode.networkUpdated(BetaNode.java:526)
at org.drools.core.reteoo.BetaNode.networkUpdated(BetaNode.java:526)
.........
Test case
rule "101 - Test Rule"
no-loop true
when
$field2: PicklistField(getName()=="field2" && getHasValue())
$field3: PicklistField(getName()=="field3" && getHasValue())
$field4: PicklistField(getName()=="field4" && getHasValue())
$field5: PicklistField(getName()=="field5" && getHasValue())
$field6: PicklistField(getName()=="field6" && getHasValue())
exists(
(
PicklistField(getName()=="field2" && getStringValue() != "X")
|| PicklistField(getName()=="field3" && getStringValue() != "X")
|| PicklistField(getName()=="field4" && getStringValue() != "X")
|| PicklistField(getName()=="field5" && getStringValue() != "X")
|| PicklistField(getName()=="field6" && getStringValue() != "X")
)
&&
(
PicklistField(getName()=="field2" && getStringValue() != "X")
|| PicklistField(getName()=="field3" && getStringValue() != "X")
|| PicklistField(getName()=="field4" && getStringValue() != "X")
|| PicklistField(getName()=="field5" && getStringValue() != "X")
|| PicklistField(getName()=="field6" && getStringValue() != "X")
)
&&
(
PicklistField(getName()=="field2" && getStringValue() != "X")
|| PicklistField(getName()=="field3" && getStringValue() != "X")
|| PicklistField(getName()=="field4" && getStringValue() != "X")
|| PicklistField(getName()=="field5" && getStringValue() != "X")
|| PicklistField(getName()=="field6" && getStringValue() != "X")
)
&&
(
PicklistField(getName()=="field2" && getStringValue() != "X")
|| PicklistField(getName()=="field3" && getStringValue() != "X")
|| PicklistField(getName()=="field4" && getStringValue() != "X")
|| PicklistField(getName()=="field5" && getStringValue() != "X")
)
&&
(
PicklistField(getName()=="field2" && getStringValue() != "X")
|| PicklistField(getName()=="field3" && getStringValue() != "X")
|| PicklistField(getName()=="field4" && getStringValue() != "X")
|| PicklistField(getName()=="field5" && getStringValue() != "X")
)
&&
(
PicklistField(getName()=="field2" && getStringValue() != "X")
|| PicklistField(getName()=="field3" && getStringValue() != "X")
|| PicklistField(getName()=="field4" && getStringValue() != "X")
|| PicklistField(getName()=="field5" && getStringValue() != "X")
)
)
then
end