public abstract class CancelCriterion
extends java.lang.Object
checkCancelInProgress(Throwable). Generally the pattern is to check before performing an
operation, check if the service is canceled before propgrating an exception futher up the stack,
and check for cancelation inside a long loop. Eg.
while(true) {
c.checkCancelInProgress(null);
try {
dispatchEvents();
} catch(IOException e) {
c.checkCancelInProgress(e);
throw e;
}
}
CancelException| Constructor and Description |
|---|
CancelCriterion() |
| Modifier and Type | Method and Description |
|---|---|
abstract java.lang.String |
cancelInProgress()
Indicate if the service is in the progress of being cancelled.
|
void |
checkCancelInProgress(java.lang.Throwable e)
See if the current operation is being cancelled.
|
protected java.lang.String |
checkFailure()
Use this utility function in your implementation of cancelInProgress() and cancelled() to
indicate a system failure
|
abstract java.lang.RuntimeException |
generateCancelledException(java.lang.Throwable e)
Template factory method for generating the exception to be thrown by
checkCancelInProgress(Throwable). |
boolean |
isCancelInProgress()
Checks to see if a cancellation is in progress.
|
public abstract java.lang.String cancelInProgress()
InterruptedException, that the current operation should be
cancelled.protected final java.lang.String checkFailure()
public final void checkCancelInProgress(java.lang.Throwable e)
RuntimeException (usually a CancelException).e - an underlying exception or null if there is no exception that triggered this checkcancelInProgress()public abstract java.lang.RuntimeException generateCancelledException(java.lang.Throwable e)
checkCancelInProgress(Throwable). Override this to specify different exception for
checkCancelInProgress() to throw.
This method should wrap the exception in a service specific CancelationException (eg
CacheClosedException). or return null if the service is not being canceled.e - an underlying exception, if anypublic boolean isCancelInProgress()