not sure what is going on there other than the xml file may not end with CRLF's (e.g. if it ends w/ linespace) so your r.readLine may be hanging waiting for data that is terminated before a CRLF is sent. I generally don't use readLine approach (I lean towards pulling all bytes from the stream and casting it).
However, for our current java apps, we are using
Apache Commons HTTPClient to grab the data. You may want to look into that for your app as it provides many shortcuts to do exactly what you are trying to do.
String response = "";
HttpClient client = new HttpClient();
HttpMethod method = new GetMethod(url);
try{
int statusCode = client.executeMethod(method);
response = method.getResponseBodyAsString();
System.out.println(response);
method.releaseConnection();
} catch(IOException e) {
e.printStackTrace(System.err);
}