You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by omidh <om...@gmx.de> on 2007/05/16 13:55:41 UTC

IllegalStateException: FacesContext already released

Hi again.... :)

I have a little question about receiving the FacesContext from a Servelt...
so my problem is - sometimes (only sometimes, but often enough ;) ) when
click on a file
to download I get the following error:

2007-05-16 17:20:28,812 ERROR
[org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/MileStoneBeta].[FileServlet]]
- Servlet.service() for servlet FileServlet threw exception
java.lang.IllegalStateException: FacesContext already released
	at
org.apache.myfaces.context.servlet.ServletFacesContextImpl.getApplication(ServletFacesContextImpl.java:127)
	at main.org.jboss.portlet.milestone.servlet.FileServlet.doGet(Unknown
Source)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
	at
org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
	at
org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
	at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
	at
org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
	at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
	at
org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
	at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
	at
org.acegisecurity.context.PortletSessionContextIntegrationInterceptor.doFilter(Unknown
Source)
	at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
	at
org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
	at
org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
	at
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
	at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
	at java.lang.Thread.run(Thread.java:619)

At the moment I try to resolve the FacesContext these way:

protected FacesContext getFacesContext(HttpServletRequest request,
			HttpServletResponse response) {
		FacesContext facesContext = FacesContext.getCurrentInstance();
		if (facesContext == null) {
			logger.debug("~~~~~~~~~~~~~~~~~~~ FacesContext is null, trying another
way...");
			FacesContextFactory contextFactory = (FacesContextFactory) FactoryFinder
					.getFactory(FactoryFinder.FACES_CONTEXT_FACTORY);
			LifecycleFactory lifecycleFactory = (LifecycleFactory) FactoryFinder
					.getFactory(FactoryFinder.LIFECYCLE_FACTORY);
			Lifecycle lifecycle = lifecycleFactory
					.getLifecycle(LifecycleFactory.DEFAULT_LIFECYCLE);

			facesContext = contextFactory.getFacesContext(request.getSession()
					.getServletContext(), request, response, lifecycle);
		}
		return facesContext;
	}

and here the Error happens:

protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

		FacesContext fctx = getFacesContext(request, response);
		if (fctx == null)
			logger.fatal("FacesContext is null");
		
		ValueBinding bind = FacesContext.getCurrentInstance().getApplication()
				.createValueBinding("#{facadeService}");
		if (bind == null)
			logger.fatal("ValueBinding is null");
...
} 

any advice???

thanks in advance,

Omid
-- 
View this message in context: http://www.nabble.com/IllegalStateException%3A-FacesContext-already-released-tf3764150.html#a10640324
Sent from the MyFaces - Users mailing list archive at Nabble.com.