It seems JSoup is trying to read cookies from a previous HttpConnection
On first try, no old connection, so the code works fine, but on second try, it may be trying to read cookies from the past connection, which is closed, or dereferenced.
I did not go as far as reading the Android 2.2 code, but probably the best way for you is to continue doing things the way you are doing right now.
Since it works fine on 2.3, as it should, I am tempted to say it's a mismatch between the way Android 2.2 handles cookies, and the way JSoup handles HttpConnection.
It seems like the problem is solved by adding: System.setProperty("http.keepAlive", "false"); at the beginning of the code. I'm accepting your answer, since it seems like it's the correct reason for the exception. Thanks!