From afb8c18d31825453e0070c0dc944867c42e627e7 Mon Sep 17 00:00:00 2001 From: Manfred Karrer Date: Thu, 5 May 2016 13:52:33 +0200 Subject: [PATCH] Fix ArrayIndexOutOfBoundsException at remove --- .../gui/main/offer/offerbook/OfferBook.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/gui/src/main/java/io/bitsquare/gui/main/offer/offerbook/OfferBook.java b/gui/src/main/java/io/bitsquare/gui/main/offer/offerbook/OfferBook.java index 08a8cbb3e4..3b07fe7e7e 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/offer/offerbook/OfferBook.java +++ b/gui/src/main/java/io/bitsquare/gui/main/offer/offerbook/OfferBook.java @@ -27,6 +27,7 @@ import org.slf4j.LoggerFactory; import javax.inject.Inject; import java.util.List; +import java.util.Optional; import java.util.concurrent.CopyOnWriteArraySet; /** @@ -67,7 +68,16 @@ public class OfferBook { // clean up possible references in openOfferManager tradeManager.onOfferRemovedFromRemoteOfferBook(offer); - offerBookListItems.removeIf(item -> item.getOffer().getId().equals(offer.getId())); + Optional candidate = offerBookListItems.stream().filter(item -> item.getOffer().getId().equals(offer.getId())).findAny(); + if (candidate.isPresent()) { + try { + OfferBookListItem item = candidate.get(); + if (offerBookListItems.contains(item)) + offerBookListItems.remove(item); + } catch (Throwable t) { + log.error(" offerBookListItems.remove failed " + t.getMessage()); + } + } } }); }