java.lang.NullPointerException: Attempt to invoke interface method 'boolean java.util.Map.isEmpty()' on a null object reference

Appcelerator JIRA | Michael G | 9 months ago
  1. 0

    Being on 2G my http request will timeout and bringing up the following error message: {code:java} (TiHttpClient-3) [96625,96625] HTTP Error (java.net.SocketTimeoutException): java.net.SocketTimeoutException java.net.SocketTimeoutException at java.net.PlainSocketImpl.read(PlainSocketImpl.java:484) at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:37) at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:237) at com.android.okhttp.okio.Okio$2.read(Okio.java:135) at com.android.okhttp.okio.AsyncTimeout$2.read(AsyncTimeout.java:211) at com.android.okhttp.okio.RealBufferedSource.indexOf(RealBufferedSource.java:306) at com.android.okhttp.okio.RealBufferedSource.indexOf(RealBufferedSource.java:300) at com.android.okhttp.okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:196) at com.android.okhttp.internal.http.HttpConnection.readResponse(HttpConnection.java:191) at com.android.okhttp.internal.http.HttpTransport.readResponseHeaders(HttpTransport.java:80) at com.android.okhttp.internal.http.HttpEngine.readNetworkResponse(HttpEngine.java:904) at com.android.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:788) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:463) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:408) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getHeaders(HttpURLConnectionImpl.java:170) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getHeaderField(HttpURLConnectionImpl.java:212) at java.net.URLConnection.getHeaderFieldInt(URLConnection.java:543) at java.net.URLConnection.getContentLength(URLConnection.java:315) at ti.modules.titanium.network.TiHTTPClient.handleResponse(TiHTTPClient.java:159) at ti.modules.titanium.network.TiHTTPClient.access$1200(TiHTTPClient.java:85) at ti.modules.titanium.network.TiHTTPClient$ClientRunnable.run(TiHTTPClient.java:1207) at java.lang.Thread.run(Thread.java:818) java.lang.NullPointerException: Attempt to invoke interface method 'boolean java.util.Map.isEmpty()' on a null object reference at ti.modules.titanium.network.TiHTTPClient.getAllResponseHeaders(TiHTTPClient.java:615) at ti.modules.titanium.network.HTTPClientProxy.getAllResponseHeaders(HTTPClientProxy.java:99) at org.appcelerator.kroll.runtime.v8.V8Object.nativeCallProperty(Native Method) at org.appcelerator.kroll.runtime.v8.V8Object.callProperty(V8Object.java:73) at org.appcelerator.kroll.KrollProxy.handleMessage(KrollProxy.java:1155) at android.os.Handler.dispatchMessage(Handler.java:98) at android.os.Looper.loop(Looper.java:168) at org.appcelerator.kroll.KrollRuntime$KrollRuntimeThread.run(KrollRuntime.java:118) E/TiExceptionHandler(7403): (main) [59,96684] ----- Titanium Javascript Runtime Error ----- E/TiExceptionHandler(7403): (main) [0,96684] - In ti:/console.js:25,62 E/TiExceptionHandler(7403): (main) [0,96684] - Message: Uncaught Error: Attempt to invoke interface method 'boolean java.util.Map.isEmpty()' on a null object reference E/TiExceptionHandler(7403): (main) [1,96685] - Source: ( arg.hasOwnProperty('toString') ? arg.toString() : JSON.stringify(arg) ) {code} The problem is here: https://github.com/appcelerator/titanium_mobile/blob/dcd73f54156cdd0a9f40ae9a2339ccb68e8c216e/android/modules/network/src/java/ti/modules/titanium/network/TiHTTPClient.java#L615 responseHeaders is null so isEmpty() can't be called Test code: {code:java} var url = "http://my.server.com"; var client = Ti.Network.createHTTPClient({ onload : function(e) { Ti.API.info("Received text: " + this.responseText); alert('success'); }, onerror : function(e) { Ti.API.debug(e.error); alert('error'); }, timeout : 5000 }); client.open("GET", url); client.send(); {code} I've changed to 2G and went into a room with bad reception to force the timeout

    Appcelerator JIRA | 9 months ago | Michael G
    java.lang.NullPointerException: Attempt to invoke interface method 'boolean java.util.Map.isEmpty()' on a null object reference
  2. 0

    Being on 2G my http request will timeout and bringing up the following error message: {code:java} (TiHttpClient-3) [96625,96625] HTTP Error (java.net.SocketTimeoutException): java.net.SocketTimeoutException java.net.SocketTimeoutException at java.net.PlainSocketImpl.read(PlainSocketImpl.java:484) at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:37) at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:237) at com.android.okhttp.okio.Okio$2.read(Okio.java:135) at com.android.okhttp.okio.AsyncTimeout$2.read(AsyncTimeout.java:211) at com.android.okhttp.okio.RealBufferedSource.indexOf(RealBufferedSource.java:306) at com.android.okhttp.okio.RealBufferedSource.indexOf(RealBufferedSource.java:300) at com.android.okhttp.okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:196) at com.android.okhttp.internal.http.HttpConnection.readResponse(HttpConnection.java:191) at com.android.okhttp.internal.http.HttpTransport.readResponseHeaders(HttpTransport.java:80) at com.android.okhttp.internal.http.HttpEngine.readNetworkResponse(HttpEngine.java:904) at com.android.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:788) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:463) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:408) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getHeaders(HttpURLConnectionImpl.java:170) at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getHeaderField(HttpURLConnectionImpl.java:212) at java.net.URLConnection.getHeaderFieldInt(URLConnection.java:543) at java.net.URLConnection.getContentLength(URLConnection.java:315) at ti.modules.titanium.network.TiHTTPClient.handleResponse(TiHTTPClient.java:159) at ti.modules.titanium.network.TiHTTPClient.access$1200(TiHTTPClient.java:85) at ti.modules.titanium.network.TiHTTPClient$ClientRunnable.run(TiHTTPClient.java:1207) at java.lang.Thread.run(Thread.java:818) java.lang.NullPointerException: Attempt to invoke interface method 'boolean java.util.Map.isEmpty()' on a null object reference at ti.modules.titanium.network.TiHTTPClient.getAllResponseHeaders(TiHTTPClient.java:615) at ti.modules.titanium.network.HTTPClientProxy.getAllResponseHeaders(HTTPClientProxy.java:99) at org.appcelerator.kroll.runtime.v8.V8Object.nativeCallProperty(Native Method) at org.appcelerator.kroll.runtime.v8.V8Object.callProperty(V8Object.java:73) at org.appcelerator.kroll.KrollProxy.handleMessage(KrollProxy.java:1155) at android.os.Handler.dispatchMessage(Handler.java:98) at android.os.Looper.loop(Looper.java:168) at org.appcelerator.kroll.KrollRuntime$KrollRuntimeThread.run(KrollRuntime.java:118) E/TiExceptionHandler(7403): (main) [59,96684] ----- Titanium Javascript Runtime Error ----- E/TiExceptionHandler(7403): (main) [0,96684] - In ti:/console.js:25,62 E/TiExceptionHandler(7403): (main) [0,96684] - Message: Uncaught Error: Attempt to invoke interface method 'boolean java.util.Map.isEmpty()' on a null object reference E/TiExceptionHandler(7403): (main) [1,96685] - Source: ( arg.hasOwnProperty('toString') ? arg.toString() : JSON.stringify(arg) ) {code} The problem is here: https://github.com/appcelerator/titanium_mobile/blob/dcd73f54156cdd0a9f40ae9a2339ccb68e8c216e/android/modules/network/src/java/ti/modules/titanium/network/TiHTTPClient.java#L615 responseHeaders is null so isEmpty() can't be called Test code: {code:java} var url = "http://my.server.com"; var client = Ti.Network.createHTTPClient({ onload : function(e) { Ti.API.info("Received text: " + this.responseText); alert('success'); }, onerror : function(e) { Ti.API.debug(e.error); alert('error'); }, timeout : 5000 }); client.open("GET", url); client.send(); {code} I've changed to 2G and went into a room with bad reception to force the timeout

    Appcelerator JIRA | 9 months ago | Michael G
    java.lang.NullPointerException: Attempt to invoke interface method 'boolean java.util.Map.isEmpty()' on a null object reference
  3. 0

    Crash on rotate when field is disabled

    GitHub | 1 year ago | massivespace
    java.lang.NullPointerException: Attempt to invoke interface method 'boolean android.view.inputmethod.InputConnection.reportFullscreenMode(boolean)' on a null object reference
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

  5. 0

    login and registration with session management always gives null pointer exception?

    Stack Overflow | 1 year ago | Himank shah
    java.lang.NullPointerException: Attempt to invoke interface method 'boolean android.content.SharedPreferences.getBoolean(java.lang.String, boolean)' on a null object reference
  6. 0

    Unable to resume activity - SharedPreferences

    Stack Overflow | 2 years ago | fredthemugwump
    java.lang.RuntimeException: Unable to resume activity {com.heavyfork.partystarter/com.heavyfork.partystarter.MainActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'boolean android.content.SharedPreferences.getBoolean(java.lang.String, boolean)' on a null object reference

    Not finding the right solution?
    Take a tour to get the most out of Samebug.

    Tired of useless tips?

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. java.lang.NullPointerException

      Attempt to invoke interface method 'boolean java.util.Map.isEmpty()' on a null object reference

      at ti.modules.titanium.network.TiHTTPClient.getAllResponseHeaders()
    2. ti.modules.titanium
      HTTPClientProxy.getAllResponseHeaders
      1. ti.modules.titanium.network.TiHTTPClient.getAllResponseHeaders(TiHTTPClient.java:615)
      2. ti.modules.titanium.network.HTTPClientProxy.getAllResponseHeaders(HTTPClientProxy.java:99)
      2 frames
    3. org.appcelerator.kroll
      KrollProxy.handleMessage
      1. org.appcelerator.kroll.runtime.v8.V8Object.nativeCallProperty(Native Method)
      2. org.appcelerator.kroll.runtime.v8.V8Object.callProperty(V8Object.java:73)
      3. org.appcelerator.kroll.KrollProxy.handleMessage(KrollProxy.java:1155)
      3 frames
    4. Android Platform
      Looper.loop
      1. android.os.Handler.dispatchMessage(Handler.java:98)
      2. android.os.Looper.loop(Looper.java:168)
      2 frames
    5. org.appcelerator.kroll
      KrollRuntime$KrollRuntimeThread.run
      1. org.appcelerator.kroll.KrollRuntime$KrollRuntimeThread.run(KrollRuntime.java:118)
      1 frame