diff options
| author | Rajith Muditha Attapattu <rajith@apache.org> | 2008-01-02 16:57:14 +0000 |
|---|---|---|
| committer | Rajith Muditha Attapattu <rajith@apache.org> | 2008-01-02 16:57:14 +0000 |
| commit | 6c6cfbb28f689f15884a201688689f7bb0b6a214 (patch) | |
| tree | a9da29299ad916cd8bbdcfd97b91a024eadcf506 /java/common | |
| parent | 3fe6853a7029e48f693c0853e51af33be5c79aec (diff) | |
| download | qpid-python-6c6cfbb28f689f15884a201688689f7bb0b6a214.tar.gz | |
I noticed that the asString() method will rebuild the string from scratch each time. So I cached the String and the char[] after it builds the first time.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@608147 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/common')
| -rw-r--r-- | java/common/src/main/java/org/apache/qpid/framing/AMQShortString.java | 22 |
1 files changed, 16 insertions, 6 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 20db907739..ee63f2c83d 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 @@ -57,6 +57,8 @@ public final class AMQShortString implements CharSequence, Comparable<AMQShortSt private int _hashCode;
private final int _length;
private static final char[] EMPTY_CHAR_ARRAY = new char[0];
+ private char[] chars;
+ private String str;
public AMQShortString(byte[] data)
{
@@ -264,12 +266,15 @@ public final class AMQShortString implements CharSequence, Comparable<AMQShortSt public char[] asChars()
{
- final int size = length();
- final char[] chars = new char[size];
-
- for (int i = 0; i < size; i++)
+ if (chars == null)
{
- chars[i] = (char) _data.get(i);
+ final int size = length();
+ chars = new char[size];
+
+ for (int i = 0; i < size; i++)
+ {
+ chars[i] = (char) _data.get(i);
+ }
}
return chars;
@@ -277,7 +282,12 @@ public final class AMQShortString implements CharSequence, Comparable<AMQShortSt public String asString()
{
- return new String(asChars());
+ if (str == null)
+ {
+ str = new String(asChars());
+ }
+
+ return str;
}
public boolean equals(Object o)
|
