You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by el...@apache.org on 2015/12/24 14:29:20 UTC
mina git commit: Fix for DIRMINA-1022
Repository: mina
Updated Branches:
refs/heads/2.0 d5b52476f -> de419e90e
Fix for DIRMINA-1022
Project: http://git-wip-us.apache.org/repos/asf/mina/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina/commit/de419e90
Tree: http://git-wip-us.apache.org/repos/asf/mina/tree/de419e90
Diff: http://git-wip-us.apache.org/repos/asf/mina/diff/de419e90
Branch: refs/heads/2.0
Commit: de419e90e9dbfa9ffafb5157fa373540c64c7889
Parents: d5b5247
Author: Emmanuel Lécharny <el...@symas.com>
Authored: Thu Dec 24 14:28:51 2015 +0100
Committer: Emmanuel Lécharny <el...@symas.com>
Committed: Thu Dec 24 14:28:51 2015 +0100
----------------------------------------------------------------------
.../org/apache/mina/core/buffer/AbstractIoBuffer.java | 10 ++++------
.../org/apache/mina/core/buffer/IoBufferTest.java | 14 ++++++++++++++
2 files changed, 18 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mina/blob/de419e90/mina-core/src/main/java/org/apache/mina/core/buffer/AbstractIoBuffer.java
----------------------------------------------------------------------
diff --git a/mina-core/src/main/java/org/apache/mina/core/buffer/AbstractIoBuffer.java b/mina-core/src/main/java/org/apache/mina/core/buffer/AbstractIoBuffer.java
index 7d31fbc..183a115 100644
--- a/mina-core/src/main/java/org/apache/mina/core/buffer/AbstractIoBuffer.java
+++ b/mina-core/src/main/java/org/apache/mina/core/buffer/AbstractIoBuffer.java
@@ -2336,10 +2336,8 @@ public abstract class AbstractIoBuffer extends IoBuffer {
int r = size & 7;
if (q > 0) {
- int intValue = value | value << 8 | value << 16 | value << 24;
- long longValue = intValue;
- longValue <<= 32;
- longValue |= intValue;
+ int intValue = value & 0x000000FF | ( value << 8 ) & 0x0000FF00 | ( value << 16 ) & 0x00FF0000 | value << 24;
+ long longValue = intValue & 0x00000000FFFFFFFFL | (long)intValue << 32;
for (int i = q; i > 0; i--) {
putLong(longValue);
@@ -2350,7 +2348,7 @@ public abstract class AbstractIoBuffer extends IoBuffer {
r = r & 3;
if (q > 0) {
- int intValue = value | value << 8 | value << 16 | value << 24;
+ int intValue = value & 0x000000FF | ( value << 8 ) & 0x0000FF00 | ( value << 16 ) & 0x00FF0000 | value << 24;
putInt(intValue);
}
@@ -2358,7 +2356,7 @@ public abstract class AbstractIoBuffer extends IoBuffer {
r = r & 1;
if (q > 0) {
- short shortValue = (short) (value | value << 8);
+ short shortValue = (short) (value & 0x000FF | value << 8);
putShort(shortValue);
}
http://git-wip-us.apache.org/repos/asf/mina/blob/de419e90/mina-core/src/test/java/org/apache/mina/core/buffer/IoBufferTest.java
----------------------------------------------------------------------
diff --git a/mina-core/src/test/java/org/apache/mina/core/buffer/IoBufferTest.java b/mina-core/src/test/java/org/apache/mina/core/buffer/IoBufferTest.java
index 8c663ca..8b69078 100644
--- a/mina-core/src/test/java/org/apache/mina/core/buffer/IoBufferTest.java
+++ b/mina-core/src/test/java/org/apache/mina/core/buffer/IoBufferTest.java
@@ -1686,4 +1686,18 @@ public class IoBufferTest {
{
}
+
+
+ @Test
+ public void testFillByteSize()
+ {
+ int length = 1024*1020;
+ IoBuffer buffer = IoBuffer.allocate(length);
+ buffer.fill((byte)0x80, length);
+
+ buffer.flip();
+ for (int i=0; i<length; i++) {
+ assertEquals((byte)0x80, buffer.get());
+ }
+ }
}