[jboss-cvs] jboss-seam/src/main/org/jboss/seam/interceptors ...

Gavin King gavin.king at jboss.com
Wed Oct 11 17:41:29 EDT 2006


  User: gavin   
  Date: 06/10/11 17:41:29

  Modified:    src/main/org/jboss/seam/interceptors 
                        ExceptionInterceptor.java
  Log:
  better respect for JSF lifecycle
  
  Revision  Changes    Path
  1.10      +9 -16     jboss-seam/src/main/org/jboss/seam/interceptors/ExceptionInterceptor.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: ExceptionInterceptor.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/interceptors/ExceptionInterceptor.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -b -r1.9 -r1.10
  --- ExceptionInterceptor.java	2 Oct 2006 04:17:59 -0000	1.9
  +++ ExceptionInterceptor.java	11 Oct 2006 21:41:29 -0000	1.10
  @@ -1,4 +1,4 @@
  -//$Id: ExceptionInterceptor.java,v 1.9 2006/10/02 04:17:59 gavin Exp $
  +//$Id: ExceptionInterceptor.java,v 1.10 2006/10/11 21:41:29 gavin Exp $
   package org.jboss.seam.interceptors;
   
   import java.util.Map;
  @@ -48,35 +48,28 @@
         {
            if ( outermost && FacesContext.getCurrentInstance()!=null )
            {
  -            if ( e.getClass().isAnnotationPresent(Redirect.class) )
  +            if ( e.getClass().isAnnotationPresent(Redirect.class) && Lifecycle.getPhaseId()!=PhaseId.RENDER_RESPONSE )
               {
                  Redirect redirect = e.getClass().getAnnotation(Redirect.class);
                  addFacesMessage( e, redirect.message() );
                  redirect( redirect.viewId() );
                  handled(e);
               }
  -            else if ( e.getClass().isAnnotationPresent(Render.class) )
  -            {
  -               if ( Lifecycle.getPhaseId()!=PhaseId.INVOKE_APPLICATION )
  +            else if ( e.getClass().isAnnotationPresent(Render.class) && Lifecycle.getPhaseId()==PhaseId.INVOKE_APPLICATION )
                  {
                     //unfortunately, @Render can only really work during an action invocation
  -                  throw e;
  -               }
  -               else
  -               {
                     Render render = e.getClass().getAnnotation(Render.class);
                     addFacesMessage( e, render.message() );
                     render( render.viewId() );
                     return null;
                  }
  -            }
               else if ( e.getClass().isAnnotationPresent(HttpError.class) )
               {
                  HttpError httpError = e.getClass().getAnnotation(HttpError.class);
                  error( httpError.errorCode(), renderExceptionMessage( e, httpError.message() ) );
                  handled(e);
               }
  -            else if ( Init.instance().isDebug() )
  +            else if ( Init.instance().isDebug() && Lifecycle.getPhaseId()!=PhaseId.RENDER_RESPONSE )
               {
                  redirectToDebugPage(e);
                  handled(e);
  
  
  



More information about the jboss-cvs-commits mailing list