private final Context startTransaction(int timeout, TxContextImple current)
     throws InvalidCreateParametersException, SystemException {
   try {
     final Long expires = (timeout > 0 ? new Long(timeout) : null);
     final String messageId = MessageId.getMessageId();
     final CoordinationContext currentContext = (current != null ? getContext(current) : null);
     final CoordinationContextType coordinationContext =
         ActivationCoordinator.createCoordinationContext(
             _activationCoordinatorService,
             messageId,
             BusinessActivityConstants.WSBA_PROTOCOL_ATOMIC_OUTCOME,
             expires,
             currentContext);
     if (coordinationContext == null) {
       throw new SystemException(
           wstxLogger.i18NLogger.get_mwlabs_wst11_ba_remote_UserBusinessActivityImple_2());
     }
     return new ContextImple(coordinationContext);
   } catch (final InvalidCreateParametersException icpe) {
     throw icpe;
   } catch (final SoapFault sf) {
     throw new SystemException(sf.getMessage());
   } catch (final Exception ex) {
     throw new SystemException(ex.toString());
   }
 }
 private W3CEndpointReference getTerminationCoordinatorRPC(final TxContextImple ctx)
     throws SystemException {
   final CoordinationContextType coordinationContext = ctx.context().getCoordinationContext();
   final String messageId = MessageId.getMessageId();
   try {
     return RegistrationCoordinator.register(
         coordinationContext, messageId, null, ArjunaTXConstants.WSARJTX_PROTOCOL_TERMINATION_RPC);
   } catch (final Throwable th) {
     throw new SystemException(
         wstxLogger.i18NLogger.get_mwlabs_wst11_ba_remote_UserBusinessActivityImple_3());
   }
 }