В нашем приложении мы логически вставляем объект, скажем, PERSON
как часть выполнения RHS правила # 1. Позже, во время выполнения правила, другое правило # 2 хочет обновить состояние PERSON
, которое меняет hashcode()
и equals()
.
например. RHS
modify ($person) {
setName($name)
};
Теперь это не выполняется, за исключением: IllegalStateException: Currently, we cannot modify something that has mixed stated and justified equal objects
. (Используемая версия Drools: 7.16.0.Final)
К сожалению, я не смог прояснить проблему, прочитав документацию.
https://docs.jboss.org/drools/release/7.18.0.Final/drools-docs/html_single/index.html#_truth_maintenance_with_logical_objects
Реализация кажется неправильной: мы не указываем второй объект, мы пытаемся изменить состояние логически вставленного объекта.
Разве это больше невозможно? Работает в Drools 4 и 5.3.
Заранее спасибо за проверку! Я максимально упростил проблему, система, реализующая эту логику, очень сложна.
Александр