Project: titanium
Issue TIMOB-20036: Android: HttpClient.abort() on andorid throw errors if the request is just created
If I try to cancel a just created HttpClient request (eg on a input onchange search), I got the below errors. With SDK 3.4.1 I got this error: {noformat} [ERROR] : TiHttpClient: (TiHttpClient-3) [0,4790] HTTP Error (java.lang.IllegalStateException): Connection pool shut down. [ERROR] : TiHttpClient: java.lang.IllegalStateException: Connection pool shut down. [ERROR] : TiHttpClient: org.apache.http.impl.conn.tsccm.ConnPoolByRoute.getEntryBlocking(ConnPoolByRoute.java:289) [ERROR] : TiHttpClient: org.apache.http.impl.conn.tsccm.ConnPoolByRoute$1.getPoolEntry(ConnPoolByRoute.java:243) [ERROR] : TiHttpClient: org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager$1.getConnection(ThreadSafeClientConnManager.java:181) [ERROR] : TiHttpClient: org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:331) [ERROR] : TiHttpClient: org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:560) [ERROR] : TiHttpClient: org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:658) [ERROR] : TiHttpClient: org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:642) [ERROR] : TiHttpClient: ti.modules.titanium.network.TiHTTPClient$ClientRunnable.run(TiHTTPClient.java:1341) [ERROR] : TiHttpClient: java.lang.Thread.run(Thread.java:818) {noformat} With SDK 5.0.0 instead: {noformat} [ERROR] : TiHttpClient: (TiHttpClient-7) [0,9478] HTTP Error (java.lang.NullPointerException): Attempt to invoke interface method 'int org.apache.http.StatusLine.getStatusCode()' on a null object reference [ERROR] : TiHttpClient: java.lang.NullPointerException: Attempt to invoke interface method 'int org.apache.http.StatusLine.getStatusCode()' on a null object reference [ERROR] : TiHttpClient: ti.modules.titanium.network.TiHTTPClient$ClientRunnable.run(TiHTTPClient.java:1354) [ERROR] : TiHttpClient: java.lang.Thread.run(Thread.java:818) {noformat} I'm pretty sure this don't happen with 3.1 or 3.2 but I can't test it at the moment. Test apps here: https://www.dropbox.com/sh/g7a7n9emtu36fzc/AADrFBNZ8UthezDd0vmKGjM1a?dl=0 Test code: {code:java} var win = Titanium.UI.createWindow({layout:'vertical', height:Titanium.UI.FILL, backgroundColor:"#FFF"}); var button = Titanium.UI.createButton({top:50,title:"create new request and cancel it after 50ms (will often throw error on logcat)"}); button.addEventListener('click', function(){	var n = Ti.Network.createHTTPClient();	n.open("GET", "http://www.google.com");	n.send();	setInterval(function(){	n.abort();	},50); }); win.add(button); win.open(); {code}
Story points: 3