1212import java.io.InputStreamReader;
1313import java.net.HttpURLConnection;
1414import java.net.URL;
15+ import java.util.Collections;
1516import java.util.HashMap;
1617import java.util.List;
1718import java.util.Map;
19+ import java.util.logging.Logger;
1820import java.security.SecureRandom;
1921import java.security.cert.X509Certificate;
2022
3133import org.apache.http.impl.client.DefaultHttpClient;
3234import org.apache.http.impl.conn.BasicClientConnectionManager;
3335
36+ import com.ibm.streams.operator.logging.TraceLevel;
37+
3438public class HTTPUtils {
3539
40+ static final String CLASS_NAME="com.ibm.streamsx.inet.http.HTTPUtils";
41+ private static Logger trace = Logger.getLogger(CLASS_NAME);
42+
3643 public static HttpURLConnection getNewConnection(String url)
3744 throws IOException {
3845 return (HttpURLConnection)new URL(url).openConnection();
@@ -59,9 +66,14 @@ public static String readFromStream(InputStream stream) {
5966 }
6067
6168 public static Map<String, String> getHeaderMap(List<String> headers) {
69+ if(headers == null) return Collections.emptyMap();
6270 Map<String, String> headerMap = new HashMap<String, String>(headers.size());
6371 for(String header : headers) {
6472 String[] headerParts = header.split(":\\s*", 2);
73+ if(headerParts.length < 2) {
74+ trace.log(TraceLevel.ERROR, "No ':' found in extraHeaders element '" + header + "', skipping");
75+ continue;
76+ }
6577 String headerName = headerParts[0];
6678 String headerValue = headerParts[1];
6779 headerMap.put(headerName, headerValue);
0 commit comments