From d86fbd7d25085abdc564f3632acfac9c1993ccf3 Mon Sep 17 00:00:00 2001 From: mslovik Date: Mon, 30 Oct 2023 09:28:41 +0100 Subject: [PATCH 1/2] Add test case for UNDERTOW-2316 --- .../session/InMemorySessionTestCase.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/core/src/test/java/io/undertow/server/handlers/session/InMemorySessionTestCase.java b/core/src/test/java/io/undertow/server/handlers/session/InMemorySessionTestCase.java index eb29688ed8..b6d16448eb 100644 --- a/core/src/test/java/io/undertow/server/handlers/session/InMemorySessionTestCase.java +++ b/core/src/test/java/io/undertow/server/handlers/session/InMemorySessionTestCase.java @@ -20,6 +20,7 @@ import java.io.IOException; +import io.undertow.UndertowMessages; import io.undertow.server.HttpHandler; import io.undertow.server.HttpServerExchange; import io.undertow.server.session.InMemorySessionManager; @@ -249,4 +250,30 @@ public void run() { client.getConnectionManager().shutdown(); } } + + @Test + public void inMemorySessionNoConfigTest() throws IOException { + try (TestHttpClient client = new TestHttpClient()) { + client.setCookieStore(new BasicCookieStore()); + + final SessionAttachmentHandler handler = new SessionAttachmentHandler(new InMemorySessionManager(""), null); + handler.setNext(new HttpHandler() { + @Override + public void handleRequest(final HttpServerExchange exchange) throws Exception { + final SessionManager manager = exchange.getAttachment(SessionManager.ATTACHMENT_KEY); + + IllegalStateException thrown = Assert.assertThrows(IllegalStateException.class, () -> { + manager.getSession(exchange, null); + }); + + Assert.assertEquals(UndertowMessages.MESSAGES.couldNotFindSessionCookieConfig().getCause(), thrown.getCause()); + Assert.assertEquals(UndertowMessages.MESSAGES.couldNotFindSessionCookieConfig().getMessage(), thrown.getMessage()); + } + }); + DefaultServer.setRootHandler(handler); + + HttpGet get = new HttpGet(DefaultServer.getDefaultServerURL() + "/notamatchingpath"); + client.execute(get); + } + } } From fa60439332e3d3af9b929c4c8faf6824f110a25d Mon Sep 17 00:00:00 2001 From: mslovik Date: Fri, 15 Dec 2023 12:25:36 +0100 Subject: [PATCH 2/2] Fix assertion scope --- .../session/InMemorySessionTestCase.java | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/core/src/test/java/io/undertow/server/handlers/session/InMemorySessionTestCase.java b/core/src/test/java/io/undertow/server/handlers/session/InMemorySessionTestCase.java index b6d16448eb..90f09d12a9 100644 --- a/core/src/test/java/io/undertow/server/handlers/session/InMemorySessionTestCase.java +++ b/core/src/test/java/io/undertow/server/handlers/session/InMemorySessionTestCase.java @@ -257,23 +257,30 @@ public void inMemorySessionNoConfigTest() throws IOException { client.setCookieStore(new BasicCookieStore()); final SessionAttachmentHandler handler = new SessionAttachmentHandler(new InMemorySessionManager(""), null); + final Throwable[] thrown = {null}; handler.setNext(new HttpHandler() { @Override public void handleRequest(final HttpServerExchange exchange) throws Exception { final SessionManager manager = exchange.getAttachment(SessionManager.ATTACHMENT_KEY); - - IllegalStateException thrown = Assert.assertThrows(IllegalStateException.class, () -> { + try { manager.getSession(exchange, null); - }); - - Assert.assertEquals(UndertowMessages.MESSAGES.couldNotFindSessionCookieConfig().getCause(), thrown.getCause()); - Assert.assertEquals(UndertowMessages.MESSAGES.couldNotFindSessionCookieConfig().getMessage(), thrown.getMessage()); + } catch (Throwable t) { + thrown[0] = t; + } } }); DefaultServer.setRootHandler(handler); HttpGet get = new HttpGet(DefaultServer.getDefaultServerURL() + "/notamatchingpath"); client.execute(get); + + if (thrown[0] != null) { + Assert.assertTrue(thrown[0] instanceof IllegalStateException); + Assert.assertEquals(UndertowMessages.MESSAGES.couldNotFindSessionCookieConfig().getCause(), thrown[0].getCause()); + Assert.assertEquals(UndertowMessages.MESSAGES.couldNotFindSessionCookieConfig().getMessage(), thrown[0].getMessage()); + } else { + Assert.fail("No exception was thrown."); + } } } }