Refactor: Use RequestContext in SessionReader when instantiating responses

This commit is contained in:
Lars Simon Winzer
2026-03-31 20:32:11 +02:00
parent 665e006b89
commit 34d782e252
@@ -46,11 +46,13 @@ public class SessionReader implements Runnable {
while (!Thread.currentThread().isInterrupted()) { while (!Thread.currentThread().isInterrupted()) {
RawPacket rawPacket = null; RawPacket rawPacket = null;
RawRequest rawRequest = null; RawRequest rawRequest = null;
RequestContext requestContext = null;
try { try {
// Step 1: Read from transport // Step 1: Read from transport
rawPacket = transport.read(); rawPacket = transport.read();
session.updateLastInboundActivity(); session.updateLastInboundActivity();
logger.debug("Recieved: {}", rawPacket); logger.debug("Recieved: {}", rawPacket);
requestContext = new RequestContext(session.getId(), rawPacket.requestId());
// Step 2: Syntax validation and conversion into transport object // Step 2: Syntax validation and conversion into transport object
rawRequest = ProtocolParser.parse(rawPacket.payload()); rawRequest = ProtocolParser.parse(rawPacket.payload());
@@ -58,9 +60,7 @@ public class SessionReader implements Runnable {
PrimitiveRequest primitiveRequest = PrimitiveRequest primitiveRequest =
new PrimitiveRequest( new PrimitiveRequest(
new RequestContext(session.getId(), rawPacket.requestId()), requestContext, rawRequest.command(), rawRequest.parameters());
rawRequest.command(),
rawRequest.parameters());
logger.debug("Converted to {}", primitiveRequest); logger.debug("Converted to {}", primitiveRequest);
// Step 3: Parse into Request and execute Request // Step 3: Parse into Request and execute Request
@@ -76,8 +76,7 @@ public class SessionReader implements Runnable {
sendErrorResponse( sendErrorResponse(
new ErrorResponse( new ErrorResponse(
session.getId(), requestContext,
rawPacket.requestId(),
"PARSING_ERROR", "PARSING_ERROR",
"Error occured during parsing. Likely due to malformed payload.")); "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); logger.error("Recieved unknown command '{}' from client", rawRequest.command(), e);
sendErrorResponse( sendErrorResponse(
new ErrorResponse( new ErrorResponse(
session.getId(), requestContext,
rawPacket.requestId(),
"UNKNOWN_COMMAND", "UNKNOWN_COMMAND",
"This command is unknown to the server.")); "This command is unknown to the server."));
@@ -97,8 +95,7 @@ public class SessionReader implements Runnable {
logger.error("Unexpected RuntimeException occured", e); logger.error("Unexpected RuntimeException occured", e);
sendErrorResponse( sendErrorResponse(
new ErrorResponse( new ErrorResponse(
session.getId(), requestContext,
rawPacket.requestId(),
"INTERNAL_ERROR", "INTERNAL_ERROR",
"Unexpected internal server error occured.")); "Unexpected internal server error occured."));
} }