TransactionManagement.manageTransaction() semantics

The above methods have error handling like this:

		try {
			commit( transaction );
		catch ( RuntimeException exception ) {
			rollback( transaction, exception );
			throw exception;

My question is: shouldn’t the transaction be rolled back in case of all Throwables? (Like Errors and maybe in case of “sneaky throws”?)

If an Error occurs, you should terminate the JVM, so that should not be handled IMO.
The case about sneaky throws is a good point though, please open a Jira and provide a PR with a fix.