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.

Reply via email to