GravitLauncher / Launcher

Улучшеный Minecraft лаунчер на основе sashok's742 v3
https://gravitlauncher.com
GNU General Public License v3.0
127 stars 105 forks source link

Ошибка при попытке разлогина когда пользователь не вошёл #683

Closed Veritaris closed 5 months ago

Veritaris commented 9 months ago

Версия LaunchServer: v5.4.3.1-stable

При WebSocket-запросе

{
    "type": "exit",
    "reason": "CLIENT"
}

из не залогиненного лаунчера возвращается ответ

{
    "error": "Fatal server error. Contact administrator",
    "type": "error"
}

И в самом LS ошибка

java.lang.NullPointerException: Cannot read field "core" because "client.auth" is null
    at pro.gravit.launchserver.socket.response.auth.ExitResponse.execute(ExitResponse.java:55) ~[LaunchServer.jar:?]
    at pro.gravit.launchserver.socket.WebSocketService.process(WebSocketService.java:142) ~[LaunchServer.jar:?]
    at pro.gravit.launchserver.socket.WebSocketService.process(WebSocketService.java:126) ~[LaunchServer.jar:?]
    at pro.gravit.launchserver.socket.handlers.WebSocketFrameHandler.channelRead0(WebSocketFrameHandler.java:71) ~[LaunchServer.jar:?]
    at pro.gravit.launchserver.socket.handlers.WebSocketFrameHandler.channelRead0(WebSocketFrameHandler.java:20) ~[LaunchServer.jar:?]

ИМХО в этом случае правильнее будет отдельно обрабатывать данный кейс и возвращать ошибку вида

{
    "error": "Cannot logout - you are not logged in",
    "type": "error"
}
microwin7 commented 5 months ago

Версия LaunchServer: v5.4.3.1-stable

При WebSocket-запросе

{
    "type": "exit",
    "reason": "CLIENT"
}

из не залогиненного лаунчера возвращается ответ

{
    "error": "Fatal server error. Contact administrator",
    "type": "error"
}

И в самом LS ошибка

java.lang.NullPointerException: Cannot read field "core" because "client.auth" is null
  at pro.gravit.launchserver.socket.response.auth.ExitResponse.execute(ExitResponse.java:55) ~[LaunchServer.jar:?]
  at pro.gravit.launchserver.socket.WebSocketService.process(WebSocketService.java:142) ~[LaunchServer.jar:?]
  at pro.gravit.launchserver.socket.WebSocketService.process(WebSocketService.java:126) ~[LaunchServer.jar:?]
  at pro.gravit.launchserver.socket.handlers.WebSocketFrameHandler.channelRead0(WebSocketFrameHandler.java:71) ~[LaunchServer.jar:?]
  at pro.gravit.launchserver.socket.handlers.WebSocketFrameHandler.channelRead0(WebSocketFrameHandler.java:20) ~[LaunchServer.jar:?]

ИМХО в этом случае правильнее будет отдельно обрабатывать данный кейс и возвращать ошибку вида

{
    "error": "Cannot logout - you are not logged in",
    "type": "error"
}

Это известная ошибка, но она не будет происходить если лаунчсервер настроен верно. И такие службы как База Данных в рабочем состоянии. Пока что никак не планируется изменяться. Плюс это сделано и специально, для не предоставления пользователям ненужной им информации. Могу посоветовать установить Sentry и настроить оповещения, если подобные проблемы имеют место быть.

microwin7 commented 5 months ago

Если я неправильно понял ошибку, просьба откликнуться, так как не представляю как это может вызываться и когда. Для открытия снова Issue и поиске решения