Index: jsf-api/src/main/java/javax/faces/webapp/FacesServlet.java =================================================================== --- jsf-api/src/main/java/javax/faces/webapp/FacesServlet.java (revision 8821) +++ jsf-api/src/main/java/javax/faces/webapp/FacesServlet.java (working copy) @@ -196,7 +196,13 @@ */ private ServletConfig servletConfig = null; + /** + * From JAVASERVERFACES-1914. If true, the FacesContext instance + * left over from startup time has been released. + */ + private boolean initFacesContextReleased = false; + /** *

Release all resources acquired at startup time.

*/ @@ -379,7 +385,15 @@ sendError(HttpServletResponse.SC_NOT_FOUND); return; } - } + } + + if (!initFacesContextReleased) { + FacesContext initFacesContext = FacesContext.getCurrentInstance(); + if (null != initFacesContext) { + initFacesContext.release(); + } + initFacesContextReleased = true; + } // Acquire the FacesContext instance for this request FacesContext context = facesContextFactory.getFacesContext Index: jsf-ri/src/main/java/com/sun/faces/config/ConfigureListener.java =================================================================== --- jsf-ri/src/main/java/com/sun/faces/config/ConfigureListener.java (revision 8821) +++ jsf-ri/src/main/java/com/sun/faces/config/ConfigureListener.java (working copy) @@ -282,7 +282,6 @@ } finally { Verifier.setCurrentInstance(null); - initContext.release(); if (LOGGER.isLoggable(Level.FINE)) { LOGGER.log(Level.FINE, "jsf.config.listener.version.complete");