diff --git a/core/pom.xml b/core/pom.xml index 9b1809161..18910d874 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -162,11 +162,11 @@ derby - - io.netty - netty - 3.3.1.Final - + + io.netty + netty + 3.3.1.Final + com.madgag diff --git a/core/src/main/java/com/google/bitcoin/core/Peer.java b/core/src/main/java/com/google/bitcoin/core/Peer.java index e55bf516a..b9d3c3abd 100644 --- a/core/src/main/java/com/google/bitcoin/core/Peer.java +++ b/core/src/main/java/com/google/bitcoin/core/Peer.java @@ -16,22 +16,20 @@ package com.google.bitcoin.core; -import java.io.IOException; -import java.net.ConnectException; -import java.net.InetSocketAddress; -import java.net.SocketAddress; -import java.util.*; -import java.util.concurrent.*; - -import org.jboss.netty.channel.*; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import com.google.bitcoin.store.BlockStore; import com.google.bitcoin.store.BlockStoreException; import com.google.bitcoin.utils.EventListenerInvoker; import com.google.common.base.Objects; import com.google.common.base.Preconditions; +import org.jboss.netty.channel.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.net.ConnectException; +import java.net.InetSocketAddress; +import java.util.*; +import java.util.concurrent.*; /** * A Peer handles the high level communication with a BitCoin node. @@ -167,7 +165,7 @@ public class Peer { throws Exception { Message m = (Message)e.getMessage(); - // Allow event listeners to filter the message stream. Listeners are allowed to drop messages by 178 synchronized (listener) { + // Allow event listeners to filter the message stream. Listeners are allowed to drop messages by // returning null. for (PeerEventListener listener : eventListeners) { synchronized (listener) { diff --git a/core/src/main/java/com/google/bitcoin/core/PeerGroup.java b/core/src/main/java/com/google/bitcoin/core/PeerGroup.java index 7668e7564..305094e78 100644 --- a/core/src/main/java/com/google/bitcoin/core/PeerGroup.java +++ b/core/src/main/java/com/google/bitcoin/core/PeerGroup.java @@ -22,7 +22,6 @@ import com.google.bitcoin.discovery.PeerDiscovery; import com.google.bitcoin.discovery.PeerDiscoveryException; import com.google.bitcoin.utils.EventListenerInvoker; import com.google.common.base.Preconditions; - import org.jboss.netty.bootstrap.ClientBootstrap; import org.jboss.netty.channel.*; import org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory; @@ -332,8 +331,9 @@ public class PeerGroup { running = true; this.peerGroupThread.start(); } - - void mockStart(PeerGroupThread peerGroupThread) { + + // Visible for testing. + synchronized void mockStart(PeerGroupThread peerGroupThread) { this.peerGroupThread = peerGroupThread; running = true; } @@ -362,7 +362,7 @@ public class PeerGroup { * * @return a Future that can be used to wait for the async broadcast to complete. */ - public Future broadcastTransaction(final Transaction tx) { + public synchronized Future broadcastTransaction(final Transaction tx) { FutureTask future = new FutureTask(new Runnable() { public void run() { // This is run with the peer group already locked. diff --git a/examples/src/main/java/com/google/bitcoin/examples/PrintPeers.java b/examples/src/main/java/com/google/bitcoin/examples/PrintPeers.java index 6bb5b265e..4db4ca504 100644 --- a/examples/src/main/java/com/google/bitcoin/examples/PrintPeers.java +++ b/examples/src/main/java/com/google/bitcoin/examples/PrintPeers.java @@ -16,18 +16,6 @@ package com.google.bitcoin.examples; -import java.net.InetAddress; -import java.net.InetSocketAddress; -import java.util.ArrayList; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; - -import org.jboss.netty.bootstrap.ClientBootstrap; -import org.jboss.netty.channel.*; -import org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory; - import com.google.bitcoin.core.Message; import com.google.bitcoin.core.NetworkParameters; import com.google.bitcoin.core.TCPNetworkConnection; @@ -35,6 +23,17 @@ import com.google.bitcoin.core.VersionMessage; import com.google.bitcoin.discovery.DnsDiscovery; import com.google.bitcoin.discovery.IrcDiscovery; import com.google.bitcoin.discovery.PeerDiscoveryException; +import org.jboss.netty.bootstrap.ClientBootstrap; +import org.jboss.netty.channel.*; +import org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory; + +import java.net.InetAddress; +import java.net.InetSocketAddress; +import java.util.ArrayList; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; /** * Prints a list of IP addresses connected to the rendezvous point on the LFnet IRC channel. @@ -110,7 +109,7 @@ public class PrintPeers { TCPNetworkConnection conn = new TCPNetworkConnection(params, new VersionMessage(params, 0)); - pipeline.addLast("codec", conn); + pipeline.addLast("codec", conn.getHandler()); pipeline.addLast("peer", new SimpleChannelHandler() { public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception { Message m = (Message)e.getMessage();