use of com.arjuna.mwlabs.wsas.activity.ActivityHierarchyImple in project narayana by jbosstm.
the class UserActivityImple method suspend.
/**
* Suspend the current activity from this thread and return the token
* representing the context, if any, or null otherwise. Once called, the
* thread will have no activities associated with it.
*
* @exception SystemException Thrown if any error occurs.
*
* @return the token representing the current context, if any, or null
* otherwise.
*/
public ActivityHierarchy suspend() throws SystemException {
ActivityImple currentActivity = current();
if (currentActivity == null) {
return null;
}
String serviceType = currentActivity.serviceType();
HLS hls = HLSManager.getHighLevelService(serviceType);
if (hls != null) {
try {
hls.suspended();
} catch (SystemException ex) {
wsasLogger.i18NLogger.warn_UserActivityImple_4(ex);
}
}
currentActivity = purge();
if (currentActivity != null) {
return new ActivityHierarchyImple(currentActivity);
} else {
return null;
}
}
use of com.arjuna.mwlabs.wsas.activity.ActivityHierarchyImple in project narayana by jbosstm.
the class UserActivityImple method resume.
/**
* Given a token representing a context, associate it with the current
* thread of control. This will implicitly disassociate the thread from any
* activities that it may already be associated with. If the parameter is
* null then the thread is associated with no activity.
*
* @param tx The activity to associate with this thread. This
* may be null in which case the current thread becomes associated with
* no activity.
*
* @exception InvalidActivityException Thrown if the activity handle
* is invalid in this context.
* @exception SystemException Thrown if any other error occurs.
*/
public void resume(ActivityHierarchy tx) throws InvalidActivityException, SystemException {
if (tx == null) {
purge();
} else {
if (tx instanceof ActivityHierarchyImple) {
try {
for (int i = 0; i < tx.size(); i++) {
ActivityHandleImple handle = (ActivityHandleImple) tx.activity(i);
push(handle.getActivity());
}
} catch (Exception ex) {
ex.printStackTrace();
purge();
}
} else
throw new InvalidActivityException(wsasLogger.i18NLogger.get_UserActivityImple_51());
}
ActivityImple currentActivity = current();
String serviceType = currentActivity.serviceType();
HLS hls = HLSManager.getHighLevelService(serviceType);
if (hls != null) {
try {
hls.resumed();
} catch (SystemException ex) {
wsasLogger.i18NLogger.warn_UserActivityImple_5(ex);
}
}
}
Aggregations