Search in sources :

Example 1 with WrongStateException

use of com.arjuna.mw.wsas.exceptions.WrongStateException in project narayana by jbosstm.

the class UserActivityImple method end.

/**
 * Complete the activity with the completion status provided.
 *
 * @param cs The CompletionStatus to use.
 *
 * @exception InvalidActivityException Thrown if the current activity is
 * invalid in the execution environment.
 * @exception ActiveChildException Thrown if the current activity is a
 * @exception WrongStateException Thrown if the current activity is not in a
 * state that allows it to be completed, or is incompatible with the
 * completion status provided.
 * @exception ProtocolViolationException Thrown if the a violation of the
 * activity service or HLS protocol occurs.
 * @exception NoActivityException Thrown if there is no activity
 * associated with the invoking thread or none with the given type of coordinator.
 * @exception NoPermissionException Thrown if the invoking thread does
 * not have permission to terminate the transaction.
 * @exception SystemException Thrown if some other error occurred.
 *
 * @return the result of completing the activity. Null is valid and must
 * be interpreted within the context of any HLS that may exist.
 *
 * @see com.arjuna.mw.wsas.Outcome
 */
public Outcome end(CompletionStatus cs) throws InvalidActivityException, WrongStateException, ProtocolViolationException, SystemException, NoActivityException, NoPermissionException, ActiveChildException {
    ActivityImple currentActivity = current();
    if (currentActivity == null) {
        throw new NoActivityException();
    }
    /*
	if (currentActivity.parent() != null)
	    throw new ActiveChildException();
	*/
    Outcome res = null;
    String serviceType = currentActivity.serviceType();
    try {
        res = currentActivity.end(cs);
    } catch (Exception ex) {
        wsasLogger.i18NLogger.warn_UserActivityImple_2(ex);
    }
    HLS hls = HLSManager.getHighLevelService(serviceType);
    if (hls != null) {
        try {
            hls.completed();
        } catch (SystemException ex) {
            wsasLogger.i18NLogger.warn_UserActivityImple_3(ex);
        }
    }
    pop();
    return res;
}
Also used : SystemException(com.arjuna.mw.wsas.exceptions.SystemException) ActivityImple(com.arjuna.mwlabs.wsas.activity.ActivityImple) Outcome(com.arjuna.mw.wsas.activity.Outcome) NoActivityException(com.arjuna.mw.wsas.exceptions.NoActivityException) EmptyStackException(java.util.EmptyStackException) SystemException(com.arjuna.mw.wsas.exceptions.SystemException) InvalidTimeoutException(com.arjuna.mw.wsas.exceptions.InvalidTimeoutException) ActiveChildException(com.arjuna.mw.wsas.exceptions.ActiveChildException) NoPermissionException(com.arjuna.mw.wsas.exceptions.NoPermissionException) NoActivityException(com.arjuna.mw.wsas.exceptions.NoActivityException) WrongStateException(com.arjuna.mw.wsas.exceptions.WrongStateException) InvalidActivityException(com.arjuna.mw.wsas.exceptions.InvalidActivityException) ProtocolViolationException(com.arjuna.mw.wsas.exceptions.ProtocolViolationException) HLS(com.arjuna.mw.wsas.activity.HLS)

Example 2 with WrongStateException

use of com.arjuna.mw.wsas.exceptions.WrongStateException in project narayana by jbosstm.

the class ActivityImple method setCompletionStatus.

/**
 * Set the termination status for the current activity, if any.
 *
 * @param CompletionStatus
 *            endStatus The state in which the activity should attempt to
 *            terminate. This may be one of the default values provided by
 *            WSAS or may be extended in an implementation specific manner
 *            by an HLS.
 *
 * @exception NoActivityException
 *                Thrown if there is no activity associated with the
 *                invoking thread.
 * @exception WrongStateException
 *                Thrown if the completion status is incompatible with the
 *                current state of the activity.
 * @exception SystemException
 *                Thrown if any other error occurs.
 */
public void setCompletionStatus(CompletionStatus endStatus) throws WrongStateException, SystemException {
    synchronized (this) {
        if (_status.equals(Active.instance())) {
            completionValid(endStatus);
            _completionStatus = endStatus;
        } else
            throw new WrongStateException(wsasLogger.i18NLogger.get_activity_ActivityImple_4() + " " + this + " " + _status);
    }
}
Also used : WrongStateException(com.arjuna.mw.wsas.exceptions.WrongStateException)

Example 3 with WrongStateException

use of com.arjuna.mw.wsas.exceptions.WrongStateException in project narayana by jbosstm.

the class UserActivityImple method end.

