Fix missing timeout for offeravailability request, set offer state at timeout , cleanups

This commit is contained in:
Manfred Karrer 2016-01-19 15:26:49 +01:00
parent 88812fcbb4
commit ca4bf16b1d
3 changed files with 17 additions and 14 deletions

View File

@ -27,7 +27,6 @@ import io.bitsquare.p2p.messaging.DecryptedMailListener;
import io.bitsquare.trade.offer.Offer;
import io.bitsquare.trade.protocol.availability.messages.OfferAvailabilityResponse;
import io.bitsquare.trade.protocol.availability.messages.OfferMessage;
import io.bitsquare.trade.protocol.availability.tasks.GetPeerAddress;
import io.bitsquare.trade.protocol.availability.tasks.ProcessOfferAvailabilityResponse;
import io.bitsquare.trade.protocol.availability.tasks.SendOfferAvailabilityRequest;
import org.slf4j.Logger;
@ -38,7 +37,7 @@ import static io.bitsquare.util.Validator.nonEmptyStringOf;
public class OfferAvailabilityProtocol {
private static final Logger log = LoggerFactory.getLogger(OfferAvailabilityProtocol.class);
private static final long TIMEOUT_SEC = 30;
private static final long TIMEOUT_SEC = 10;
private final OfferAvailabilityModel model;
private final ResultHandler resultHandler;
@ -82,16 +81,16 @@ public class OfferAvailabilityProtocol {
// Called from UI
///////////////////////////////////////////////////////////////////////////////////////////
public void checkOfferAvailability() {
public void sendOfferAvailabilityRequest() {
// reset
model.offer.setState(Offer.State.UNDEFINED);
model.p2PService.addDecryptedMailListener(decryptedMailListener);
model.setPeerAddress(model.offer.getOffererAddress());
taskRunner = new TaskRunner<>(model,
() -> {
log.debug("sequence at onCheckOfferAvailability completed");
stopTimeout();
log.debug("sequence at sendOfferAvailabilityRequest completed");
},
(errorMessage) -> {
log.error(errorMessage);
@ -99,10 +98,7 @@ public class OfferAvailabilityProtocol {
errorMessageHandler.handleErrorMessage(errorMessage);
}
);
taskRunner.addTasks(
GetPeerAddress.class,
SendOfferAvailabilityRequest.class
);
taskRunner.addTasks(SendOfferAvailabilityRequest.class);
startTimeout();
taskRunner.run();
}
@ -144,6 +140,7 @@ public class OfferAvailabilityProtocol {
timeoutTimer = UserThread.runAfter(() -> {
Utilities.setThreadName("OfferAvailabilityProtocol:Timeout");
log.warn("Timeout reached");
model.offer.setState(Offer.State.OFFERER_OFFLINE);
errorMessageHandler.handleErrorMessage("Timeout reached: Peer has not responded.");
}, TIMEOUT_SEC);
}

View File

@ -37,9 +37,8 @@ public final class OfferAvailabilityRequest extends OfferMessage {
@Override
public String toString() {
return "RequestIsOfferAvailableMessage{" +
"\nofferId=" + offerId +
"\npubKeyRing=" + pubKeyRing != null ? pubKeyRing.toString() : "null" +
'}';
return "OfferAvailabilityRequest{" +
"pubKeyRing=" + pubKeyRing +
"} " + super.toString();
}
}

View File

@ -29,4 +29,11 @@ public final class OfferAvailabilityResponse extends OfferMessage {
super(offerId);
this.isAvailable = isAvailable;
}
@Override
public String toString() {
return "OfferAvailabilityResponse{" +
"isAvailable=" + isAvailable +
"} " + super.toString();
}
}