3 Replies Latest reply on Jan 16, 2009 6:21 PM by jguglielmin

    Not redirecting to error page

    cinconnu

      Hi,


      I am using Seam 2.1.1 and Icefaces 1.7.2.
      I have a page /myapp/mypage.seam in a long running conversation (id is C). I put a button on it which calls an action which trows a MyException.



      <exception class="com.MyException" severity="ERROR">
          <redirect view-id="/commons/error.xhtml">
              <message severity="error">blah</message>
          </redirect>
      </exception>



      When fired, the URL does not change, that is:



      • displayed url is still /myapp/mypage.seam page with the same cid (C)

      • if i display conversation.viewId i got /commons/error.xhtml and conversation.id is C+1



      My questions:




      1. is it normal that the url does not change

      2. i don't want to end the conversation or start another one, is it possible



      Thanks for your help


      David

        • 1. Re: Not redirecting to error page
          jguglielmin

          1. Yes that is normal.  You can hit refresh, to take you back to the original page that generated the exception (without having to redirect again).  Also, for portal development, this also seemed preferrable.


          2. Not sure what you mean by this, but if you hit enter on the url, you should see that your conversation is still active.


          Recommended version is ICEfaces-1.7.2.SP1 for Seam (rather than 1.7.2).

          • 2. Re: Not redirecting to error page
            cinconnu

            Thanks for your answer. In fact i'm using SP1.
            When i hit refresh from the error page, i got :



            15:07:53,062 WARN  [SeamPhaseListener] uncaught exception, passing to exception handler
            org.jboss.seam.ConcurrentRequestTimeoutException: Concurrent call to conversation
                 at org.jboss.seam.core.Manager.restoreAndLockConversation(Manager.java:641)
                 at org.jboss.seam.core.Manager.restoreConversation(Manager.java:603)
                 at org.jboss.seam.jsf.SeamPhaseListener.afterRestoreView(SeamPhaseListener.java:390)
                 at org.jboss.seam.jsf.SeamPhaseListener.afterServletPhase(SeamPhaseListener.java:228)
                 at org.jboss.seam.jsf.SeamPhaseListener.afterPhase(SeamPhaseListener.java:194)
                 at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:280)
                 at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
                 at com.icesoft.faces.webapp.http.core.JsfLifecycleExecutor.apply(JsfLifecycleExecutor.java:17)
                 at com.icesoft.faces.context.View$2.respond(View.java:44)
                 at com.icesoft.faces.webapp.http.servlet.ServletRequestResponse.respondWith(ServletRequestResponse.java:167)
                 at com.icesoft.faces.webapp.http.servlet.ThreadBlockingAdaptingServlet$ThreadBlockingRequestResponse.respondWith(ThreadBlockingAdaptingServlet.java:36)
                 at com.icesoft.faces.context.View.servePage(View.java:274)
                 at com.icesoft.faces.webapp.http.core.MultiViewServer.service(MultiViewServer.java:62)
                 at com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer.service(PathDispatcherServer.java:24)
                 at com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet.service(MainSessionBoundServlet.java:160)
                 at com.icesoft.faces.webapp.http.servlet.SessionDispatcher$1.service(SessionDispatcher.java:38)
                 at com.icesoft.faces.webapp.http.servlet.ThreadBlockingAdaptingServlet.service(ThreadBlockingAdaptingServlet.java:19)
                 at com.icesoft.faces.webapp.http.servlet.EnvironmentAdaptingServlet.service(EnvironmentAdaptingServlet.java:63)
                 at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:55)
                 at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:23)
                 at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:91)
                 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
                 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
                 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                 at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
                 at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
                 at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
                 at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
                 at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
                 at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40)
                 at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
                 at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
                 at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
                 at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
                 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                 at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
                 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
                 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
                 at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
                 at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
                 at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
                 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
                 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
                 at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
                 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
                 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
                 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
                 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
                 at java.lang.Thread.run(Thread.java:595)



            thanks

            • 3. Re: Not redirecting to error page
              jguglielmin

              I suspect something about the way you are handling your redirection/conversation propagation. Have you tried the example that is attached to ICEfaces jira 2990 ?