fix #2619: is there a problem in NettyBackedChannelBuffer.setBytes(...)? (#3448)
authorIan Luo <ian.luo@gmail.com>
Mon, 11 Feb 2019 09:51:09 +0000 (17:51 +0800)
committerGitHub <noreply@github.com>
Mon, 11 Feb 2019 09:51:09 +0000 (17:51 +0800)
dubbo-remoting/dubbo-remoting-netty/src/main/java/org/apache/dubbo/remoting/transport/netty/NettyBackedChannelBuffer.java
dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyBackedChannelBuffer.java

index 3bd911f..51c697c 100644 (file)
@@ -119,7 +119,7 @@ public class NettyBackedChannelBuffer implements ChannelBuffer {
         // careful
         byte[] data = new byte[length];
         buffer.getBytes(srcIndex, data, 0, length);
-        setBytes(0, data, index, length);
+        setBytes(index, data, 0, length);
     }
 
 
index c6e0c6d..2c00e94 100644 (file)
@@ -37,13 +37,13 @@ public class NettyBackedChannelBuffer implements ChannelBuffer {
         this.buffer = buffer;
     }
 
-    
+
     @Override
     public int capacity() {
         return buffer.capacity();
     }
 
-    
+
     @Override
     public ChannelBuffer copy(int index, int length) {
         return new NettyBackedChannelBuffer(buffer.copy(index, length));
@@ -55,25 +55,25 @@ public class NettyBackedChannelBuffer implements ChannelBuffer {
         return null;
     }
 
-    
+
     @Override
     public byte getByte(int index) {
         return buffer.getByte(index);
     }
 
-    
+
     @Override
     public void getBytes(int index, byte[] dst, int dstIndex, int length) {
         buffer.getBytes(index, dst, dstIndex, length);
     }
 
-    
+
     @Override
     public void getBytes(int index, ByteBuffer dst) {
         buffer.getBytes(index, dst);
     }
 
-    
+
     @Override
     public void getBytes(int index, ChannelBuffer dst, int dstIndex, int length) {
         // careful
@@ -82,70 +82,70 @@ public class NettyBackedChannelBuffer implements ChannelBuffer {
         dst.setBytes(dstIndex, data, 0, length);
     }
 
-    
+
     @Override
     public void getBytes(int index, OutputStream dst, int length) throws IOException {
         buffer.getBytes(index, dst, length);
     }
 
-    
+
     @Override
     public boolean isDirect() {
         return buffer.isDirect();
     }
 
-    
+
     @Override
     public void setByte(int index, int value) {
         buffer.setByte(index, value);
     }
 
-    
+
     @Override
     public void setBytes(int index, byte[] src, int srcIndex, int length) {
         buffer.setBytes(index, src, srcIndex, length);
     }
 
-    
+
     @Override
     public void setBytes(int index, ByteBuffer src) {
         buffer.setBytes(index, src);
     }
 
-    
+
     @Override
     public void setBytes(int index, ChannelBuffer src, int srcIndex, int length) {
         // careful
         byte[] data = new byte[length];
         buffer.getBytes(srcIndex, data, 0, length);
-        setBytes(0, data, index, length);
+        setBytes(index, data, 0, length);
     }
 
-    
+
     @Override
     public int setBytes(int index, InputStream src, int length) throws IOException {
         return buffer.setBytes(index, src, length);
     }
 
-    
+
     @Override
     public ByteBuffer toByteBuffer(int index, int length) {
         return buffer.nioBuffer(index, length);
     }
 
-    
+
     @Override
     public byte[] array() {
         return buffer.array();
     }
 
-    
+
     @Override
     public boolean hasArray() {
         return buffer.hasArray();
     }
 
-    
+
     @Override
     public int arrayOffset() {
         return buffer.arrayOffset();
@@ -155,44 +155,44 @@ public class NettyBackedChannelBuffer implements ChannelBuffer {
     // AbstractChannelBuffer
 
 
-    
+
     @Override
     public void clear() {
         buffer.clear();
     }
 
-    
+
     @Override
     public ChannelBuffer copy() {
         return new NettyBackedChannelBuffer(buffer.copy());
     }
 
-    
+
     @Override
     public void discardReadBytes() {
         buffer.discardReadBytes();
     }
 
-    
+
     @Override
     public void ensureWritableBytes(int writableBytes) {
         buffer.ensureWritable(writableBytes);
     }
 
-    
+
     @Override
     public void getBytes(int index, byte[] dst) {
         buffer.getBytes(index, dst);
     }
 
-    
+
     @Override
     public void getBytes(int index, ChannelBuffer dst) {
         // careful
         getBytes(index, dst, dst.writableBytes());
     }
 
-    
+
     @Override
     public void getBytes(int index, ChannelBuffer dst, int length) {
         // careful
@@ -203,62 +203,62 @@ public class NettyBackedChannelBuffer implements ChannelBuffer {
         dst.writerIndex(dst.writerIndex() + length);
     }
 
-    
+
     @Override
     public void markReaderIndex() {
         buffer.markReaderIndex();
     }
 
-    
+
     @Override
     public void markWriterIndex() {
         buffer.markWriterIndex();
     }
 
-    
+
     @Override
     public boolean readable() {
         return buffer.isReadable();
     }
 
-    
+
     @Override
     public int readableBytes() {
         return buffer.readableBytes();
     }
 
-    
+
     @Override
     public byte readByte() {
         return buffer.readByte();
     }
 
-    
+
     @Override
     public void readBytes(byte[] dst) {
         buffer.readBytes(dst);
     }
 
-    
+
     @Override
     public void readBytes(byte[] dst, int dstIndex, int length) {
         buffer.readBytes(dst, dstIndex, length);
     }
 
-    
+
     @Override
     public void readBytes(ByteBuffer dst) {
         buffer.readBytes(dst);
     }
 
-    
+
     @Override
     public void readBytes(ChannelBuffer dst) {
         // careful
         readBytes(dst, dst.writableBytes());
     }
 
-    
+
     @Override
     public void readBytes(ChannelBuffer dst, int length) {
         // careful
@@ -269,7 +269,7 @@ public class NettyBackedChannelBuffer implements ChannelBuffer {
         dst.writerIndex(dst.writerIndex() + length);
     }
 
-    
+
     @Override
     public void readBytes(ChannelBuffer dst, int dstIndex, int length) {
         // careful
@@ -281,56 +281,56 @@ public class NettyBackedChannelBuffer implements ChannelBuffer {
         dst.setBytes(dstIndex, data, 0, length);
     }
 
-    
+
     @Override
     public ChannelBuffer readBytes(int length) {
         return new NettyBackedChannelBuffer(buffer.readBytes(length));
     }
 
-    
+
     @Override
     public void resetReaderIndex() {
         buffer.resetReaderIndex();
     }
 
-    
+
     @Override
     public void resetWriterIndex() {
         buffer.resetWriterIndex();
     }
 
-    
+
     @Override
     public int readerIndex() {
         return buffer.readerIndex();
     }
 
-    
+
     @Override
     public void readerIndex(int readerIndex) {
         buffer.readerIndex(readerIndex);
     }
 
-    
+
     @Override
     public void readBytes(OutputStream dst, int length) throws IOException {
         buffer.readBytes(dst, length);
     }
 
-    
+
     @Override
     public void setBytes(int index, byte[] src) {
         buffer.setBytes(index, src);
     }
 
-    
+
     @Override
     public void setBytes(int index, ChannelBuffer src) {
         // careful
         setBytes(index, src, src.readableBytes());
     }
 
-    
+
     @Override
     public void setBytes(int index, ChannelBuffer src, int length) {
         // careful
@@ -341,68 +341,68 @@ public class NettyBackedChannelBuffer implements ChannelBuffer {
         src.readerIndex(src.readerIndex() + length);
     }
 
-    
+
     @Override
     public void setIndex(int readerIndex, int writerIndex) {
         buffer.setIndex(readerIndex, writerIndex);
     }
 
-    
+
     @Override
     public void skipBytes(int length) {
         buffer.skipBytes(length);
     }
 
-    
+
     @Override
     public ByteBuffer toByteBuffer() {
         return buffer.nioBuffer();
     }
 
-    
+
     @Override
     public boolean writable() {
         return buffer.isWritable();
     }
 
-    
+
     @Override
     public int writableBytes() {
         return buffer.writableBytes();
     }
 
-    
+
     @Override
     public void writeByte(int value) {
         buffer.writeByte(value);
     }
 
-    
+
     @Override
     public void writeBytes(byte[] src) {
         buffer.writeBytes(src);
     }
 
-    
+
     @Override
     public void writeBytes(byte[] src, int index, int length) {
         buffer.writeBytes(src, index, length);
     }
 
-    
+
     @Override
     public void writeBytes(ByteBuffer src) {
         buffer.writeBytes(src);
     }
 
-    
+
     @Override
     public void writeBytes(ChannelBuffer src) {
         // careful
         writeBytes(src, src.readableBytes());
     }
 
-    
+
     @Override
     public void writeBytes(ChannelBuffer src, int length) {
         // careful
@@ -413,7 +413,7 @@ public class NettyBackedChannelBuffer implements ChannelBuffer {
         src.readerIndex(src.readerIndex() + length);
     }
 
-    
+
     @Override
     public void writeBytes(ChannelBuffer src, int srcIndex, int length) {
         // careful
@@ -422,25 +422,25 @@ public class NettyBackedChannelBuffer implements ChannelBuffer {
         writeBytes(data, 0, length);
     }
 
-    
+
     @Override
     public int writeBytes(InputStream src, int length) throws IOException {
         return buffer.writeBytes(src, length);
     }
 
-    
+
     @Override
     public int writerIndex() {
         return buffer.writerIndex();
     }
 
-    
+
     @Override
     public void writerIndex(int writerIndex) {
         buffer.writerIndex(writerIndex);
     }
 
-    
+
     @Override
     public int compareTo(ChannelBuffer o) {
         return ChannelBuffers.compare(this, o);