Yesterday, Danny van Heumen send around the following message on the ProM Developers mailing list:
Dear all,
As of today, the equality of an XAttribute and its specializations (XAttributeLiteral, XAttributeBoolean, XAttributeDiscrete, XAttributeContinuous and XAttributeTimestamp) have been modified. The new implementation is more in line with what one would expect of this method: two attributes are considered equivalent if key, value type and value all are equivalent in both attributes.
Previously, when we would compare two XAttribute instances, it would only test whether or not the key of both instances is equal. The value type and value of the attribute would be ignored. As of now, when we compare two XAttribute instances, key, value type and value have to all be equivalent in order for two XAttribute instances to be considered equal.
Note that given the large amount of ProM packages already present and the nature of the 'equals(...)' method, i.e. 'equals(...)' may also be used (under the hood) by algorithms and data structures, we cannot easily test if this change breaks any of the existing ProM packages. So, if anyone notices a sudden breakage it might be related to this change, although there should only be such a problem if your packages uses XAttribute's 'equals(...)' method for comparing one XAttribute to another.
If the old behavior is required, you can trivially achieve this with the XAttribute's 'getKey()' method which returns the key and those keys can then be compared.
I'd like to use this opportunity and advocate the introduction of systematic testing to your plugin code. If you need to change your code by the change in OpenXES, please also write a corresponding test that ensures that your changed code provides the desired functionality.
We realized several ideas on adding tests to ProM proposed by Michael in the last ProM meeting. Now, simple tests can be implemented quite quickly. The updated and complete tutorial on