diff --git a/CHANGELOG.md b/CHANGELOG.md index 38a5a0a..e4c5983 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ ### Improvements * Parse timestamps as `ZonedDateTime` instead of `String` representation * Remove redundant `java.base` requirement from _module-info.java_ (#69) +* Close Java HTTP Client when running on Java 21 or later (#70) ### Dependencies * Updated Jackson to 2.16.0 diff --git a/src/main/java/de/stklcode/jvault/connector/internal/RequestHelper.java b/src/main/java/de/stklcode/jvault/connector/internal/RequestHelper.java index ec047dc..1cd4847 100644 --- a/src/main/java/de/stklcode/jvault/connector/internal/RequestHelper.java +++ b/src/main/java/de/stklcode/jvault/connector/internal/RequestHelper.java @@ -363,6 +363,15 @@ public final class RequestHelper implements Serializable { } } catch (CompletionException e) { throw new ConnectionException(Error.CONNECTION, e.getCause()); + } finally { + if (client instanceof AutoCloseable) { + // Close the client, which is supported since JDK21. + try { + ((AutoCloseable) client).close(); + } catch (Exception ignored) { + // Ignore + } + } } }