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

View file

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

View file

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