From 49e26d0d2919d92e26b394d36f16e36965819131 Mon Sep 17 00:00:00 2001 From: Gravit Date: Sun, 1 Sep 2019 20:07:23 +0700 Subject: [PATCH] =?UTF-8?q?[FIX]=20=D0=A4=D0=B8=D0=BA=D1=81=20=D0=B8=D0=BD?= =?UTF-8?q?=D0=B8=D1=86=D0=B8=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0=D1=86=D0=B8?= =?UTF-8?q?=D0=B8=20Guard=20=D0=B8=20ClassCastException?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/pro/gravit/launcher/LauncherEngine.java | 2 +- .../websockets/StandartClientWebSocketService.java | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Launcher/src/main/java/pro/gravit/launcher/LauncherEngine.java b/Launcher/src/main/java/pro/gravit/launcher/LauncherEngine.java index c48bf6dd..47b571b7 100644 --- a/Launcher/src/main/java/pro/gravit/launcher/LauncherEngine.java +++ b/Launcher/src/main/java/pro/gravit/launcher/LauncherEngine.java @@ -113,13 +113,13 @@ public void start(String... args) throws Throwable { } }; } - LauncherGuardManager.initGuard(false); if(UpdateRequest.getController() == null) UpdateRequest.setController(new LauncherUpdateController()); Objects.requireNonNull(args, "args"); if (started.getAndSet(true)) throw new IllegalStateException("Launcher has been already started"); LauncherEngine.modulesManager.invokeEvent(new ClientEngineInitPhase(this)); runtimeProvider.preLoad(); + LauncherGuardManager.initGuard(false); FunctionalBridge.getHWID = CommonHelper.newThread("GetHWID Thread", true, FunctionalBridge::getHWID); FunctionalBridge.getHWID.start(); LogHelper.debug("Dir: %s", DirBridge.dir); diff --git a/LauncherAPI/src/main/java/pro/gravit/launcher/request/websockets/StandartClientWebSocketService.java b/LauncherAPI/src/main/java/pro/gravit/launcher/request/websockets/StandartClientWebSocketService.java index 0b9da5ab..f56717d9 100644 --- a/LauncherAPI/src/main/java/pro/gravit/launcher/request/websockets/StandartClientWebSocketService.java +++ b/LauncherAPI/src/main/java/pro/gravit/launcher/request/websockets/StandartClientWebSocketService.java @@ -7,6 +7,7 @@ import javax.net.ssl.SSLException; +import pro.gravit.launcher.events.ExceptionEvent; import pro.gravit.launcher.events.request.ErrorRequestEvent; import pro.gravit.launcher.request.Request; import pro.gravit.launcher.request.RequestException; @@ -67,6 +68,10 @@ public WebSocketEvent get() throws InterruptedException, ExecutionException { ErrorRequestEvent errorRequestEvent = (ErrorRequestEvent) event.result; throw new ExecutionException(new RequestException(errorRequestEvent.error)); } + if (event.result.getType().equals("exception")) { + ExceptionEvent error = (ExceptionEvent) event.result; + throw new ExecutionException(new RequestException(String.format("LaunchServer fatal error: %s: %s", error.clazz, error.message))); + } return result; } @@ -80,10 +85,14 @@ public WebSocketEvent get(long timeout, TimeUnit unit) throws InterruptedExcepti } WebSocketEvent result = event.result; waitEventHandler.requests.remove(event); - if (event.result.getType().equals("error") || event.result.getType().equals("exception")) { + if (event.result.getType().equals("error")) { ErrorRequestEvent errorRequestEvent = (ErrorRequestEvent) event.result; throw new ExecutionException(new RequestException(errorRequestEvent.error)); } + if (event.result.getType().equals("exception")) { + ExceptionEvent error = (ExceptionEvent) event.result; + throw new ExecutionException(new RequestException(String.format("LaunchServer fatal error: %s: %s", error.clazz, error.message))); + } return result; } }