HttpRequestWrapper extends HttpServletRequestWrapper implements RequestWithSession { @Override public RepositoryBackedHttpSession getRepositoryBackedSession(boolean create) { if (committed) { throw new IllegalStateException("Session was already committed."); } boolean wasNotCreated = session == null; retrieveSessionIfNeeded(create); if (wasNotCreated && propagateOnCreate) { doPropagateAndStoreIfFirstWrapper(); } return session; } HttpRequestWrapper(HttpServletRequest req, ServletContext servletContext); @Override RepositoryBackedHttpSession getSession(); @Override RepositoryBackedHttpSession getSession(boolean create); SessionManager getManager(); HttpResponseWrapper getResponse(); void setResponse(HttpResponseWrapper response); void commit(); @Override RepositoryBackedHttpSession getRepositoryBackedSession(boolean create); @Override ServletContext getServletContext(); HttpRequestWrapper getEmbeddedRequest(); boolean isPropagateOnCreate(); void setPropagateOnCreate(boolean propagate); @Override boolean isIdRetrieved(); @Override void setRequestedSessionId(String id, boolean isFromCookie); @Override String getRequestedSessionId(); @Override boolean isRequestedSessionIdFromCookie(); @Override boolean isRequestedSessionIdFromURL(); @Override boolean isRequestedSessionIdFromUrl(); @Override boolean isRequestedSessionIdValid(); @Override boolean isRepositoryChecked(); @Override void repositoryChecked(); String encodeURL(String url); @Override String changeSessionId();  }
@Test(expected=IllegalStateException.class) public void testGetSessionOnCommitted() { HttpServletRequest wrappedSimple = mock(HttpServletRequest.class); HttpRequestWrapper req = new HttpRequestWrapper(wrappedSimple, servletContext); req.committed = true; req.getRepositoryBackedSession(false); }