From 1ebaab219a390e7781d2b8aaee1209e6fd79432e Mon Sep 17 00:00:00 2001 From: Vinod Kumar Date: Tue, 15 Sep 2026 17:08:06 +0530 Subject: [PATCH] Fix HTTP session timestamp units Signed-off-by: Vinod Kumar --- .../serverless/proxy/internal/servlet/AwsHttpSession.java | 6 +++--- .../proxy/internal/servlet/AwsHttpSessionTest.java | 8 +++++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpSession.java b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpSession.java index 2163320d..3c3efaf0 100644 --- a/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpSession.java +++ b/aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpSession.java @@ -50,7 +50,7 @@ public AwsHttpSession(String id) { } this.id = id; attributes = new HashMap<>(); - creationTime = Instant.now().getEpochSecond(); + creationTime = Instant.now().toEpochMilli(); maxInactiveInterval = SESSION_DURATION_SEC; lastAccessedTime = creationTime; valid = true; @@ -122,11 +122,11 @@ public boolean isNew() { } private void touch() { - lastAccessedTime = Instant.now().getEpochSecond(); + lastAccessedTime = Instant.now().toEpochMilli(); } boolean isValid() { - if (lastAccessedTime - creationTime < maxInactiveInterval) { + if (lastAccessedTime - creationTime < maxInactiveInterval * 1000L) { return valid; } else { return false; diff --git a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpSessionTest.java b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpSessionTest.java index bcca83dd..d99c9cda 100644 --- a/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpSessionTest.java +++ b/aws-serverless-java-container-core/src/test/java/com/amazonaws/serverless/proxy/internal/servlet/AwsHttpSessionTest.java @@ -28,8 +28,14 @@ void new_withValidId_setsIdCorrectly() { @Test void new_creationTimePopulatedCorrectly() { + long beforeCreation = Instant.now().toEpochMilli(); + AwsHttpSession session = new AwsHttpSession("id"); - assertTrue(session.getCreationTime() > Instant.now().getEpochSecond() - 1); + + long afterCreation = Instant.now().toEpochMilli(); + + assertTrue(session.getCreationTime() >= beforeCreation); + assertTrue(session.getCreationTime() <= afterCreation); assertEquals(AwsHttpSession.SESSION_DURATION_SEC, session.getMaxInactiveInterval()); assertEquals(session.getLastAccessedTime(), session.getCreationTime()); }