From 5558f020033a911b14a2fb5c2cce08ab1d3160d3 Mon Sep 17 00:00:00 2001 From: Trustin Lee Date: Wed, 3 Mar 2010 05:35:01 +0000 Subject: [PATCH] Resolved issue: NETTY-298 Make ChannelBuffer setter/writer methods to accept int for narrower types --- .../netty/buffer/AbstractChannelBuffer.java | 12 +++++----- .../buffer/BigEndianHeapChannelBuffer.java | 2 +- .../buffer/ByteBufferBackedChannelBuffer.java | 8 +++---- .../org/jboss/netty/buffer/ChannelBuffer.java | 23 +++++++++++-------- .../netty/buffer/CompositeChannelBuffer.java | 4 ++-- .../netty/buffer/DuplicatedChannelBuffer.java | 4 ++-- .../netty/buffer/DynamicChannelBuffer.java | 8 +++---- .../jboss/netty/buffer/HeapChannelBuffer.java | 4 ++-- .../buffer/LittleEndianHeapChannelBuffer.java | 2 +- .../netty/buffer/ReadOnlyChannelBuffer.java | 4 ++-- .../netty/buffer/SlicedChannelBuffer.java | 4 ++-- .../netty/buffer/TruncatedChannelBuffer.java | 4 ++-- .../codec/replay/ReplayingDecoderBuffer.java | 12 +++++----- 13 files changed, 47 insertions(+), 44 deletions(-) diff --git a/src/main/java/org/jboss/netty/buffer/AbstractChannelBuffer.java b/src/main/java/org/jboss/netty/buffer/AbstractChannelBuffer.java index 7fbeeb83f3..f3cb8a95e3 100644 --- a/src/main/java/org/jboss/netty/buffer/AbstractChannelBuffer.java +++ b/src/main/java/org/jboss/netty/buffer/AbstractChannelBuffer.java @@ -171,8 +171,8 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer { dst.writerIndex(dst.writerIndex() + length); } - public void setChar(int index, char value) { - setShort(index, (short) value); + public void setChar(int index, int value) { + setShort(index, value); } public void setFloat(int index, float value) { @@ -398,11 +398,11 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer { return newReaderIndex - oldReaderIndex; } - public void writeByte(byte value) { + public void writeByte(int value) { setByte(writerIndex ++, value); } - public void writeShort(short value) { + public void writeShort(int value) { setShort(writerIndex, value); writerIndex += 2; } @@ -422,8 +422,8 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer { writerIndex += 8; } - public void writeChar(char value) { - writeShort((short) value); + public void writeChar(int value) { + writeShort(value); } public void writeFloat(float value) { diff --git a/src/main/java/org/jboss/netty/buffer/BigEndianHeapChannelBuffer.java b/src/main/java/org/jboss/netty/buffer/BigEndianHeapChannelBuffer.java index cbb6fac855..a545c013fd 100644 --- a/src/main/java/org/jboss/netty/buffer/BigEndianHeapChannelBuffer.java +++ b/src/main/java/org/jboss/netty/buffer/BigEndianHeapChannelBuffer.java @@ -88,7 +88,7 @@ public class BigEndianHeapChannelBuffer extends HeapChannelBuffer { ((long) array[index+7] & 0xff) << 0; } - public void setShort(int index, short value) { + public void setShort(int index, int value) { array[index ] = (byte) (value >>> 8); array[index+1] = (byte) (value >>> 0); } diff --git a/src/main/java/org/jboss/netty/buffer/ByteBufferBackedChannelBuffer.java b/src/main/java/org/jboss/netty/buffer/ByteBufferBackedChannelBuffer.java index 4bae872fce..b2c8baeee1 100644 --- a/src/main/java/org/jboss/netty/buffer/ByteBufferBackedChannelBuffer.java +++ b/src/main/java/org/jboss/netty/buffer/ByteBufferBackedChannelBuffer.java @@ -151,12 +151,12 @@ public class ByteBufferBackedChannelBuffer extends AbstractChannelBuffer { dst.put(data); } - public void setByte(int index, byte value) { - buffer.put(index, value); + public void setByte(int index, int value) { + buffer.put(index, (byte) value); } - public void setShort(int index, short value) { - buffer.putShort(index, value); + public void setShort(int index, int value) { + buffer.putShort(index, (short) value); } public void setMedium(int index, int value) { diff --git a/src/main/java/org/jboss/netty/buffer/ChannelBuffer.java b/src/main/java/org/jboss/netty/buffer/ChannelBuffer.java index 7e1a7fddf5..e6fa858a84 100644 --- a/src/main/java/org/jboss/netty/buffer/ChannelBuffer.java +++ b/src/main/java/org/jboss/netty/buffer/ChannelBuffer.java @@ -718,7 +718,7 @@ public interface ChannelBuffer extends Comparable { /** * Sets the specified byte at the specified absolute {@code index} in this - * buffer. + * buffer. The 24 high-order bits of the specified value are ignored. * This method does not modify {@code readerIndex} or {@code writerIndex} of * this buffer. * @@ -726,11 +726,12 @@ public interface ChannelBuffer extends Comparable { * if the specified {@code index} is less than {@code 0} or * {@code index + 1} is greater than {@code this.capacity} */ - void setByte(int index, byte value); + void setByte(int index, int value); /** * Sets the specified 16-bit short integer at the specified absolute - * {@code index} in this buffer. + * {@code index} in this buffer. The 16 high-order bits of the specified + * value are ignored. * This method does not modify {@code readerIndex} or {@code writerIndex} of * this buffer. * @@ -738,7 +739,7 @@ public interface ChannelBuffer extends Comparable { * if the specified {@code index} is less than {@code 0} or * {@code index + 2} is greater than {@code this.capacity} */ - void setShort(int index, short value); + void setShort(int index, int value); /** * Sets the specified 24-bit medium integer at the specified absolute @@ -780,6 +781,7 @@ public interface ChannelBuffer extends Comparable { /** * Sets the specified 2-byte UTF-16 character at the specified absolute * {@code index} in this buffer. + * The 16 high-order bits of the specified value are ignored. * This method does not modify {@code readerIndex} or {@code writerIndex} of * this buffer. * @@ -787,7 +789,7 @@ public interface ChannelBuffer extends Comparable { * if the specified {@code index} is less than {@code 0} or * {@code index + 2} is greater than {@code this.capacity} */ - void setChar(int index, char value); + void setChar(int index, int value); /** * Sets the specified 32-bit floating-point number at the specified @@ -1244,21 +1246,22 @@ public interface ChannelBuffer extends Comparable { /** * Sets the specified byte at the current {@code writerIndex} * and increases the {@code writerIndex} by {@code 1} in this buffer. + * The 24 high-order bits of the specified value are ignored. * * @throws IndexOutOfBoundsException * if {@code this.writableBytes} is less than {@code 1} */ - void writeByte(byte value); + void writeByte(int value); /** * Sets the specified 16-bit short integer at the current * {@code writerIndex} and increases the {@code writerIndex} by {@code 2} - * in this buffer. + * in this buffer. The 16 high-order bits of the specified value are ignored. * * @throws IndexOutOfBoundsException * if {@code this.writableBytes} is less than {@code 2} */ - void writeShort(short value); + void writeShort(int value); /** * Sets the specified 24-bit medium integer at the current @@ -1292,12 +1295,12 @@ public interface ChannelBuffer extends Comparable { /** * Sets the specified 2-byte UTF-16 character at the current * {@code writerIndex} and increases the {@code writerIndex} by {@code 2} - * in this buffer. + * in this buffer. The 16 high-order bits of the specified value are ignored. * * @throws IndexOutOfBoundsException * if {@code this.writableBytes} is less than {@code 2} */ - void writeChar(char value); + void writeChar(int value); /** * Sets the specified 32-bit floating point number at the current diff --git a/src/main/java/org/jboss/netty/buffer/CompositeChannelBuffer.java b/src/main/java/org/jboss/netty/buffer/CompositeChannelBuffer.java index 6b2acfa499..8e54e79adf 100644 --- a/src/main/java/org/jboss/netty/buffer/CompositeChannelBuffer.java +++ b/src/main/java/org/jboss/netty/buffer/CompositeChannelBuffer.java @@ -307,12 +307,12 @@ public class CompositeChannelBuffer extends AbstractChannelBuffer { } } - public void setByte(int index, byte value) { + public void setByte(int index, int value) { int componentId = componentId(index); components[componentId].setByte(index - indices[componentId], value); } - public void setShort(int index, short value) { + public void setShort(int index, int value) { int componentId = componentId(index); if (index + 2 <= indices[componentId + 1]) { components[componentId].setShort(index - indices[componentId], value); diff --git a/src/main/java/org/jboss/netty/buffer/DuplicatedChannelBuffer.java b/src/main/java/org/jboss/netty/buffer/DuplicatedChannelBuffer.java index 7b4f80e199..c0f373b742 100644 --- a/src/main/java/org/jboss/netty/buffer/DuplicatedChannelBuffer.java +++ b/src/main/java/org/jboss/netty/buffer/DuplicatedChannelBuffer.java @@ -128,11 +128,11 @@ public class DuplicatedChannelBuffer extends AbstractChannelBuffer implements Wr buffer.getBytes(index, dst); } - public void setByte(int index, byte value) { + public void setByte(int index, int value) { buffer.setByte(index, value); } - public void setShort(int index, short value) { + public void setShort(int index, int value) { buffer.setShort(index, value); } diff --git a/src/main/java/org/jboss/netty/buffer/DynamicChannelBuffer.java b/src/main/java/org/jboss/netty/buffer/DynamicChannelBuffer.java index 460bd631fe..0b6470cb31 100644 --- a/src/main/java/org/jboss/netty/buffer/DynamicChannelBuffer.java +++ b/src/main/java/org/jboss/netty/buffer/DynamicChannelBuffer.java @@ -156,11 +156,11 @@ public class DynamicChannelBuffer extends AbstractChannelBuffer { buffer.getBytes(index, out, length); } - public void setByte(int index, byte value) { + public void setByte(int index, int value) { buffer.setByte(index, value); } - public void setShort(int index, short value) { + public void setShort(int index, int value) { buffer.setShort(index, value); } @@ -199,13 +199,13 @@ public class DynamicChannelBuffer extends AbstractChannelBuffer { } @Override - public void writeByte(byte value) { + public void writeByte(int value) { ensureWritableBytes(1); super.writeByte(value); } @Override - public void writeShort(short value) { + public void writeShort(int value) { ensureWritableBytes(2); super.writeShort(value); } diff --git a/src/main/java/org/jboss/netty/buffer/HeapChannelBuffer.java b/src/main/java/org/jboss/netty/buffer/HeapChannelBuffer.java index 7d88d62bbd..07a0383910 100644 --- a/src/main/java/org/jboss/netty/buffer/HeapChannelBuffer.java +++ b/src/main/java/org/jboss/netty/buffer/HeapChannelBuffer.java @@ -121,8 +121,8 @@ public abstract class HeapChannelBuffer extends AbstractChannelBuffer { return out.write(ByteBuffer.wrap(array, index, length)); } - public void setByte(int index, byte value) { - array[index] = value; + public void setByte(int index, int value) { + array[index] = (byte) value; } public void setBytes(int index, ChannelBuffer src, int srcIndex, int length) { diff --git a/src/main/java/org/jboss/netty/buffer/LittleEndianHeapChannelBuffer.java b/src/main/java/org/jboss/netty/buffer/LittleEndianHeapChannelBuffer.java index e8b2ab074d..9594c2553a 100644 --- a/src/main/java/org/jboss/netty/buffer/LittleEndianHeapChannelBuffer.java +++ b/src/main/java/org/jboss/netty/buffer/LittleEndianHeapChannelBuffer.java @@ -88,7 +88,7 @@ public class LittleEndianHeapChannelBuffer extends HeapChannelBuffer { ((long) array[index+7] & 0xff) << 56; } - public void setShort(int index, short value) { + public void setShort(int index, int value) { array[index ] = (byte) (value >>> 0); array[index+1] = (byte) (value >>> 8); } diff --git a/src/main/java/org/jboss/netty/buffer/ReadOnlyChannelBuffer.java b/src/main/java/org/jboss/netty/buffer/ReadOnlyChannelBuffer.java index 21664e48f1..acbcdd5ada 100644 --- a/src/main/java/org/jboss/netty/buffer/ReadOnlyChannelBuffer.java +++ b/src/main/java/org/jboss/netty/buffer/ReadOnlyChannelBuffer.java @@ -85,7 +85,7 @@ public class ReadOnlyChannelBuffer extends AbstractChannelBuffer implements Wrap throw new ReadOnlyBufferException(); } - public void setByte(int index, byte value) { + public void setByte(int index, int value) { throw new ReadOnlyBufferException(); } @@ -101,7 +101,7 @@ public class ReadOnlyChannelBuffer extends AbstractChannelBuffer implements Wrap throw new ReadOnlyBufferException(); } - public void setShort(int index, short value) { + public void setShort(int index, int value) { throw new ReadOnlyBufferException(); } diff --git a/src/main/java/org/jboss/netty/buffer/SlicedChannelBuffer.java b/src/main/java/org/jboss/netty/buffer/SlicedChannelBuffer.java index d3039a9b77..6e7424c512 100644 --- a/src/main/java/org/jboss/netty/buffer/SlicedChannelBuffer.java +++ b/src/main/java/org/jboss/netty/buffer/SlicedChannelBuffer.java @@ -148,12 +148,12 @@ public class SlicedChannelBuffer extends AbstractChannelBuffer implements Wrappe buffer.getBytes(index + adjustment, dst); } - public void setByte(int index, byte value) { + public void setByte(int index, int value) { checkIndex(index); buffer.setByte(index + adjustment, value); } - public void setShort(int index, short value) { + public void setShort(int index, int value) { checkIndex(index, 2); buffer.setShort(index + adjustment, value); } diff --git a/src/main/java/org/jboss/netty/buffer/TruncatedChannelBuffer.java b/src/main/java/org/jboss/netty/buffer/TruncatedChannelBuffer.java index d5d140a311..e882a280fe 100644 --- a/src/main/java/org/jboss/netty/buffer/TruncatedChannelBuffer.java +++ b/src/main/java/org/jboss/netty/buffer/TruncatedChannelBuffer.java @@ -142,12 +142,12 @@ public class TruncatedChannelBuffer extends AbstractChannelBuffer implements Wra buffer.getBytes(index, dst); } - public void setByte(int index, byte value) { + public void setByte(int index, int value) { checkIndex(index); buffer.setByte(index, value); } - public void setShort(int index, short value) { + public void setShort(int index, int value) { checkIndex(index, 2); buffer.setShort(index, value); } diff --git a/src/main/java/org/jboss/netty/handler/codec/replay/ReplayingDecoderBuffer.java b/src/main/java/org/jboss/netty/handler/codec/replay/ReplayingDecoderBuffer.java index 93f1cee66a..b683b2d08d 100644 --- a/src/main/java/org/jboss/netty/handler/codec/replay/ReplayingDecoderBuffer.java +++ b/src/main/java/org/jboss/netty/handler/codec/replay/ReplayingDecoderBuffer.java @@ -445,7 +445,7 @@ class ReplayingDecoderBuffer implements ChannelBuffer { throw new UnreplayableOperationException(); } - public void setByte(int index, byte value) { + public void setByte(int index, int value) { throw new UnreplayableOperationException(); } @@ -503,11 +503,11 @@ class ReplayingDecoderBuffer implements ChannelBuffer { throw new UnreplayableOperationException(); } - public void setShort(int index, short value) { + public void setShort(int index, int value) { throw new UnreplayableOperationException(); } - public void setChar(int index, char value) { + public void setChar(int index, int value) { throw new UnreplayableOperationException(); } @@ -613,7 +613,7 @@ class ReplayingDecoderBuffer implements ChannelBuffer { return 0; } - public void writeByte(byte value) { + public void writeByte(int value) { throw new UnreplayableOperationException(); } @@ -674,11 +674,11 @@ class ReplayingDecoderBuffer implements ChannelBuffer { throw new UnreplayableOperationException(); } - public void writeShort(short value) { + public void writeShort(int value) { throw new UnreplayableOperationException(); } - public void writeChar(char value) { + public void writeChar(int value) { throw new UnreplayableOperationException(); }