Synchronize offerBookListItems

This commit is contained in:
Manfred Karrer 2016-05-21 21:40:18 +02:00
parent bfc6c23eee
commit 6a47f9570b

View file

@ -70,12 +70,10 @@ public class OfferBook {
Optional<OfferBookListItem> candidate = offerBookListItems.stream().filter(item -> item.getOffer().getId().equals(offer.getId())).findAny(); Optional<OfferBookListItem> candidate = offerBookListItems.stream().filter(item -> item.getOffer().getId().equals(offer.getId())).findAny();
if (candidate.isPresent()) { if (candidate.isPresent()) {
try { OfferBookListItem item = candidate.get();
OfferBookListItem item = candidate.get(); synchronized (offerBookListItems) {
if (offerBookListItems.contains(item)) if (offerBookListItems.contains(item))
offerBookListItems.remove(item); offerBookListItems.remove(item);
} catch (Throwable t) {
log.error(" offerBookListItems.remove failed " + t.getMessage());
} }
} }
} }
@ -91,10 +89,8 @@ public class OfferBook {
List<Offer> offers = offerBookService.getOffers(); List<Offer> offers = offerBookService.getOffers();
CopyOnWriteArraySet<OfferBookListItem> list = new CopyOnWriteArraySet<>(); CopyOnWriteArraySet<OfferBookListItem> list = new CopyOnWriteArraySet<>();
offers.stream().forEach(e -> list.add(new OfferBookListItem(e))); offers.stream().forEach(e -> list.add(new OfferBookListItem(e)));
try { synchronized (offerBookListItems) {
offerBookListItems.clear(); offerBookListItems.clear();
} catch (Throwable t) {
log.error(" offerBookListItems.clear failed " + t.getMessage());
} }
offerBookListItems.addAll(list); offerBookListItems.addAll(list);