[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