diff --git a/common/src/main/java/io/bitsquare/common/ByteArray.java b/common/src/main/java/io/bitsquare/common/ByteArray.java deleted file mode 100644 index 2e375490ef..0000000000 --- a/common/src/main/java/io/bitsquare/common/ByteArray.java +++ /dev/null @@ -1,33 +0,0 @@ -package io.bitsquare.common; - -import io.bitsquare.app.Version; - -import java.io.Serializable; -import java.util.Arrays; - -// Util for comparing byte arrays -public final class ByteArray implements Serializable { - // That object is sent over the wire, so we need to take care of version compatibility. - private static final long serialVersionUID = Version.P2P_NETWORK_VERSION; - - public final byte[] bytes; - - public ByteArray(byte[] bytes) { - this.bytes = bytes; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (!(o instanceof ByteArray)) return false; - - ByteArray byteArray = (ByteArray) o; - - return Arrays.equals(bytes, byteArray.bytes); - } - - @Override - public int hashCode() { - return bytes != null ? Arrays.hashCode(bytes) : 0; - } -} diff --git a/network/src/main/java/io/bitsquare/p2p/Payload.java b/network/src/main/java/io/bitsquare/p2p/Payload.java new file mode 100644 index 0000000000..d98195cfd4 --- /dev/null +++ b/network/src/main/java/io/bitsquare/p2p/Payload.java @@ -0,0 +1,6 @@ +package io.bitsquare.p2p; + +import java.io.Serializable; + +public interface Payload extends Serializable { +} diff --git a/network/src/main/java/io/bitsquare/p2p/storage/P2PDataStorage.java b/network/src/main/java/io/bitsquare/p2p/storage/P2PDataStorage.java index 5f5fc3ea60..5791a4a462 100644 --- a/network/src/main/java/io/bitsquare/p2p/storage/P2PDataStorage.java +++ b/network/src/main/java/io/bitsquare/p2p/storage/P2PDataStorage.java @@ -3,7 +3,7 @@ package io.bitsquare.p2p.storage; import com.google.common.annotations.VisibleForTesting; import com.google.common.util.concurrent.MoreExecutors; import io.bitsquare.app.Log; -import io.bitsquare.common.ByteArray; +import io.bitsquare.app.Version; import io.bitsquare.common.UserThread; import io.bitsquare.common.crypto.CryptoException; import io.bitsquare.common.crypto.Hash; @@ -28,10 +28,7 @@ import java.io.File; import java.io.Serializable; import java.security.KeyPair; import java.security.PublicKey; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArraySet; import java.util.concurrent.ScheduledThreadPoolExecutor; @@ -490,8 +487,9 @@ public class P2PDataStorage implements MessageListener, ConnectionListener { // Static class /////////////////////////////////////////////////////////////////////////////////////////// - public static class DataAndSeqNrPair implements Serializable { - // data are only used for getting cryptographic hash from both values + // Used as container for calculating cryptographic hash of data and sequenceNumber + public static final class DataAndSeqNrPair implements Serializable { + // data are only used for calculating cryptographic hash from both values so they are kept private private final Serializable data; private final int sequenceNumber; @@ -509,4 +507,33 @@ public class P2PDataStorage implements MessageListener, ConnectionListener { } } + // Used as key object in map for cryptographic hash of stored data as byte[] as primitive data type cannot be + // used as key + public static final class ByteArray implements Serializable { + // That object is saved to disc. We need to take care of changes to not break deserialization. + private static final long serialVersionUID = Version.LOCAL_DB_VERSION; + + public final byte[] bytes; + + public ByteArray(byte[] bytes) { + this.bytes = bytes; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof ByteArray)) return false; + + ByteArray byteArray = (ByteArray) o; + + return Arrays.equals(bytes, byteArray.bytes); + } + + @Override + public int hashCode() { + return bytes != null ? Arrays.hashCode(bytes) : 0; + } + } + + }