Skip to content

Commit 9c2fc93

Browse files
committed
- Delay when we do the conversion of byte[]->String. Offered a 6-7% speed increase.
1 parent 4dd71c3 commit 9c2fc93

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

providers/grizzly/src/main/java/org/asynchttpclient/providers/grizzly/GrizzlyResponseHeaders.java

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,9 @@
3232
*/
3333
class GrizzlyResponseHeaders extends HttpResponseHeaders {
3434

35-
private final FluentCaseInsensitiveStringsMap headers =
36-
new FluentCaseInsensitiveStringsMap();
35+
private FluentCaseInsensitiveStringsMap headers;
36+
private MimeHeaders grizzlyHeaders;
37+
3738

3839
// ------------------------------------------------------------ Constructors
3940

@@ -43,12 +44,8 @@ public GrizzlyResponseHeaders(final HttpResponsePacket response,
4344
final AsyncHttpProvider provider) {
4445

4546
super(uri, provider);
46-
final MimeHeaders headersLocal = response.getHeaders();
47-
for (String name : headersLocal.names()) {
48-
for (String header : headersLocal.values(name)) {
49-
headers.add(name, header);
50-
}
51-
}
47+
grizzlyHeaders = new MimeHeaders();
48+
grizzlyHeaders.copyFrom(response.getHeaders());
5249

5350
}
5451

@@ -60,7 +57,15 @@ public GrizzlyResponseHeaders(final HttpResponsePacket response,
6057
* {@inheritDoc}
6158
*/
6259
@Override
63-
public FluentCaseInsensitiveStringsMap getHeaders() {
60+
public synchronized FluentCaseInsensitiveStringsMap getHeaders() {
61+
if (headers == null) {
62+
headers = new FluentCaseInsensitiveStringsMap();
63+
for (String name : grizzlyHeaders.names()) {
64+
for (String header : grizzlyHeaders.values(name)) {
65+
headers.add(name, header);
66+
}
67+
}
68+
}
6469
return headers;
6570
}
6671

0 commit comments

Comments
 (0)