Author: johnh
Date: Wed Sep 10 16:24:11 2008
New Revision: 694062

URL: http://svn.apache.org/viewvc?rev=694062&view=rev
Log:
HttpResponse is immutable - no need to repeatedly calculate response as String.


Modified:
    
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponse.java

Modified: 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponse.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponse.java?rev=694062&r1=694061&r2=694062&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponse.java
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponse.java
 Wed Sep 10 16:24:11 2008
@@ -89,6 +89,7 @@
   private final int httpStatusCode;
   private final Map<String, List<String>> headers;
   private final byte[] responseBytes;
+  private String responseString;
   private final Map<String, String> metadata;
 
   private final long date;
@@ -170,16 +171,18 @@
    * @return The body as a string.
    */
   public String getResponseAsString() {
-    Charset charset = encodingToCharset.get(encoding);
-    if (charset == null) {
-      charset = Charset.forName(encoding);
-      encodingToCharset.put(encoding, charset);
-    }
-    String responseString = 
charset.decode(ByteBuffer.wrap(responseBytes)).toString();
-
-    // Strip BOM if present
-    if (responseString.length() > 0 && responseString.codePointAt(0) == 
0xFEFF) {
-      responseString = responseString.substring(1);
+    if (responseString == null) {
+      Charset charset = encodingToCharset.get(encoding);
+      if (charset == null) {
+        charset = Charset.forName(encoding);
+        encodingToCharset.put(encoding, charset);
+      }
+      responseString = 
charset.decode(ByteBuffer.wrap(responseBytes)).toString();
+
+      // Strip BOM if present
+      if (responseString.length() > 0 && responseString.codePointAt(0) == 
0xFEFF) {
+        responseString = responseString.substring(1);
+      }
     }
     return responseString;
   }
@@ -284,7 +287,7 @@
     }
     return false;
   }
-
+  
   /**
    * @return the expiration time from the Expires header or -1 if not set
    */


Reply via email to