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
*/