Skip to content

Commit

Permalink
ignore failure after task runner canceled
Browse files Browse the repository at this point in the history
  • Loading branch information
woodser committed May 17, 2024
1 parent 58cead6 commit 76859f8
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 1 deletion.
1 change: 1 addition & 0 deletions common/src/main/java/haveno/common/taskrunner/Task.java
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ protected void failed(Throwable t) {
// t.printStackTrace(pw);
// errorMessage = sw.toString();

if (taskHandler.isCanceled()) return;
errorMessage = t.getMessage() + " (task " + getClass().getSimpleName() + ")";
log.error(errorMessage, t);
taskHandler.handleErrorMessage(errorMessage);
Expand Down
5 changes: 5 additions & 0 deletions common/src/main/java/haveno/common/taskrunner/TaskRunner.java
Original file line number Diff line number Diff line change
Expand Up @@ -80,11 +80,16 @@ public void cancel() {
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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ public class PlaceOfferProtocol {
private Timer timeoutTimer;
private final TransactionResultHandler resultHandler;
private final ErrorMessageHandler errorMessageHandler;
private TaskRunner<PlaceOfferModel> taskRunner;


///////////////////////////////////////////////////////////////////////////////////////////
Expand All @@ -65,7 +66,7 @@ public void placeOffer() {

startTimeoutTimer();

TaskRunner<PlaceOfferModel> taskRunner = new TaskRunner<>(model,
taskRunner = new TaskRunner<>(model,
() -> {

// reset timer if response not yet received
Expand Down Expand Up @@ -145,6 +146,7 @@ private void stopTimeoutTimer() {

private void handleError(String errorMessage) {
if (timeoutTimer != null) {
taskRunner.cancel();
log.error(errorMessage);
stopTimeoutTimer();
model.getOpenOffer().getOffer().setErrorMessage(errorMessage);
Expand Down

0 comments on commit 76859f8

Please sign in to comment.