Make sure URL connection is closed

This commit is contained in:
M66B 2021-07-15 08:36:55 +02:00
parent 64e48fdc76
commit b8e04341ab
7 changed files with 30 additions and 25 deletions

View File

@ -354,7 +354,7 @@ public class ContactInfo {
emailGravatar.put(gkey, new Gravatar(false));
}
} else
throw new IOException("HTTP status=" + status);
throw new IOException("Error " + status + ": " + urlConnection.getResponseMessage());
} catch (Throwable ex) {
Log.w(ex);
@ -907,7 +907,7 @@ public class ContactInfo {
try {
int status = connection.getResponseCode();
if (status != HttpURLConnection.HTTP_OK)
throw new FileNotFoundException("Error " + status + ":" + connection.getResponseMessage());
throw new FileNotFoundException("Error " + status + ": " + connection.getResponseMessage());
if ("image/svg+xml".equals(type) || url.getPath().endsWith(".svg")) {
Bitmap bitmap = ImageHelper.renderSvg(connection.getInputStream(), Color.WHITE, scaleToPixels);

View File

@ -123,7 +123,7 @@ public class DisconnectBlacklist {
try {
int status = connection.getResponseCode();
if (status != HttpsURLConnection.HTTP_OK)
throw new FileNotFoundException("Error " + status + ":" + connection.getResponseMessage());
throw new FileNotFoundException("Error " + status + ": " + connection.getResponseMessage());
String response = Helper.readStream(connection.getInputStream());
Helper.writeText(file, response);

View File

@ -391,7 +391,7 @@ public class EmailProvider implements Parcelable {
int status = request.getResponseCode();
if (status != HttpURLConnection.HTTP_OK)
throw new FileNotFoundException("Error " + status + ":" + request.getResponseMessage());
throw new FileNotFoundException("Error " + status + ": " + request.getResponseMessage());
// https://developer.android.com/reference/org/xmlpull/v1/XmlPullParser
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();

View File

@ -8037,7 +8037,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
try {
int status = connection.getResponseCode();
if (status != HttpURLConnection.HTTP_OK)
throw new FileNotFoundException("Error " + status + ":" + connection.getResponseMessage());
throw new FileNotFoundException("Error " + status + ": " + connection.getResponseMessage());
Helper.copy(connection.getInputStream(), os);
} finally {

View File

@ -598,7 +598,7 @@ public class FragmentOAuth extends FragmentBase {
try {
int status = connection.getResponseCode();
if (status != HttpsURLConnection.HTTP_OK)
throw new FileNotFoundException("Error " + status + ":" + connection.getResponseMessage());
throw new FileNotFoundException("Error " + status + ": " + connection.getResponseMessage());
String json = Helper.readStream(connection.getInputStream());
Log.i("json=" + json);

View File

@ -82,7 +82,7 @@ public class IPInfo {
try {
int status = connection.getResponseCode();
if (status != HttpsURLConnection.HTTP_OK)
throw new FileNotFoundException("Error " + status + ":" + connection.getResponseMessage());
throw new FileNotFoundException("Error " + status + ": " + connection.getResponseMessage());
String response = Helper.readStream(connection.getInputStream());
organization.name = response.trim();

View File

@ -639,31 +639,36 @@ class ImageHelper {
urlConnection.setRequestProperty("User-Agent", WebViewEx.getUserAgent(context));
urlConnection.connect();
int status = urlConnection.getResponseCode();
try {
int status = urlConnection.getResponseCode();
if (status == HttpURLConnection.HTTP_MOVED_PERM ||
status == HttpURLConnection.HTTP_MOVED_TEMP ||
status == HttpURLConnection.HTTP_SEE_OTHER ||
status == 307 /* Temporary redirect */ ||
status == 308 /* Permanent redirect */) {
if (++redirects > MAX_REDIRECTS)
throw new IOException("Too many redirects");
if (status == HttpURLConnection.HTTP_MOVED_PERM ||
status == HttpURLConnection.HTTP_MOVED_TEMP ||
status == HttpURLConnection.HTTP_SEE_OTHER ||
status == 307 /* Temporary redirect */ ||
status == 308 /* Permanent redirect */) {
if (++redirects > MAX_REDIRECTS)
throw new IOException("Too many redirects");
String header = urlConnection.getHeaderField("Location");
if (header == null)
throw new IOException("Location header missing");
String header = urlConnection.getHeaderField("Location");
if (header == null)
throw new IOException("Location header missing");
String location = URLDecoder.decode(header, StandardCharsets.UTF_8.name());
url = new URL(url, location);
Log.i("Redirect #" + redirects + " to " + url);
String location = URLDecoder.decode(header, StandardCharsets.UTF_8.name());
url = new URL(url, location);
Log.i("Redirect #" + redirects + " to " + url);
urlConnection.disconnect();
continue;
}
if (status != HttpURLConnection.HTTP_OK)
throw new IOException("Error " + status + ": " + urlConnection.getResponseMessage());
} catch (IOException ex) {
urlConnection.disconnect();
continue;
throw ex;
}
if (status != HttpURLConnection.HTTP_OK)
throw new IOException("HTTP status=" + status);
break;
}