From bf7ee6e265e056ca2e2a1604160cbeff5ac1599e Mon Sep 17 00:00:00 2001 From: Patrick <147879351+WinniePatGG@users.noreply.github.com> Date: Thu, 4 Jun 2026 00:46:15 +0200 Subject: [PATCH] 0.1.0 | Error Message Improvements --- build.gradle | 2 +- .../winniepat/licenselib/LicenseClient.java | 39 +++++++++++++------ 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/build.gradle b/build.gradle index f4b2198..a69b66c 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { } group = 'de.winniepat' -version = '0.0.9' +version = '0.1.0' java { diff --git a/src/main/java/de/winniepat/licenselib/LicenseClient.java b/src/main/java/de/winniepat/licenselib/LicenseClient.java index a351f3a..684169d 100644 --- a/src/main/java/de/winniepat/licenselib/LicenseClient.java +++ b/src/main/java/de/winniepat/licenselib/LicenseClient.java @@ -56,12 +56,16 @@ public class LicenseClient { * @return CompletabaleFuture with the LicenseResult from the backend */ public static CompletableFuture checkAsync(String apiUrl, String plugin, String licenseKey, String serverId) { - HttpRequest request = createRequest(apiUrl, plugin, licenseKey, serverId); + try { + HttpRequest request = createRequest(apiUrl, plugin, licenseKey, serverId); - return HTTP_CLIENT - .sendAsync(request, HttpResponse.BodyHandlers.ofString()) - .thenApply(LicenseClient::fromHttpResponse) - .exceptionally(LicenseClient::errorResult); + return HTTP_CLIENT + .sendAsync(request, HttpResponse.BodyHandlers.ofString()) + .thenApply(LicenseClient::fromHttpResponse) + .exceptionally(LicenseClient::errorResult); + } catch (Exception e) { + return CompletableFuture.completedFuture(errorResult(e)); + } } /** @@ -94,13 +98,8 @@ public class LicenseClient { } private static LicenseResult errorResult(Throwable throwable) { - String msg = throwable.getMessage(); - - if (msg == null || msg.isBlank()) { - msg = throwable.getClass().getSimpleName(); - } - - return new LicenseError(msg); + String message = buildErrorMessage(throwable); + return new LicenseError(message); } private static String getString(JsonObject json, String key, String def) { @@ -143,4 +142,20 @@ public class LicenseClient { return uri; } + + private static String buildErrorMessage(Throwable t) { + Throwable root = t; + + while (root.getCause() != null) { + root = root.getCause(); + } + + String msg = root.getMessage(); + + if (msg == null || msg.isBlank()) { + msg = root.getClass().getSimpleName(); + } + + return root.getClass().getSimpleName() + ": " + msg; + } }