From 29991ee00e4f71396409503a3308876bc38447a7 Mon Sep 17 00:00:00 2001 From: Andre Di Genova Date: Sun, 10 Aug 2014 03:47:10 -0400 Subject: [PATCH 1/2] Android 19 on a 4.4.2 simulator seems to return a null when getHeaderFields is called on a headerless request instead of an empty map which results in an NPE. --- .../nkzawa/engineio/client/transports/PollingXHR.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/github/nkzawa/engineio/client/transports/PollingXHR.java b/src/main/java/com/github/nkzawa/engineio/client/transports/PollingXHR.java index 8e54ec4..2d0e712 100644 --- a/src/main/java/com/github/nkzawa/engineio/client/transports/PollingXHR.java +++ b/src/main/java/com/github/nkzawa/engineio/client/transports/PollingXHR.java @@ -201,10 +201,15 @@ public class PollingXHR extends Polling { } Map headers = new TreeMap(String.CASE_INSENSITIVE_ORDER); - for (String key : xhr.getHeaderFields().keySet()) { - if (key == null) continue; - headers.put(key, xhr.getHeaderField(key)); + + xhrHeaderFields = xhr.getHeaderFields(); + if(xhrHeaderFields != null) { + for (String key : xhrHeaderFields.keySet()) { + if (key == null) continue; + headers.put(key, xhr.getHeaderField(key)); + } } + self.onResponseHeaders(headers); final int statusCode = xhr.getResponseCode(); From 20f57e345d704d3bf7ce3790a1c95f8359396d28 Mon Sep 17 00:00:00 2001 From: Andre Di Genova Date: Sun, 10 Aug 2014 03:59:16 -0400 Subject: [PATCH 2/2] I forgot this was Java. --- .../github/nkzawa/engineio/client/transports/PollingXHR.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/github/nkzawa/engineio/client/transports/PollingXHR.java b/src/main/java/com/github/nkzawa/engineio/client/transports/PollingXHR.java index 2d0e712..e3110ec 100644 --- a/src/main/java/com/github/nkzawa/engineio/client/transports/PollingXHR.java +++ b/src/main/java/com/github/nkzawa/engineio/client/transports/PollingXHR.java @@ -202,14 +202,14 @@ public class PollingXHR extends Polling { Map headers = new TreeMap(String.CASE_INSENSITIVE_ORDER); - xhrHeaderFields = xhr.getHeaderFields(); + Map> xhrHeaderFields = xhr.getHeaderFields(); if(xhrHeaderFields != null) { for (String key : xhrHeaderFields.keySet()) { if (key == null) continue; headers.put(key, xhr.getHeaderField(key)); } } - + self.onResponseHeaders(headers); final int statusCode = xhr.getResponseCode();