You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by co...@apache.org on 2018/04/24 11:12:47 UTC

[cxf] branch master updated: Some optimisations for the Header code

This is an automated email from the ASF dual-hosted git repository.

coheigea pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git


The following commit(s) were added to refs/heads/master by this push:
     new f1c1a95  Some optimisations for the Header code
f1c1a95 is described below

commit f1c1a95a90765e219742b4523c94c37b7688743f
Author: Colm O hEigeartaigh <co...@apache.org>
AuthorDate: Tue Apr 24 12:12:27 2018 +0100

    Some optimisations for the Header code
---
 .../org/apache/cxf/helpers/HttpHeaderHelper.java   |  6 ++---
 .../org/apache/cxf/transport/http/Headers.java     | 30 ++++++++--------------
 2 files changed, 14 insertions(+), 22 deletions(-)

diff --git a/core/src/main/java/org/apache/cxf/helpers/HttpHeaderHelper.java b/core/src/main/java/org/apache/cxf/helpers/HttpHeaderHelper.java
index ef1030a..a4befe2 100644
--- a/core/src/main/java/org/apache/cxf/helpers/HttpHeaderHelper.java
+++ b/core/src/main/java/org/apache/cxf/helpers/HttpHeaderHelper.java
@@ -81,8 +81,8 @@ public final class HttpHeaderHelper {
         int idx = contentType.indexOf("charset=");
         if (idx != -1) {
             String charset = contentType.substring(idx + 8);
-            if (charset.indexOf(";") != -1) {
-                charset = charset.substring(0, charset.indexOf(";")).trim();
+            if (charset.indexOf(';') != -1) {
+                charset = charset.substring(0, charset.indexOf(';')).trim();
             }
             if (charset.isEmpty()) {
                 return null;
@@ -106,7 +106,7 @@ public final class HttpHeaderHelper {
         }
         //older versions of tomcat don't properly parse ContentType headers with stuff
         //after charset=StandardCharsets.UTF_8
-        int idx = enc.indexOf(";");
+        int idx = enc.indexOf(';');
         if (idx != -1) {
             enc = enc.substring(0, idx);
         }
diff --git a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Headers.java b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Headers.java
index e7ee2c3..df11086 100644
--- a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Headers.java
+++ b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/Headers.java
@@ -32,6 +32,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
+import java.util.Map.Entry;
 import java.util.Set;
 import java.util.TimeZone;
 import java.util.TreeMap;
@@ -291,16 +292,15 @@ public class Headers {
     public void readFromConnection(HttpURLConnection connection) {
         Map<String, List<String>> origHeaders = connection.getHeaderFields();
         headers.clear();
-        for (String key : connection.getHeaderFields().keySet()) {
-            if (key != null) {
-                headers.put(HttpHeaderHelper.getHeaderKey(key),
-                    origHeaders.get(key));
+        for (Entry<String, List<String>> entry : origHeaders.entrySet()) {
+            if (entry.getKey() != null) {
+                headers.put(HttpHeaderHelper.getHeaderKey(entry.getKey()), entry.getValue());
             }
         }
     }
 
     private static List<String> createMutableList(String val) {
-        return new ArrayList<>(Arrays.asList(new String[] {val}));
+        return new ArrayList<>(Arrays.asList(val));
     }
 
     /**
@@ -367,7 +367,7 @@ public class Headers {
         }
 
         transferProtocolHeadersToURLConnection(connection);
-        
+
         Map<String, List<Object>> theHeaders = CastUtils.cast(headers);
         logProtocolHeaders(LOG, Level.FINE, theHeaders, logSensitiveHeaders());
     }
@@ -405,24 +405,15 @@ public class Headers {
         boolean addHeaders = MessageUtils.getContextualBoolean(message, ADD_HEADERS_PROPERTY, false);
         for (Map.Entry<String, List<String>> entry : headers.entrySet()) {
             String header = entry.getKey();
-            List<String> headerList = entry.getValue();
-
             if (HttpHeaderHelper.CONTENT_TYPE.equalsIgnoreCase(header)) {
                 continue;
             }
+
+            List<String> headerList = entry.getValue();
             if (addHeaders || HttpHeaderHelper.COOKIE.equalsIgnoreCase(header)) {
-                for (String s : headerList) {
-                    connection.addRequestProperty(header, s);
-                }
+                headerList.forEach(s -> connection.addRequestProperty(header, s));
             } else {
-                StringBuilder b = new StringBuilder();
-                for (int i = 0; i < headerList.size(); i++) {
-                    b.append(headerList.get(i));
-                    if (i + 1 < headerList.size()) {
-                        b.append(',');
-                    }
-                }
-                connection.setRequestProperty(header, b.toString());
+                connection.setRequestProperty(header, String.join(",", headerList));
             }
         }
         // make sure we don't add more than one User-Agent header
@@ -473,6 +464,7 @@ public class Headers {
         // Not allowed by default
         return PropertyUtils.isTrue(message.getContextualProperty(ALLOW_LOGGING_SENSITIVE_HEADERS));
     }
+
     private String getContentTypeFromMessage() {
         final String ct = (String)message.get(Message.CONTENT_TYPE);
         final String enc = (String)message.get(Message.ENCODING);

-- 
To stop receiving notification emails like this one, please contact
coheigea@apache.org.