Uploaded image for project: 'Titanium SDK/CLI'
  1. Titanium SDK/CLI
  2. TIMOB-20036

Android: HttpClient.abort() on andorid throw errors if the request is just created

    Details

    • Story Points:
      3
    • Sprint:
      2015 Sprint 25 SDK

      Description

      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:

      [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: 	at org.apache.http.impl.conn.tsccm.ConnPoolByRoute.getEntryBlocking(ConnPoolByRoute.java:289)
      [ERROR] :  TiHttpClient: 	at org.apache.http.impl.conn.tsccm.ConnPoolByRoute$1.getPoolEntry(ConnPoolByRoute.java:243)
      [ERROR] :  TiHttpClient: 	at org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager$1.getConnection(ThreadSafeClientConnManager.java:181)
      [ERROR] :  TiHttpClient: 	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:331)
      [ERROR] :  TiHttpClient: 	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:560)
      [ERROR] :  TiHttpClient: 	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:658)
      [ERROR] :  TiHttpClient: 	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:642)
      [ERROR] :  TiHttpClient: 	at ti.modules.titanium.network.TiHTTPClient$ClientRunnable.run(TiHTTPClient.java:1341)
      [ERROR] :  TiHttpClient: 	at java.lang.Thread.run(Thread.java:818)
      

      With SDK 5.0.0 instead:

      [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: 	at ti.modules.titanium.network.TiHTTPClient$ClientRunnable.run(TiHTTPClient.java:1354)
      [ERROR] :  TiHttpClient: 	at java.lang.Thread.run(Thread.java:818)
      

      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:

      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();
      
      

        Attachments

          Activity

            People

            • Assignee:
              hpham Hieu Pham
              Reporter:
              c3k carlo
              Reviewer:
              Ashraf Abu (Inactive)
            • Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Backbone Issue Sync

                • Titanium SDK/CLI <> Titanium Mobile
                  Synced with:
                  TIMOB-20711
                  Sync status:
                  ERROR
                  Last received:
                  Last sent:

                  Git Source Code