Skip to content

Commit 229fcf3

Browse files
authored
UrlConnectionException loses error info (#2648)
It does not get the error message for 400+ status codes. It fails to get the status code if the response has neither data nor error.
1 parent b775e4a commit 229fcf3

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

util/src/main/java/google/registry/util/UrlConnectionException.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,14 @@ public UrlConnectionException(String message, HttpURLConnection connection) {
3737
@Override
3838
public String getMessage() {
3939
byte[] resultContent;
40-
int responseCode;
40+
int responseCode = 0;
4141
try {
42-
resultContent = ByteStreams.toByteArray(connection.getInputStream());
4342
responseCode = connection.getResponseCode();
44-
} catch (IOException e) {
45-
resultContent = new byte[] {};
46-
responseCode = 0;
43+
resultContent =
44+
ByteStreams.toByteArray(
45+
responseCode < 400 ? connection.getInputStream() : connection.getErrorStream());
46+
} catch (IOException | NullPointerException e) {
47+
resultContent = "-- Response is missing or has malformed content --".getBytes(UTF_8);
4748
}
4849
StringBuilder result =
4950
new StringBuilder(2048 + resultContent.length)

0 commit comments

Comments
 (0)