diff --git a/core/.gitignore b/core/.gitignore
deleted file mode 100644
index ba39d92495..0000000000
--- a/core/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-test-output/
-/target
diff --git a/core/src/main/java/net/kuujo/copycat/resource/internal/PassiveState.java b/core/src/main/java/net/kuujo/copycat/resource/internal/PassiveState.java
index 2203812ba5..3697862f05 100644
--- a/core/src/main/java/net/kuujo/copycat/resource/internal/PassiveState.java
+++ b/core/src/main/java/net/kuujo/copycat/resource/internal/PassiveState.java
@@ -151,7 +151,7 @@ private void recursiveSync(ReplicaInfo member, boolean requireEntries, Completab
}
} else {
// If the request failed then record the member as INACTIVE.
- LOGGER.debug("{} - Sync to {} failed", context.getLocalMember(), member);
+ LOGGER.warn("{} - Sync to {} failed: {}", context.getLocalMember(), member, error.getMessage());
future.completeExceptionally(error);
}
}
diff --git a/netty/src/main/java/net/kuujo/copycat/netty/NettyTcpProtocolClient.java b/netty/src/main/java/net/kuujo/copycat/netty/NettyTcpProtocolClient.java
index 592f89171d..3568985779 100644
--- a/netty/src/main/java/net/kuujo/copycat/netty/NettyTcpProtocolClient.java
+++ b/netty/src/main/java/net/kuujo/copycat/netty/NettyTcpProtocolClient.java
@@ -16,33 +16,24 @@
package net.kuujo.copycat.netty;
import io.netty.bootstrap.Bootstrap;
-import io.netty.buffer.ByteBuf;
import io.netty.channel.*;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.SocketChannel;
import io.netty.channel.socket.nio.NioSocketChannel;
+import io.netty.handler.codec.LengthFieldBasedFrameDecoder;
+import io.netty.handler.codec.LengthFieldPrepender;
+import io.netty.handler.codec.bytes.ByteArrayDecoder;
+import io.netty.handler.codec.bytes.ByteArrayEncoder;
import io.netty.handler.ssl.SslContext;
import io.netty.handler.ssl.util.InsecureTrustManagerFactory;
import net.kuujo.copycat.protocol.ProtocolClient;
import net.kuujo.copycat.protocol.ProtocolException;
-import net.kuujo.copycat.util.concurrent.NamedThreadFactory;
import javax.net.ssl.SSLException;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.cache.Cache;
-import com.google.common.cache.CacheBuilder;
-import com.google.common.cache.RemovalListener;
-import com.google.common.cache.RemovalNotification;
-
import java.nio.ByteBuffer;
+import java.util.HashMap;
+import java.util.Map;
import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
/**
* Netty TCP protocol client.
@@ -50,57 +41,58 @@
* @author Jordan Halterman
*/
public class NettyTcpProtocolClient implements ProtocolClient {
- private static final Logger LOGGER = LoggerFactory.getLogger(NettyTcpProtocolClient.class);
private final String host;
private final int port;
private final NettyTcpProtocol protocol;
- private final EventLoopGroup group;
+ private EventLoopGroup group;
private Channel channel;
- ChannelHandlerContext context;
- private final Cache