ignore failure after task runner canceled

This commit is contained in:
woodser 2024-05-16 12:42:05 -04:00
parent 58cead6035
commit 76859f822e
3 changed files with 9 additions and 1 deletions

View File

@ -74,6 +74,7 @@ public abstract class Task<T extends Model> {
// t.printStackTrace(pw);
// errorMessage = sw.toString();
if (taskHandler.isCanceled()) return;
errorMessage = t.getMessage() + " (task " + getClass().getSimpleName() + ")";
log.error(errorMessage, t);
taskHandler.handleErrorMessage(errorMessage);

View File

@ -80,11 +80,16 @@ public class TaskRunner<T extends Model> {
isCanceled = true;
}
public boolean isCanceled() {
return isCanceled;
}
void handleComplete() {
next();
}
void handleErrorMessage(String errorMessage) {
if (isCanceled) return;
log.error("Task failed: " + currentTask.getSimpleName() + " / errorMessage: " + errorMessage);
failed = true;
errorMessageHandler.handleErrorMessage(errorMessage);

View File

@ -41,6 +41,7 @@ public class PlaceOfferProtocol {
private Timer timeoutTimer;
private final TransactionResultHandler resultHandler;
private final ErrorMessageHandler errorMessageHandler;
private TaskRunner<PlaceOfferModel> taskRunner;
///////////////////////////////////////////////////////////////////////////////////////////
@ -65,7 +66,7 @@ public class PlaceOfferProtocol {
startTimeoutTimer();
TaskRunner<PlaceOfferModel> taskRunner = new TaskRunner<>(model,
taskRunner = new TaskRunner<>(model,
() -> {
// reset timer if response not yet received
@ -145,6 +146,7 @@ public class PlaceOfferProtocol {
private void handleError(String errorMessage) {
if (timeoutTimer != null) {
taskRunner.cancel();
log.error(errorMessage);
stopTimeoutTimer();
model.getOpenOffer().getOffer().setErrorMessage(errorMessage);