From 34d782e252e2509013fe30a7434a3895696db144 Mon Sep 17 00:00:00 2001 From: Lars Simon Winzer Date: Tue, 31 Mar 2026 20:32:11 +0200 Subject: [PATCH] Refactor: Use RequestContext in SessionReader when instantiating responses --- .../server/network/sessions/SessionReader.java | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) 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 d7f6cdf..9fba8ae 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 @@ -46,11 +46,13 @@ public class SessionReader implements Runnable { while (!Thread.currentThread().isInterrupted()) { RawPacket rawPacket = null; RawRequest rawRequest = null; + RequestContext requestContext = null; try { // Step 1: Read from transport rawPacket = transport.read(); session.updateLastInboundActivity(); logger.debug("Recieved: {}", rawPacket); + requestContext = new RequestContext(session.getId(), rawPacket.requestId()); // Step 2: Syntax validation and conversion into transport object rawRequest = ProtocolParser.parse(rawPacket.payload()); @@ -58,9 +60,7 @@ public class SessionReader implements Runnable { PrimitiveRequest primitiveRequest = new PrimitiveRequest( - new RequestContext(session.getId(), rawPacket.requestId()), - rawRequest.command(), - rawRequest.parameters()); + requestContext, rawRequest.command(), rawRequest.parameters()); logger.debug("Converted to {}", primitiveRequest); // Step 3: Parse into Request and execute Request @@ -76,8 +76,7 @@ public class SessionReader implements Runnable { sendErrorResponse( new ErrorResponse( - session.getId(), - rawPacket.requestId(), + requestContext, "PARSING_ERROR", "Error occured during parsing. Likely due to malformed payload.")); @@ -85,8 +84,7 @@ public class SessionReader implements Runnable { logger.error("Recieved unknown command '{}' from client", rawRequest.command(), e); sendErrorResponse( new ErrorResponse( - session.getId(), - rawPacket.requestId(), + requestContext, "UNKNOWN_COMMAND", "This command is unknown to the server.")); @@ -97,8 +95,7 @@ public class SessionReader implements Runnable { logger.error("Unexpected RuntimeException occured", e); sendErrorResponse( new ErrorResponse( - session.getId(), - rawPacket.requestId(), + requestContext, "INTERNAL_ERROR", "Unexpected internal server error occured.")); }