Drools 5.1.1 では問題なく動作している Drools ルールがいくつかありますが、5.5.0 にアップグレードすると壊れます。次に例を示します。
when
Map( $limit: this["FailureLimit"] )
activity: LimitExceededActivity( failureRate > $limit)
then
...
次のエラーが表示されます。
[Error: Comparison operation requires compatible types. Found float and class java.lang.Object]
[Near : {... failureRate > $limit ....}]
この場合のマップは HashMap<String, Number> です。消去のために Drools が必ずしもこれを認識しているとは限りませんが、どうすれば $limit が数値であることを納得させることができるでしょうか?