diff --git a/pom.xml b/pom.xml index 25f6fb1..ff27b11 100644 --- a/pom.xml +++ b/pom.xml @@ -44,6 +44,19 @@ 1.8 + + maven-assembly-plugin + + + + fully.qualified.MainClass + + + + jar-with-dependencies + + + @@ -130,19 +143,19 @@ org.apache.logging.log4j log4j-api - 2.5 + 2.6.2 org.apache.logging.log4j log4j-core - 2.5 + 2.6.2 io.netty netty-all - 4.0.39.Final + 4.1.10.Final @@ -154,7 +167,7 @@ com.fasterxml.jackson.core jackson-databind - 2.6.4 + 2.8.8 @@ -173,7 +186,7 @@ io.netty netty-tcnative - 1.1.33.Fork18 + 2.0.6.Final ${os.detected.classifier} test diff --git a/src/main/java/com/github/brainlag/nsq/frames/MessageFrame.java b/src/main/java/com/github/brainlag/nsq/frames/MessageFrame.java index 6f42b7f..1ccea46 100644 --- a/src/main/java/com/github/brainlag/nsq/frames/MessageFrame.java +++ b/src/main/java/com/github/brainlag/nsq/frames/MessageFrame.java @@ -18,16 +18,10 @@ public void setData(byte[] bytes) { timestamp = buf.readLong(); attempts = buf.readShort(); buf.readBytes(messageId); - ByteBuf messageBodyBuf = buf.readBytes(buf.readableBytes()); - if (messageBodyBuf.hasArray()) { - messageBody = messageBodyBuf.array(); - } else { - byte[] array = new byte[messageBodyBuf.readableBytes()]; - messageBodyBuf.readBytes(array); - messageBody = array; - } - buf.release(); - messageBodyBuf.release(); + + byte[] array = new byte[buf.readableBytes()]; + buf.readBytes(array); + messageBody = array; } public long getTimestamp() { diff --git a/src/main/java/com/github/brainlag/nsq/netty/NSQDecoder.java b/src/main/java/com/github/brainlag/nsq/netty/NSQDecoder.java index 748027f..5220a9a 100644 --- a/src/main/java/com/github/brainlag/nsq/netty/NSQDecoder.java +++ b/src/main/java/com/github/brainlag/nsq/netty/NSQDecoder.java @@ -26,13 +26,10 @@ protected void decode(ChannelHandlerContext ctx, ByteBuf in, List out) t } frame.setSize(size); ByteBuf bytes = in.readBytes(frame.getSize() - 4); //subtract 4 because the frame id is included - if (bytes.hasArray()) { - frame.setData(bytes.array()); - } else { - byte[] array = new byte[bytes.readableBytes()]; - bytes.readBytes(array); - frame.setData(array); - } + byte[] array = new byte[bytes.readableBytes()]; + bytes.readBytes(array); + frame.setData(array); + out.add(frame); bytes.release(); }