diff options
| author | Robert Godfrey <rgodfrey@apache.org> | 2008-04-16 08:27:37 +0000 |
|---|---|---|
| committer | Robert Godfrey <rgodfrey@apache.org> | 2008-04-16 08:27:37 +0000 |
| commit | cea42250ec300edbaa4643849017cb046621e53c (patch) | |
| tree | f0a0e22bef360cf306dee36b53a70680a9876d3d /java/common/src/main | |
| parent | 1046ac07e293efc782fda27b5bb60c25c52df17d (diff) | |
| download | qpid-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.java | 12 |
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) { |
