From 65c2bbae25d0ab8df0013fb7bbd58262eb3b450d Mon Sep 17 00:00:00 2001 From: Rory Kelly Date: Thu, 21 Aug 2025 09:34:40 +0100 Subject: [PATCH 1/3] Make `isError` method on GitHubConnectorResponseErrorHandler and subclasses public. --- src/main/java/org/kohsuke/github/GitHubAbuseLimitHandler.java | 2 +- .../org/kohsuke/github/GitHubConnectorResponseErrorHandler.java | 2 +- src/main/java/org/kohsuke/github/GitHubRateLimitHandler.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/kohsuke/github/GitHubAbuseLimitHandler.java b/src/main/java/org/kohsuke/github/GitHubAbuseLimitHandler.java index 2c05dd1455..c45ee70fa2 100644 --- a/src/main/java/org/kohsuke/github/GitHubAbuseLimitHandler.java +++ b/src/main/java/org/kohsuke/github/GitHubAbuseLimitHandler.java @@ -178,7 +178,7 @@ private boolean isTooManyRequests(GitHubConnectorResponse connectorResponse) { * Signals that an I/O exception has occurred. */ @Override - boolean isError(@Nonnull GitHubConnectorResponse connectorResponse) { + public boolean isError(@Nonnull GitHubConnectorResponse connectorResponse) { return isTooManyRequests(connectorResponse) || (isForbidden(connectorResponse) && hasRetryOrLimitHeader(connectorResponse)); } diff --git a/src/main/java/org/kohsuke/github/GitHubConnectorResponseErrorHandler.java b/src/main/java/org/kohsuke/github/GitHubConnectorResponseErrorHandler.java index cb729e321c..b73115d845 100644 --- a/src/main/java/org/kohsuke/github/GitHubConnectorResponseErrorHandler.java +++ b/src/main/java/org/kohsuke/github/GitHubConnectorResponseErrorHandler.java @@ -110,5 +110,5 @@ private boolean isServiceDown(GitHubConnectorResponse connectorResponse) throws * @throws IOException * Signals that an I/O exception has occurred. */ - abstract boolean isError(@Nonnull GitHubConnectorResponse connectorResponse) throws IOException; + public abstract boolean isError(@Nonnull GitHubConnectorResponse connectorResponse) throws IOException; } diff --git a/src/main/java/org/kohsuke/github/GitHubRateLimitHandler.java b/src/main/java/org/kohsuke/github/GitHubRateLimitHandler.java index dd6149b1bd..bc57b75f1a 100644 --- a/src/main/java/org/kohsuke/github/GitHubRateLimitHandler.java +++ b/src/main/java/org/kohsuke/github/GitHubRateLimitHandler.java @@ -91,7 +91,7 @@ public GitHubRateLimitHandler() { * Signals that an I/O exception has occurred. */ @Override - boolean isError(@NotNull GitHubConnectorResponse connectorResponse) throws IOException { + public boolean isError(@NotNull GitHubConnectorResponse connectorResponse) throws IOException { return connectorResponse.statusCode() == HTTP_FORBIDDEN && "0".equals(connectorResponse.header("X-RateLimit-Remaining")); } From d851878730593dbd26b074c403b94721fa9da8cd Mon Sep 17 00:00:00 2001 From: Rory Kelly Date: Thu, 21 Aug 2025 09:39:22 +0100 Subject: [PATCH 2/3] Run `mvn spotless:apply`. --- .../github/GitHubAbuseLimitHandler.java | 30 +++++++++---------- .../GitHubConnectorResponseErrorHandler.java | 22 +++++++------- .../github/GitHubRateLimitHandler.java | 30 +++++++++---------- 3 files changed, 41 insertions(+), 41 deletions(-) diff --git a/src/main/java/org/kohsuke/github/GitHubAbuseLimitHandler.java b/src/main/java/org/kohsuke/github/GitHubAbuseLimitHandler.java index c45ee70fa2..e90d320c74 100644 --- a/src/main/java/org/kohsuke/github/GitHubAbuseLimitHandler.java +++ b/src/main/java/org/kohsuke/github/GitHubAbuseLimitHandler.java @@ -97,6 +97,21 @@ static long parseWaitTime(GitHubConnectorResponse connectorResponse) { public GitHubAbuseLimitHandler() { } + /** + * Checks if is error. + * + * @param connectorResponse + * the connector response + * @return true, if is error + * @throws IOException + * Signals that an I/O exception has occurred. + */ + @Override + public boolean isError(@Nonnull GitHubConnectorResponse connectorResponse) { + return isTooManyRequests(connectorResponse) + || (isForbidden(connectorResponse) && hasRetryOrLimitHeader(connectorResponse)); + } + /** * Called when the library encounters HTTP error indicating that the API abuse limit is reached. * @@ -168,19 +183,4 @@ private boolean isTooManyRequests(GitHubConnectorResponse connectorResponse) { return connectorResponse.statusCode() == TOO_MANY_REQUESTS; } - /** - * Checks if is error. - * - * @param connectorResponse - * the connector response - * @return true, if is error - * @throws IOException - * Signals that an I/O exception has occurred. - */ - @Override - public boolean isError(@Nonnull GitHubConnectorResponse connectorResponse) { - return isTooManyRequests(connectorResponse) - || (isForbidden(connectorResponse) && hasRetryOrLimitHeader(connectorResponse)); - } - } diff --git a/src/main/java/org/kohsuke/github/GitHubConnectorResponseErrorHandler.java b/src/main/java/org/kohsuke/github/GitHubConnectorResponseErrorHandler.java index b73115d845..5a50b10c4f 100644 --- a/src/main/java/org/kohsuke/github/GitHubConnectorResponseErrorHandler.java +++ b/src/main/java/org/kohsuke/github/GitHubConnectorResponseErrorHandler.java @@ -84,6 +84,17 @@ private boolean isServiceDown(GitHubConnectorResponse connectorResponse) throws } }; + /** + * Called to detect an error handled by this handler. + * + * @param connectorResponse + * the connector response + * @return {@code true} if there is an error and {@link #onError(GitHubConnectorResponse)} should be called + * @throws IOException + * Signals that an I/O exception has occurred. + */ + public abstract boolean isError(@Nonnull GitHubConnectorResponse connectorResponse) throws IOException; + /** * Called when the library encounters HTTP error matching {@link #isError(GitHubConnectorResponse)} * @@ -100,15 +111,4 @@ private boolean isServiceDown(GitHubConnectorResponse connectorResponse) throws * @see API documentation from GitHub */ public abstract void onError(@Nonnull GitHubConnectorResponse connectorResponse) throws IOException; - - /** - * Called to detect an error handled by this handler. - * - * @param connectorResponse - * the connector response - * @return {@code true} if there is an error and {@link #onError(GitHubConnectorResponse)} should be called - * @throws IOException - * Signals that an I/O exception has occurred. - */ - public abstract boolean isError(@Nonnull GitHubConnectorResponse connectorResponse) throws IOException; } diff --git a/src/main/java/org/kohsuke/github/GitHubRateLimitHandler.java b/src/main/java/org/kohsuke/github/GitHubRateLimitHandler.java index bc57b75f1a..fae55619c0 100644 --- a/src/main/java/org/kohsuke/github/GitHubRateLimitHandler.java +++ b/src/main/java/org/kohsuke/github/GitHubRateLimitHandler.java @@ -64,6 +64,21 @@ public void onError(GitHubConnectorResponse connectorResponse) throws IOExceptio public GitHubRateLimitHandler() { } + /** + * Checks if is error. + * + * @param connectorResponse + * the connector response + * @return true, if is error + * @throws IOException + * Signals that an I/O exception has occurred. + */ + @Override + public boolean isError(@NotNull GitHubConnectorResponse connectorResponse) throws IOException { + return connectorResponse.statusCode() == HTTP_FORBIDDEN + && "0".equals(connectorResponse.header("X-RateLimit-Remaining")); + } + /** * Called when the library encounters HTTP error indicating that the API rate limit has been exceeded. * @@ -81,21 +96,6 @@ public GitHubRateLimitHandler() { */ public abstract void onError(@Nonnull GitHubConnectorResponse connectorResponse) throws IOException; - /** - * Checks if is error. - * - * @param connectorResponse - * the connector response - * @return true, if is error - * @throws IOException - * Signals that an I/O exception has occurred. - */ - @Override - public boolean isError(@NotNull GitHubConnectorResponse connectorResponse) throws IOException { - return connectorResponse.statusCode() == HTTP_FORBIDDEN - && "0".equals(connectorResponse.header("X-RateLimit-Remaining")); - } - /* * Exposed for testability. Given an http response, find the rate limit reset header field and parse it. If no * header is found, wait for a reasonably amount of time. From 48ba39f24dffde4a0b75b7e0668082631d1e30d3 Mon Sep 17 00:00:00 2001 From: Rory Kelly Date: Thu, 21 Aug 2025 09:46:53 +0100 Subject: [PATCH 3/3] Add missing throws statement. --- src/main/java/org/kohsuke/github/GitHubAbuseLimitHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/kohsuke/github/GitHubAbuseLimitHandler.java b/src/main/java/org/kohsuke/github/GitHubAbuseLimitHandler.java index e90d320c74..5dda9c42d0 100644 --- a/src/main/java/org/kohsuke/github/GitHubAbuseLimitHandler.java +++ b/src/main/java/org/kohsuke/github/GitHubAbuseLimitHandler.java @@ -107,7 +107,7 @@ public GitHubAbuseLimitHandler() { * Signals that an I/O exception has occurred. */ @Override - public boolean isError(@Nonnull GitHubConnectorResponse connectorResponse) { + public boolean isError(@Nonnull GitHubConnectorResponse connectorResponse) throws IOException { return isTooManyRequests(connectorResponse) || (isForbidden(connectorResponse) && hasRetryOrLimitHeader(connectorResponse)); }