{"record":{"id":"62cf77cffc69b1b8","repo":"theonedev/onedev","slug":"there-is-no-http-session-bound-without-a-session","errorCode":null,"errorMessage":"There is no HTTP Session bound. Without a session Wicket won't be able to find the stored page to update its components","messagePattern":"There is no HTTP Session bound\\. Without a session Wicket won't be able to find the stored page to update its components","errorType":"exception","errorClass":"java.lang.IllegalStateException","httpStatus":null,"severity":"error","filePath":"server-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java","lineNumber":113,"sourceCode":"\tprivate final WebSocketSettings webSocketSettings;\n\tprivate final IWebSocketConnectionRegistry connectionRegistry;\n\tprivate final IWebSocketConnectionFilter connectionFilter;\n\tprivate final HttpServletRequest servletRequest;\n\n\t/**\n\t * Constructor.\n\t *\n\t * @param request\n\t *      the http request that was used to create the TomcatWebSocketProcessor\n\t * @param application\n\t *      the current Wicket Application\n\t */\n\tpublic AbstractWebSocketProcessor(final HttpServletRequest request, final WebApplication application)\n\t{\n\t\tfinal HttpSession httpSession = request.getSession(true);\n\t\tif (httpSession == null)\n\t\t{\n\t\t\tthrow new IllegalStateException(\"There is no HTTP Session bound. Without a session Wicket won't be \" +\n\t\t\t\t\t\"able to find the stored page to update its components\");\n\t\t}\n\t\tthis.sessionId = httpSession.getId();\n\n\t\tString pageId = request.getParameter(\"pageId\");\n\t\tresourceName = request.getParameter(\"resourceName\");\n\t\tif (Strings.isEmpty(pageId) && Strings.isEmpty(resourceName))\n\t\t{\n\t\t\tthrow new IllegalArgumentException(\"The request should have either 'pageId' or 'resourceName' parameter!\");\n\t\t}\n\t\tif (Strings.isEmpty(pageId) == false)\n\t\t{\n\t\t\tthis.pageId = Integer.parseInt(pageId, 10);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.pageId = NO_PAGE_ID;\n\t\t}","sourceCodeStart":95,"sourceCodeEnd":131,"githubUrl":"https://github.com/theonedev/onedev/blob/d44925c47c37992c828ea673a5f9620539bc3ff2/server-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java#L95-L131","documentation":"AbstractWebSocketProcessor's constructor requires an HTTP session to locate the stored Wicket page for component updates; when request.getSession(true) yields none, this IllegalStateException aborts the websocket processor creation.","triggerScenarios":"Thrown at server-core/src/main/java/org/apache/wicket/protocol/ws/api/AbstractWebSocketProcessor.java:113 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Ensure the websocket handshake request carries a valid HTTP session (cookies enabled).","Do not use stateful websocket pages without session support."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"d44925c47c37992c828ea673a5f9620539bc3ff2","analyzedAt":"2026-09-06T07:18:27.995Z","contentChangedAt":"2026-09-06T07:18:27.995Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}