-
Bug
-
Resolution: Done
-
Minor
-
None
-
6.1.0.Final
-
None
-
None
The toString() method in org.drools.core.rule.ConsequenceMetaData is not null-safe. It assumes that the List statements contains at least one element.
This is a problem when the method gets invoked during the serialization-based deep clone effected during initialization under certain conditions (see the "Reproduce" section).
With this combination, code in java.io.ObjectOutputStream ends up invoking the toString() method in order to print additional information in the stack trace for java.io.NotSerializableException. I have attached a snippet of the stack trace as a reference.
The code in question is unchanged even in the latest version in github.