Android: Invalid use of SingleClientConnManager: connection still allocated

Pushpendra Kuntal picture Pushpendra Kuntal · Feb 17, 2012 · Viewed 20.8k times · Source

Possible Duplicate:
Exception using HttpRequest.execute(): Invalid use of SingleClientConnManager: connection still allocated

I am working in Android. I created HttpSingleton class to create single intance of HttpClient in my complete application.

This is my code to use this class:-

HttpGet get = new HttpGet("url/dologin/savitagupta/savitagupta");
**HttpResponse rp = HttpSigleton.getInstance().execute(get);**          
if (rp.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
   // some code here
}

and this is my class for single instance

public class HttpSigleton {
  private static HttpClient instance = null;
  protected HttpSigleton() {

  }
  public static HttpClient getInstance() {
    if(instance == null) {
       instance =new DefaultHttpClient();
    }
    return instance;
 }
}

Then error is occurred is :-

SingleClientConnManager : Invalid use of SingleClientConnManager: connection still allocated. Make sure to release the connection before allocating another one. Please suggest me what mistake i have done. I really need your help. Thank you in advance.

Answer

Carl D'Halluin picture Carl D'Halluin · Oct 8, 2012

For Android:

If you are not interested in the content, the cheapest way to get rid of your connection and avoid the error "connection still allocated" is:

httpResponse.getEntity().consumeContent();

See http://developer.android.com/reference/org/apache/http/HttpEntity.html#consumeContent()