From f95d9174f1d1df665aa4d89932c906e76b93f8a2 Mon Sep 17 00:00:00 2001 From: Lars Simon Winzer Date: Thu, 2 Apr 2026 13:44:51 +0200 Subject: [PATCH] Add: Handle MissingParameterException in SessionReader and respond to request --- .../cs108/casono/server/network/sessions/SessionReader.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/sessions/SessionReader.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/sessions/SessionReader.java index 6fb4378..e199e0e 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/sessions/SessionReader.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/server/network/sessions/SessionReader.java @@ -12,6 +12,7 @@ import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.request.Primitive import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.request.RawRequest; import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.request.Request; import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.request.RequestContext; +import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.request.accessor.MissingParameterException; import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.response.ErrorResponse; import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.response.PrimitiveResponse; import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.response.dispatcher.ResponseDispatchException; @@ -94,6 +95,10 @@ public class SessionReader implements Runnable { "Unexpected ResponseDispatchException exception while dispatching request", e); + } catch (MissingParameterException e) { + logger.error("Recieved request for command '{}' was missing the '{}' parameter", rawRequest.command(), e.getParameterKey()); + sendErrorResponse(new ErrorResponse(requestContext, "MISSING_PARAMETER", e.getMessage())); + } catch (IOException e) { logger.error("Unexpected IO exception while reading from transport", e);