summaryrefslogtreecommitdiff
path: root/java/common
diff options
context:
space:
mode:
authorRajith Muditha Attapattu <rajith@apache.org>2008-01-02 16:57:14 +0000
committerRajith Muditha Attapattu <rajith@apache.org>2008-01-02 16:57:14 +0000
commit6c6cfbb28f689f15884a201688689f7bb0b6a214 (patch)
treea9da29299ad916cd8bbdcfd97b91a024eadcf506 /java/common
parent3fe6853a7029e48f693c0853e51af33be5c79aec (diff)
downloadqpid-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.java22
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)