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..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 @@ -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,37 @@ 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); + 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); + try { + manager.getSession(exchange, null); + } 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."); + } + } + } }