/**
 * Complete the activity with the completion status provided.
 *
 * @exception InvalidActivityException Thrown if the current activity is
 * invalid in the execution environment.
 * @exception ActiveChildException Thrown if the current activity is a
 * @exception WrongStateException Thrown if the current activity is not in a
 * state that allows it to be completed, or is incompatible with the
 * completion status provided.
 * @exception ProtocolViolationException Thrown if the a violation of the
 * activity service or HLS protocol occurs.
 * @exception NoActivityException Thrown if there is no activity
 * associated with the invoking thread or none with the given type of coordinator.
 * @exception NoPermissionException Thrown if the invoking thread does
 * not have permission to terminate the transaction.
 * @exception SystemException Thrown if some other error occurred.
 *
 * @return the result of completing the activity. Null is valid and must
 * be interpreted within the context of any HLS that may exist.
 *
 * @see com.arjuna.mw.wsas.activity.Outcome
 * @message com.arjuna.mwlabs.wsas.UserActivityImple_2 [com.arjuna.mwlabs.wsas.UserActivityImple_2] - currentActivity.end threw:
 * @message com.arjuna.mwlabs.wsas.UserActivityImple_3 [com.arjuna.mwlabs.wsas.UserActivityImple_3] - Activity.completed caught:
 */
public Outcome end() throws InvalidActivityException, WrongStateException, ProtocolViolationException, SystemException, NoActivityException, SystemException, NoPermissionException, ActiveChildException {
    ActivityImple currentActivity = current();
    if (currentActivity == null) {
        throw new NoActivityException();
    }
    Outcome res = null;
    String serviceType = currentActivity.serviceType();
    try {
        res = currentActivity.end();
    } catch (Exception ex) {
        wsasLogger.i18NLogger.warn_UserActivityImple_1(ex);
    }
    HLS hls = HLSManager.getHighLevelService(serviceType);
    if (hls != null) {
        try {
            hls.completed();
        } catch (SystemException ex) {
            wsasLogger.i18NLogger.warn_UserActivityImple_3(ex);
        }
    }
    pop();
    return res;
}
Also used : SystemException(com.arjuna.mw.wsas.exceptions.SystemException) ActivityImple(com.arjuna.mwlabs.wsas.activity.ActivityImple) Outcome(com.arjuna.mw.wsas.activity.Outcome) NoActivityException(com.arjuna.mw.wsas.exceptions.NoActivityException) EmptyStackException(java.util.EmptyStackException) SystemException(com.arjuna.mw.wsas.exceptions.SystemException) InvalidTimeoutException(com.arjuna.mw.wsas.exceptions.InvalidTimeoutException) ActiveChildException(com.arjuna.mw.wsas.exceptions.ActiveChildException) NoPermissionException(com.arjuna.mw.wsas.exceptions.NoPermissionException) NoActivityException(com.arjuna.mw.wsas.exceptions.NoActivityException) WrongStateException(com.arjuna.mw.wsas.exceptions.WrongStateException) InvalidActivityException(com.arjuna.mw.wsas.exceptions.InvalidActivityException) ProtocolViolationException(com.arjuna.mw.wsas.exceptions.ProtocolViolationException) HLS(com.arjuna.mw.wsas.activity.HLS)

Example 4 with WrongStateException

use of com.arjuna.mw.wsas.exceptions.WrongStateException in project narayana by jbosstm.

the class UserActivityImple method start.

/**
 * Start a new activity. If there is already an activity associated
 * with the thread then it will be nested.
 *
 * @param serviceType specifies the type of coordinator which will be
 * instantiated to manage the activity.
 * @param timeout The timeout associated with the activity. If the
 * activity has not been terminated by the time this period elapses, then
 * it will automatically be terminated.
 * @exception WrongStateException Thrown if the currently associated
 * activity is in a state that does not allow a new activity to be
 * enlisted as a child.
 * @exception InvalidTimeoutException Thrown if the specified timeout is
 * invalid within the current working environment.
 * @exception SystemException Thrown in any other situation.
 */
public void start(String serviceType, int timeout) throws WrongStateException, InvalidTimeoutException, SystemException {
    if (timeout < 0)
        throw new InvalidTimeoutException();
    else {
        if (timeout == 0)
            timeout = getTimeout();
    }
    ActivityImple currentActivity = new ActivityImple(current(), serviceType);
    currentActivity.start(timeout);
    push(currentActivity);
    HLS hls = HLSManager.getHighLevelService(serviceType);
    try {
        if (hls != null) {
            hls.begun();
        }
    } catch (SystemException ex) {
        try {
            setCompletionStatus(FailureOnly.instance());
        } catch (Exception e) {
            wsasLogger.i18NLogger.warn_UserActivityImple_1(e);
        }
        throw ex;
    }
}
Also used : InvalidTimeoutException(com.arjuna.mw.wsas.exceptions.InvalidTimeoutException) SystemException(com.arjuna.mw.wsas.exceptions.SystemException) ActivityImple(com.arjuna.mwlabs.wsas.activity.ActivityImple) HLS(com.arjuna.mw.wsas.activity.HLS) EmptyStackException(java.util.EmptyStackException) SystemException(com.arjuna.mw.wsas.exceptions.SystemException) InvalidTimeoutException(com.arjuna.mw.wsas.exceptions.InvalidTimeoutException) ActiveChildException(com.arjuna.mw.wsas.exceptions.ActiveChildException) NoPermissionException(com.arjuna.mw.wsas.exceptions.NoPermissionException) NoActivityException(com.arjuna.mw.wsas.exceptions.NoActivityException) WrongStateException(com.arjuna.mw.wsas.exceptions.WrongStateException) InvalidActivityException(com.arjuna.mw.wsas.exceptions.InvalidActivityException) ProtocolViolationException(com.arjuna.mw.wsas.exceptions.ProtocolViolationException)

