summaryrefslogtreecommitdiff
path: root/java/common/src/main
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2008-04-16 08:27:37 +0000
committerRobert Godfrey <rgodfrey@apache.org>2008-04-16 08:27:37 +0000
commitcea42250ec300edbaa4643849017cb046621e53c (patch)
treef0a0e22bef360cf306dee36b53a70680a9876d3d /java/common/src/main
parent1046ac07e293efc782fda27b5bb60c25c52df17d (diff)
downloadqpid-python-cea42250ec300edbaa4643849017cb046621e53c.tar.gz
QPID-899 : Bug in AMQShortString on tokenized substrings
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/M2.1@648614 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/common/src/main')
-rw-r--r--java/common/src/main/java/org/apache/qpid/framing/AMQShortString.java12
1 files changed, 8 insertions, 4 deletions
diff --git a/java/common/src/main/java/org/apache/qpid/framing/AMQShortString.java b/java/common/src/main/java/org/apache/qpid/framing/AMQShortString.java
index 665cbf7a84..0d78aca729 100644
--- a/java/common/src/main/java/org/apache/qpid/framing/AMQShortString.java
+++ b/java/common/src/main/java/org/apache/qpid/framing/AMQShortString.java
@@ -90,7 +90,7 @@ public final class AMQShortString implements CharSequence, Comparable<AMQShortSt
private AMQShortString substring(final int from, final int to)
{
- return new AMQShortString(_data, from, to);
+ return new AMQShortString(_data, from+_offset, to+_offset);
}
@@ -651,7 +651,7 @@ public final class AMQShortString implements CharSequence, Comparable<AMQShortSt
public int toIntValue()
{
- int pos = 0;
+ int pos = _offset;
int val = 0;
@@ -660,7 +660,10 @@ public final class AMQShortString implements CharSequence, Comparable<AMQShortSt
{
pos++;
}
- while(pos < _length)
+
+ final int end = _length + _offset;
+
+ while(pos < end)
{
int digit = (int) (_data[pos++] - ZERO);
if((digit < 0) || (digit > 9))
@@ -679,7 +682,8 @@ public final class AMQShortString implements CharSequence, Comparable<AMQShortSt
public boolean contains(final byte b)
{
- for(int i = 0; i < _length; i++)
+ final int end = _length + _offset;
+ for(int i = _offset; i < end; i++)
{
if(_data[i] == b)
{