tx-control-providers/jdbc/tx-control-provider-jdbc-xa/src/main/java/org/apache/aries/tx/control/jdbc/xa/impl/RecoverableXAResourceImpl.java [62:85]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
		return new CloseableXAResource(recoveryConn);
	}

	@Override
	public void releaseXAResource(XAResource xaRes) {
		if(xaRes instanceof CloseableXAResource) {
			try {
				((CloseableXAResource) xaRes).close();
			} catch (Exception e) {
				// This is fine, the connection has been returned
			}
		} else {
			throw new IllegalArgumentException("The XAResource being returned was not created by this provider implementation");
		}
	}

	private static class CloseableXAResource implements XAResource, AutoCloseable {
		private final Connection conn;
		
		private final XAResource resource;
		
		public CloseableXAResource(Connection conn) throws SQLException {
			conn.isValid(5);
			this.conn = conn;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



tx-control-providers/jpa/tx-control-provider-jpa-xa/src/main/java/org/apache/aries/tx/control/jpa/xa/impl/RecoverableXAResourceImpl.java [63:86]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
		return new CloseableXAResource(recoveryConn);
	}

	@Override
	public void releaseXAResource(XAResource xaRes) {
		if(xaRes instanceof CloseableXAResource) {
			try {
				((CloseableXAResource) xaRes).close();
			} catch (Exception e) {
				// This is fine, the connection has been returned
			}
		} else {
			throw new IllegalArgumentException("The XAResource being returned was not created by this provider implementation");
		}
	}

	private static class CloseableXAResource implements XAResource, AutoCloseable {
		private final Connection conn;
		
		private final XAResource resource;
		
		public CloseableXAResource(Connection conn) throws SQLException {
			conn.isValid(5);
			this.conn = conn;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



