if (UIMAFramework.getLogger().isLoggable(Level.FINEST)) {
UIMAFramework.getLogger(this.getClass()).logrb(Level.FINEST, this.getClass().getName(),
"process", CPMUtils.CPM_LOG_RESOURCE_BUNDLE, "UIMA_CPM_skip_CAS__FINEST",
new Object[] { Thread.currentThread().getName(), getName() });
}
throw new SkipCasException("");
}
if (UIMAFramework.getLogger().isLoggable(Level.FINEST)) {
UIMAFramework.getLogger(this.getClass()).logrb(Level.FINEST, this.getClass().getName(),
"process", CPMUtils.CPM_LOG_RESOURCE_BUNDLE, "UIMA_CPM_force_reconnect__FINEST",
new Object[] { Thread.currentThread().getName(), getName() });
}
throw (ServiceConnectionException) aThrowable.getCause();
}
if (aThrowable.getCause() != null) {
if (UIMAFramework.getLogger().isLoggable(Level.FINEST)) {
UIMAFramework.getLogger(this.getClass()).logrb(
Level.FINEST,
this.getClass().getName(),
"process",
CPMUtils.CPM_LOG_RESOURCE_BUNDLE,
"UIMA_CPM_other_exception__FINEST",
new Object[] { Thread.currentThread().getName(), getName(),
aThrowable.getCause().getClass().getName() });
}
}
} else {
// Not ResourceException, so this most likely is an exception from the integrated
// CasProcessor. This is
// subject to error thresholds defined in the Cpe descriptor. CPE doesnt restart integrated
// CasProcessor
// since it is difficult to know what the nature of the failure is.
if (UIMAFramework.getLogger().isLoggable(Level.FINEST)) {
UIMAFramework.getLogger(this.getClass()).logrb(Level.FINEST, this.getClass().getName(),
"process", CPMUtils.CPM_LOG_RESOURCE_BUNDLE,
"UIMA_CPM_no_resource_exception__FINEST",
new Object[] { Thread.currentThread().getName(), getName(), aThrowable });
}
}
// If a failure rate exceeds errorRateThreshold,
// the CASProcessor is deemed unreliable. The failure is measured
// against a defined sample size. An example could be
// Fail if there were 3 failures per 1000 (sample size) documents
// processed.
if (errorCounter > configuredErrorRate) {
if (abortCPMOnError()) {
if (UIMAFramework.getLogger().isLoggable(Level.SEVERE)) {
UIMAFramework.getLogger(this.getClass()).logrb(
Level.SEVERE,
this.getClass().getName(),
"process",
CPMUtils.CPM_LOG_RESOURCE_BUNDLE,
"UIMA_CPM_abort_exceeded_error_threshold__SEVERE",
new Object[] { Thread.currentThread().getName(), getName(),
String.valueOf(configuredErrorRate) });
}
throw new AbortCPMException("");
}
if (isAbortable()) {
if (UIMAFramework.getLogger().isLoggable(Level.SEVERE)) {
UIMAFramework.getLogger(this.getClass()).logrb(
Level.SEVERE,
this.getClass().getName(),
"process",
CPMUtils.CPM_LOG_RESOURCE_BUNDLE,
"UIMA_CPM_disable_exceeded_error_threshold__SEVERE",
new Object[] { Thread.currentThread().getName(), getName(),
String.valueOf(configuredErrorRate) });
}
throw new AbortCasProcessorException(CpmLocalizedMessage.getLocalizedMessage(
CPMUtils.CPM_LOG_RESOURCE_BUNDLE, "UIMA_CPM_EXP_configured_to_disable__WARNING",
new Object[] { Thread.currentThread().getName(), getName() }));
}
// CasProcessor configured to ignore errors. So just reset error counter
resetErrorCounter();
if (continueOnError()) {
if (UIMAFramework.getLogger().isLoggable(Level.FINEST)) {
UIMAFramework.getLogger(this.getClass()).logrb(Level.FINEST, this.getClass().getName(),
"process", CPMUtils.CPM_LOG_RESOURCE_BUNDLE, "UIMA_CPM_skipping_cas__FINEST",
new Object[] { Thread.currentThread().getName(), getName() });
}
throw new SkipCasException("");
}
}
}