Repository: activemq-artemis
Updated Branches:
  refs/heads/master 94f84c43a -> 96b559307


Avoid some array copies on STOMP decode


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/8a90de6f
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/8a90de6f
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/8a90de6f

Branch: refs/heads/master
Commit: 8a90de6fbc651dda6de7b4417ba4e94abbeb718e
Parents: 94f84c4
Author: Ville Skyttä <ville.sky...@iki.fi>
Authored: Thu Jul 16 13:23:58 2015 +0300
Committer: Clebert Suconic <clebertsuco...@apache.org>
Committed: Mon Jul 20 14:57:17 2015 +0100

----------------------------------------------------------------------
 .../artemis/core/protocol/stomp/SimpleBytes.java        |  4 +---
 .../artemis/core/protocol/stomp/StompDecoder.java       | 12 ++----------
 .../artemis/core/protocol/stomp/StompFrame.java         |  5 +----
 3 files changed, 4 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/8a90de6f/artemis-protocols/artemis-stomp-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/stomp/SimpleBytes.java
----------------------------------------------------------------------
diff --git 
a/artemis-protocols/artemis-stomp-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/stomp/SimpleBytes.java
 
b/artemis-protocols/artemis-stomp-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/stomp/SimpleBytes.java
index 3d0fddc..474ea3d 100644
--- 
a/artemis-protocols/artemis-stomp-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/stomp/SimpleBytes.java
+++ 
b/artemis-protocols/artemis-stomp-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/stomp/SimpleBytes.java
@@ -35,10 +35,8 @@ public class SimpleBytes
    public String getString()
    {
       if (index == 0) return "";
-      byte[] realData = new byte[index];
-      System.arraycopy(contents, 0, realData, 0, realData.length);
 
-      return new String(realData, StandardCharsets.UTF_8);
+      return new String(contents, 0, index, StandardCharsets.UTF_8);
    }
 
    public void reset()

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/8a90de6f/artemis-protocols/artemis-stomp-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/stomp/StompDecoder.java
----------------------------------------------------------------------
diff --git 
a/artemis-protocols/artemis-stomp-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/stomp/StompDecoder.java
 
b/artemis-protocols/artemis-stomp-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/stomp/StompDecoder.java
index d0c13d1..57ecbb2 100644
--- 
a/artemis-protocols/artemis-stomp-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/stomp/StompDecoder.java
+++ 
b/artemis-protocols/artemis-stomp-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/stomp/StompDecoder.java
@@ -312,11 +312,7 @@ public class StompDecoder
             {
                if (inHeaderName)
                {
-                  byte[] data = new byte[pos - headerBytesCopyStart - 1];
-
-                  System.arraycopy(workingBuffer, headerBytesCopyStart, data, 
0, data.length);
-
-                  headerName = new String(data);
+                  headerName = new String(workingBuffer, headerBytesCopyStart, 
pos - headerBytesCopyStart - 1);
 
                   inHeaderName = false;
 
@@ -339,11 +335,7 @@ public class StompDecoder
                   break outer;
                }
 
-               byte[] data = new byte[pos - headerBytesCopyStart - 1];
-
-               System.arraycopy(workingBuffer, headerBytesCopyStart, data, 0, 
data.length);
-
-               String headerValue = new String(data);
+               String headerValue = new String(workingBuffer, 
headerBytesCopyStart, pos - headerBytesCopyStart - 1);
 
                headers.put(headerName, headerValue);
 

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/8a90de6f/artemis-protocols/artemis-stomp-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/stomp/StompFrame.java
----------------------------------------------------------------------
diff --git 
a/artemis-protocols/artemis-stomp-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/stomp/StompFrame.java
 
b/artemis-protocols/artemis-stomp-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/stomp/StompFrame.java
index cb6ede5..2958c98 100644
--- 
a/artemis-protocols/artemis-stomp-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/stomp/StompFrame.java
+++ 
b/artemis-protocols/artemis-stomp-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/stomp/StompFrame.java
@@ -229,10 +229,7 @@ public class StompFrame
          iBuffer++;
       }
 
-      char[] total = new char[iBuffer];
-      System.arraycopy(buffer, 0, total, 0, iBuffer);
-
-      return new String(total);
+      return new String(buffer, 0, iBuffer);
    }
 
    public void setBody(String body)

Reply via email to