Tx Control spec compliance

Ensure that internal transaction management exceptions are wrapped in a spec TransactionException before being thrown to the client
diff --git a/tx-control-services/tx-control-service-xa/src/main/java/org/apache/aries/tx/control/service/xa/impl/TransactionContextImpl.java b/tx-control-services/tx-control-service-xa/src/main/java/org/apache/aries/tx/control/service/xa/impl/TransactionContextImpl.java
index 3f18dcf..fe58f84 100644
--- a/tx-control-services/tx-control-service-xa/src/main/java/org/apache/aries/tx/control/service/xa/impl/TransactionContextImpl.java
+++ b/tx-control-services/tx-control-service-xa/src/main/java/org/apache/aries/tx/control/service/xa/impl/TransactionContextImpl.java
@@ -318,7 +318,9 @@
 					}
 				}
 			} catch (Exception e) {
-				recordFailure(e);
+				TransactionException te = e instanceof TransactionException ? (TransactionException) e :
+					new TransactionException("An error occurred in the transaction", e);
+				recordFailure(te);
 			}
 		} finally {
 			try {