IMPORTANT: this release is a highly recommended fix for your installation if you are using release 3.7.8 or later. If you don't upgrade then you risk losing part of the transaction.
During an earlier fix for case 102827 in release 3.7.8 (connection leak for errors during XAResource.end), we disabled throwing exceptions originating from XAResource.end, assuming that XAResource.prepare would subsequently refuse to prepare or commit the Xid in question. It turns out that there was a problem with this assumption and the way it was implemented in the code, which caused this issue. This has been fixed, and of course we've added a test to prevent future regression.
There was a bug in removing obsolete sessions, caused by incompatibility of the equals method and dynamic proxies. This has now been fixed.
initConnectionSql. When set, the connection pool will trigger the specified SQL when a new connection is added to the pool.
It is now possible to use Hazelcast distributed caching as part of your transactions. If there is a rollback then any changes in the cache will rollback too. This is useful if you want to keep your cache consistent with your messaging and/or database, and it reduces the need for manual evicting from the cache.
This functionality has been tested against Hazelcast 3.5, which also includes XA support. Nevertheless, for recovery purposes you still need Atomikos functionality, covered in this release.
Some primitive types were as yet unsupported, like long / byte / floating point / char. Support for these has now been added.