diff --git a/core/src/main/java/org/bitcoinj/core/ChildMessage.java b/core/src/main/java/org/bitcoinj/core/ChildMessage.java index 4689c421c..081c906b2 100644 --- a/core/src/main/java/org/bitcoinj/core/ChildMessage.java +++ b/core/src/main/java/org/bitcoinj/core/ChildMessage.java @@ -33,6 +33,10 @@ public abstract class ChildMessage extends Message { super(params); } + public ChildMessage(NetworkParameters params, MessageSerializer serializer) { + super(params, serializer); + } + public ChildMessage(NetworkParameters params, ByteBuffer payload) throws ProtocolException { super(params, payload); } diff --git a/core/src/main/java/org/bitcoinj/core/Message.java b/core/src/main/java/org/bitcoinj/core/Message.java index 5d448d512..2f500861a 100644 --- a/core/src/main/java/org/bitcoinj/core/Message.java +++ b/core/src/main/java/org/bitcoinj/core/Message.java @@ -50,7 +50,7 @@ public abstract class Message { // The raw message payload bytes themselves. protected ByteBuffer payload; - protected MessageSerializer serializer; + protected final MessageSerializer serializer; @Nullable protected final NetworkParameters params; @@ -65,6 +65,11 @@ public abstract class Message { this.serializer = params.getDefaultSerializer(); } + protected Message(NetworkParameters params, MessageSerializer serializer) { + this.params = params; + this.serializer = serializer; + } + /** * * @param params NetworkParameters object. @@ -99,17 +104,6 @@ public abstract class Message { protected void unCache() { } - /** - * Overrides the message serializer. - * @param serializer the new serializer - */ - public void setSerializer(MessageSerializer serializer) { - if (!this.serializer.equals(serializer)) { - this.serializer = serializer; - unCache(); - } - } - /** *
Serialize this message to a byte array that conforms to the bitcoin wire protocol.
* diff --git a/core/src/main/java/org/bitcoinj/core/PeerAddress.java b/core/src/main/java/org/bitcoinj/core/PeerAddress.java index 1a63f6654..07f74fd56 100644 --- a/core/src/main/java/org/bitcoinj/core/PeerAddress.java +++ b/core/src/main/java/org/bitcoinj/core/PeerAddress.java @@ -96,10 +96,9 @@ public class PeerAddress extends ChildMessage { * Construct a peer address from a memorized or hardcoded address. */ public PeerAddress(NetworkParameters params, InetAddress addr, int port, BigInteger services, MessageSerializer serializer) { - super(params); + super(params, serializer); this.addr = Objects.requireNonNull(addr); this.port = port; - setSerializer(serializer); this.services = services; this.time = Optional.of(TimeUtils.currentTime().truncatedTo(ChronoUnit.SECONDS)); }