Example 5 with WrongStateException

use of com.arjuna.mw.wsas.exceptions.WrongStateException in project narayana by jbosstm.

the class ActivityImple method end.

/**
 * Complete the activity with the completion status provided.
 *
 * @param cs The CompletionStatus to use.
 *
 * @exception InvalidActivityException
 *                Thrown if the current activity is not known about by the
 *                activity system.
 * @exception WrongStateException
 *                Thrown if the current activity is not in a state that
 *                allows it to be completed, or is incompatible with the
 *                completion status provided.
 * @exception ProtocolViolationException
 *                Thrown if the a violation of the activity service or HLS
 *                protocol occurs.
 * @exception NoPermissionException
 *                Thrown if the invoking thread does not have permission to
 *                terminate the transaction.
 * @exception SystemException
 *                Thrown if some other error occurred.
 *
 * @return the result of completing the activity. Null is valid and must be
 *         interpreted within the context of any HLS that may exist.
 *
 * @see com.arjuna.mw.wsas.Outcome
 */
public Outcome end(com.arjuna.mw.wsas.completionstatus.CompletionStatus cs) throws InvalidActivityException, WrongStateException, ProtocolViolationException, NoPermissionException, SystemException {
    synchronized (this) {
        if (_status.equals(Active.instance())) {
            if (activeChildren()) {
                throw new InvalidActivityException(wsasLogger.i18NLogger.get_activity_ActivityImple_2() + " " + this);
            }
            Outcome result = null;
            try {
                setCompletionStatus(cs);
            } catch (Exception ex) {
            // ignore and complete with the status we have.
            }
            _status = Completing.instance();
            try {
                HLS hls = HLSManager.getHighLevelService(_serviceType);
                if (hls != null) {
                    result = hls.complete(getCompletionStatus());
                } else {
                    result = new OutcomeImple(Failure.instance());
                }
            } catch (SystemException ex) {
                /*
					 * Currently if an exception occurs and we get here, then we
					 * forget all of the other outcomes and just return the
					 * exception. Does this make sense? How will applications be
					 * able to tell which HLSes have processed the outcome and
					 * which have not?
					 */
                result = new OutcomeImple(new HLSException(ex), Failure.instance());
            }
            if (_parent != null) {
                _parent.removeChild(this);
                _parent = null;
            }
            _status = Completed.instance();
            _result = result;
            return _result;
        } else {
            if (_result != null)
                return _result;
            else {
                throw new WrongStateException(wsasLogger.i18NLogger.get_activity_ActivityImple_3() + " " + _status);
            }
        }
    }
}
Also used : InvalidActivityException(com.arjuna.mw.wsas.exceptions.InvalidActivityException) SystemException(com.arjuna.mw.wsas.exceptions.SystemException) Outcome(com.arjuna.mw.wsas.activity.Outcome) WrongStateException(com.arjuna.mw.wsas.exceptions.WrongStateException) HLSException(com.arjuna.mw.wsas.exceptions.HLSException) SystemException(com.arjuna.mw.wsas.exceptions.SystemException) HLSException(com.arjuna.mw.wsas.exceptions.HLSException) InvalidTimeoutException(com.arjuna.mw.wsas.exceptions.InvalidTimeoutException) NoPermissionException(com.arjuna.mw.wsas.exceptions.NoPermissionException) NoActivityException(com.arjuna.mw.wsas.exceptions.NoActivityException) WrongStateException(com.arjuna.mw.wsas.exceptions.WrongStateException) InvalidActivityException(com.arjuna.mw.wsas.exceptions.InvalidActivityException) ProtocolViolationException(com.arjuna.mw.wsas.exceptions.ProtocolViolationException) HLS(com.arjuna.mw.wsas.activity.HLS)

Aggregations

WrongStateException (com.arjuna.mw.wsas.exceptions.WrongStateException)5 HLS (com.arjuna.mw.wsas.activity.HLS)4 InvalidActivityException (com.arjuna.mw.wsas.exceptions.InvalidActivityException)4 InvalidTimeoutException (com.arjuna.mw.wsas.exceptions.InvalidTimeoutException)4 NoActivityException (com.arjuna.mw.wsas.exceptions.NoActivityException)4 NoPermissionException (com.arjuna.mw.wsas.exceptions.NoPermissionException)4 ProtocolViolationException (com.arjuna.mw.wsas.exceptions.ProtocolViolationException)4 SystemException (com.arjuna.mw.wsas.exceptions.SystemException)4 Outcome (com.arjuna.mw.wsas.activity.Outcome)3 ActiveChildException (com.arjuna.mw.wsas.exceptions.ActiveChildException)3 ActivityImple (com.arjuna.mwlabs.wsas.activity.ActivityImple)3 EmptyStackException (java.util.EmptyStackException)3 HLSException (com.arjuna.mw.wsas.exceptions.HLSException)1