Use sets instead of lists, fix threading issues

This commit is contained in:
Manfred Karrer 2015-11-05 23:23:15 +01:00
parent a1993a5d9a
commit 81bf4b65d4
22 changed files with 107 additions and 852 deletions

View file

@ -29,8 +29,7 @@ import org.slf4j.LoggerFactory;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.CopyOnWriteArraySet;
public class Navigation implements Serializable {
// That object is saved to disc. We need to take care of changes to not break deserialization.
@ -46,7 +45,7 @@ public class Navigation implements Serializable {
// New listeners can be added during iteration so we use CopyOnWriteArrayList to
// prevent invalid array modification
transient private final List<Listener> listeners = new CopyOnWriteArrayList<>();
transient private final CopyOnWriteArraySet<Listener> listeners = new CopyOnWriteArraySet<>();
transient private final Storage<Navigation> remoteStorage;
transient private ViewPath currentPath;
// Used for returning to the last important view. After setup is done we want to

View file

@ -30,7 +30,7 @@ import org.slf4j.LoggerFactory;
import javax.inject.Inject;
import java.io.Serializable;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.CopyOnWriteArraySet;
/**
* Holds and manages the unsorted and unfiltered offerbook list of both buy and sell offers.
@ -91,7 +91,7 @@ public class OfferBook {
public void fillOfferBookListItems() {
log.debug("fillOfferBookListItems");
List<Offer> offers = offerBookService.getOffers();
CopyOnWriteArrayList<OfferBookListItem> list = new CopyOnWriteArrayList<>();
CopyOnWriteArraySet<OfferBookListItem> list = new CopyOnWriteArraySet<>();
offers.stream().forEach(e -> list.add(new OfferBookListItem(e)));
offerBookListItems.clear();
offerBookListItems.addAll(list);

View file

@ -30,8 +30,8 @@ import javafx.scene.layout.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.Set;
import java.util.concurrent.CopyOnWriteArraySet;
public class FormBuilder {
private static final Logger log = LoggerFactory.getLogger(FormBuilder.class);
@ -633,7 +633,7 @@ public class FormBuilder {
}
public static void removeRowsFromGridPane(GridPane gridPane, int fromGridRow, int toGridRow) {
List<Node> nodes = new CopyOnWriteArrayList<>(gridPane.getChildren());
Set<Node> nodes = new CopyOnWriteArraySet<>(gridPane.getChildren());
nodes.stream()
.filter(e -> GridPane.getRowIndex(e) >= fromGridRow && GridPane.getRowIndex(e) <= toGridRow)
.forEach(e -> gridPane.getChildren().remove(e));

View file

@ -24,7 +24,6 @@
<logger name="io.bitsquare.storage.FileManager" level="WARN"/>
<logger name="org.bitcoinj" level="WARN"/>
<logger name="net.tomp2p" level="WARN"/>
<logger name="org.bitcoinj.core.BitcoinSerializer" level="WARN"/>
<logger name="org.bitcoinj.core.Peer" level="WARN"/>
@ -36,10 +35,6 @@
<logger name="org.bitcoinj.core.BitcoinSerializer" level="ERROR"/>
<logger name="org.bitcoinj.core.Peer" level="ERROR"/>-->
<!-- <logger name="net.tomp2p.message.Encoder" level="WARN"/>
<logger name="net.tomp2p.message.Decoder" level="WARN"/>
<logger name="net.tomp2p.message.MessageHeaderCodec" level="WARN"/>
<logger name="io.netty.util" level="WARN"/>
<logger name="io.netty.channel" level="WARN"/>