You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by cr...@locus.apache.org on 2000/10/13 01:00:33 UTC

cvs commit: jakarta-struts/src/share/org/apache/struts/taglib/logic CompareTagBase.java ForwardTag.java IterateTag.java MatchTag.java PresentTag.java RedirectTag.java

craigmcc    00/10/12 16:00:33

  Modified:    src/share/org/apache/struts/taglib/logic CompareTagBase.java
                        ForwardTag.java IterateTag.java MatchTag.java
                        PresentTag.java RedirectTag.java
  Log:
  When getting ready to throw a JspException, store an instance of the
  "real" underlying exception as a request attribute, where relevant.  When
  the underlying exception is an InvocationTargetException, also look up the
  target exception that was actually thrown.
  
  Revision  Changes    Path
  1.2       +18 -4     jakarta-struts/src/share/org/apache/struts/taglib/logic/CompareTagBase.java
  
  Index: CompareTagBase.java
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/logic/CompareTagBase.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- CompareTagBase.java	2000/09/07 01:35:35	1.1
  +++ CompareTagBase.java	2000/10/12 23:00:31	1.2
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/logic/CompareTagBase.java,v 1.1 2000/09/07 01:35:35 craigmcc Exp $
  - * $Revision: 1.1 $
  - * $Date: 2000/09/07 01:35:35 $
  + * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/logic/CompareTagBase.java,v 1.2 2000/10/12 23:00:31 craigmcc Exp $
  + * $Revision: 1.2 $
  + * $Date: 2000/10/12 23:00:31 $
    *
    * ====================================================================
    *
  @@ -63,9 +63,12 @@
   package org.apache.struts.taglib.logic;
   
   
  +import java.lang.reflect.InvocationTargetException;
   import javax.servlet.http.Cookie;
   import javax.servlet.http.HttpServletRequest;
   import javax.servlet.jsp.JspException;
  +import javax.servlet.jsp.PageContext;
  +import org.apache.struts.action.Action;
   import org.apache.struts.util.BeanUtils;
   import org.apache.struts.util.PropertyUtils;
   
  @@ -75,7 +78,7 @@
    * define values for desired1 and desired2.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.1 $ $Date: 2000/09/07 01:35:35 $
  + * @version $Revision: 1.2 $ $Date: 2000/10/12 23:00:31 $
    */
   
   public abstract class CompareTagBase extends ConditionalTagBase {
  @@ -212,7 +215,18 @@
                           (messages.getMessage("logic.bean", name));
                   try {
                       variable = PropertyUtils.getProperty(bean, property);
  +                } catch (InvocationTargetException e) {
  +                    Throwable t = e.getTargetException();
  +                    if (t == null)
  +                        t = e;
  +                    pageContext.setAttribute(Action.EXCEPTION_KEY, t,
  +                                             PageContext.REQUEST_SCOPE);
  +                    throw new JspException
  +                        (messages.getMessage("logic.property", name, property,
  +                                             t.toString()));
                   } catch (Throwable t) {
  +                    pageContext.setAttribute(Action.EXCEPTION_KEY, t,
  +                                             PageContext.REQUEST_SCOPE);
                       throw new JspException
                           (messages.getMessage("logic.property", name, property,
                                                t.toString()));
  
  
  
  1.2       +8 -4      jakarta-struts/src/share/org/apache/struts/taglib/logic/ForwardTag.java
  
  Index: ForwardTag.java
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/logic/ForwardTag.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ForwardTag.java	2000/09/07 01:35:35	1.1
  +++ ForwardTag.java	2000/10/12 23:00:32	1.2
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/logic/ForwardTag.java,v 1.1 2000/09/07 01:35:35 craigmcc Exp $
  - * $Revision: 1.1 $
  - * $Date: 2000/09/07 01:35:35 $
  + * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/logic/ForwardTag.java,v 1.2 2000/10/12 23:00:32 craigmcc Exp $
  + * $Revision: 1.2 $
  + * $Date: 2000/10/12 23:00:32 $
    *
    * ====================================================================
    *
  @@ -80,7 +80,7 @@
    * ActionForwards collection associated with our application.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.1 $ $Date: 2000/09/07 01:35:35 $
  + * @version $Revision: 1.2 $ $Date: 2000/10/12 23:00:32 $
    */
   
   public final class ForwardTag extends TagSupport {
  @@ -154,6 +154,8 @@
   	    try {
   		response.sendRedirect(response.encodeRedirectURL(path));
   	    } catch (Exception e) {
  +                pageContext.setAttribute(Action.EXCEPTION_KEY, e,
  +                                         PageContext.REQUEST_SCOPE);
   		throw new JspException
   		    (messages.getMessage("forward.redirect",
   					 name, e.toString()));
  @@ -162,6 +164,8 @@
   	    try {
   		pageContext.forward(path);
   	    } catch (Exception e) {
  +                pageContext.setAttribute(Action.EXCEPTION_KEY, e,
  +                                         PageContext.REQUEST_SCOPE);
   		throw new JspException
   		    (messages.getMessage("forward.forward",
   					 name, e.toString()));
  
  
  
  1.2       +15 -4     jakarta-struts/src/share/org/apache/struts/taglib/logic/IterateTag.java
  
  Index: IterateTag.java
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/logic/IterateTag.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- IterateTag.java	2000/09/07 01:35:35	1.1
  +++ IterateTag.java	2000/10/12 23:00:32	1.2
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/logic/IterateTag.java,v 1.1 2000/09/07 01:35:35 craigmcc Exp $
  - * $Revision: 1.1 $
  - * $Date: 2000/09/07 01:35:35 $
  + * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/logic/IterateTag.java,v 1.2 2000/10/12 23:00:32 craigmcc Exp $
  + * $Revision: 1.2 $
  + * $Date: 2000/10/12 23:00:32 $
    *
    * ====================================================================
    *
  @@ -73,6 +73,7 @@
   import javax.servlet.jsp.JspWriter;
   import javax.servlet.jsp.PageContext;
   import javax.servlet.jsp.tagext.BodyTagSupport;
  +import org.apache.struts.action.Action;
   import org.apache.struts.util.MessageResources;
   import org.apache.struts.util.PropertyUtils;
   
  @@ -87,7 +88,7 @@
    * <b>NOTE</b> - This tag requires a Java2 (JDK 1.2 or later) platform.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.1 $ $Date: 2000/09/07 01:35:35 $
  + * @version $Revision: 1.2 $ $Date: 2000/10/12 23:00:32 $
    */
   
   public final class IterateTag extends BodyTagSupport {
  @@ -260,14 +261,22 @@
   			(messages.getMessage("iterate.property",
                                                name, property));
   	    } catch (IllegalAccessException e) {
  +                pageContext.setAttribute(Action.EXCEPTION_KEY, e,
  +                                         PageContext.REQUEST_SCOPE);
   		throw new JspException
   		    (messages.getMessage("iterate.access", name, property));
   	    } catch (InvocationTargetException e) {
   		Throwable t = e.getTargetException();
  +                if (t == null)
  +                    t = e;
  +                pageContext.setAttribute(Action.EXCEPTION_KEY, t,
  +                                         PageContext.REQUEST_SCOPE);
   		throw new JspException
   		    (messages.getMessage("iterate.target",
   					 name, property, t.toString()));
   	    } catch (NoSuchMethodException e) {
  +                pageContext.setAttribute(Action.EXCEPTION_KEY, e,
  +                                         PageContext.REQUEST_SCOPE);
   		throw new JspException
   		    (messages.getMessage("iterate.method", name, property));
   	    }
  @@ -357,6 +366,8 @@
   		out.print(bodyContent.getString());
                   bodyContent.clearBody();
   	    } catch (IOException e) {
  +                pageContext.setAttribute(Action.EXCEPTION_KEY, e,
  +                                         PageContext.REQUEST_SCOPE);
   		throw new JspException
   		    (messages.getMessage("iterate.io", e.toString()));
   	    }
  
  
  
  1.2       +18 -4     jakarta-struts/src/share/org/apache/struts/taglib/logic/MatchTag.java
  
  Index: MatchTag.java
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/logic/MatchTag.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- MatchTag.java	2000/09/07 01:35:36	1.1
  +++ MatchTag.java	2000/10/12 23:00:32	1.2
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/logic/MatchTag.java,v 1.1 2000/09/07 01:35:36 craigmcc Exp $
  - * $Revision: 1.1 $
  - * $Date: 2000/09/07 01:35:36 $
  + * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/logic/MatchTag.java,v 1.2 2000/10/12 23:00:32 craigmcc Exp $
  + * $Revision: 1.2 $
  + * $Date: 2000/10/12 23:00:32 $
    *
    * ====================================================================
    *
  @@ -63,9 +63,12 @@
   package org.apache.struts.taglib.logic;
   
   
  +import java.lang.reflect.InvocationTargetException;
   import javax.servlet.http.Cookie;
   import javax.servlet.http.HttpServletRequest;
   import javax.servlet.jsp.JspException;
  +import javax.servlet.jsp.PageContext;
  +import org.apache.struts.action.Action;
   import org.apache.struts.util.BeanUtils;
   import org.apache.struts.util.PropertyUtils;
   
  @@ -75,7 +78,7 @@
    * is a substring of the specified variable.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.1 $ $Date: 2000/09/07 01:35:36 $
  + * @version $Revision: 1.2 $ $Date: 2000/10/12 23:00:32 $
    */
   
   public class MatchTag extends ConditionalTagBase {
  @@ -186,7 +189,18 @@
                   Object propertyValue = null;
                   try {
                       propertyValue = PropertyUtils.getProperty(bean, property);
  +                } catch (InvocationTargetException e) {
  +                    Throwable t = e.getTargetException();
  +                    if (t == null)
  +                        t = e;
  +                    pageContext.setAttribute(Action.EXCEPTION_KEY, t,
  +                                             PageContext.REQUEST_SCOPE);
  +                    throw new JspException
  +                        (messages.getMessage("logic.property", name, property,
  +                                             t.toString()));
                   } catch (Throwable t) {
  +                    pageContext.setAttribute(Action.EXCEPTION_KEY, t,
  +                                             PageContext.REQUEST_SCOPE);
                       throw new JspException
                           (messages.getMessage("logic.property", name, property,
                                                t.toString()));
  
  
  
  1.2       +18 -4     jakarta-struts/src/share/org/apache/struts/taglib/logic/PresentTag.java
  
  Index: PresentTag.java
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/logic/PresentTag.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- PresentTag.java	2000/09/07 01:35:36	1.1
  +++ PresentTag.java	2000/10/12 23:00:32	1.2
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/logic/PresentTag.java,v 1.1 2000/09/07 01:35:36 craigmcc Exp $
  - * $Revision: 1.1 $
  - * $Date: 2000/09/07 01:35:36 $
  + * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/logic/PresentTag.java,v 1.2 2000/10/12 23:00:32 craigmcc Exp $
  + * $Revision: 1.2 $
  + * $Date: 2000/10/12 23:00:32 $
    *
    * ====================================================================
    *
  @@ -63,9 +63,12 @@
   package org.apache.struts.taglib.logic;
   
   
  +import java.lang.reflect.InvocationTargetException;
   import javax.servlet.http.Cookie;
   import javax.servlet.http.HttpServletRequest;
   import javax.servlet.jsp.JspException;
  +import javax.servlet.jsp.PageContext;
  +import org.apache.struts.action.Action;
   import org.apache.struts.util.BeanUtils;
   import org.apache.struts.util.PropertyUtils;
   
  @@ -75,7 +78,7 @@
    * is present for this request.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.1 $ $Date: 2000/09/07 01:35:36 $
  + * @version $Revision: 1.2 $ $Date: 2000/10/12 23:00:32 $
    */
   
   public class PresentTag extends ConditionalTagBase {
  @@ -139,7 +142,18 @@
                   Object value = null;
                   try {
                       value = PropertyUtils.getProperty(bean, property);
  +                } catch (InvocationTargetException e) {
  +                    Throwable t = e.getTargetException();
  +                    if (t == null)
  +                        t = e;
  +                    pageContext.setAttribute(Action.EXCEPTION_KEY, t,
  +                                             PageContext.REQUEST_SCOPE);
  +                    throw new JspException
  +                        (messages.getMessage("logic.property", name, property,
  +                                             t.toString()));
                   } catch (Throwable t) {
  +                    pageContext.setAttribute(Action.EXCEPTION_KEY, t,
  +                                             PageContext.REQUEST_SCOPE);
                       throw new JspException
                           (messages.getMessage("logic.property", name, property,
                                                t.toString()));
  
  
  
  1.2       +7 -4      jakarta-struts/src/share/org/apache/struts/taglib/logic/RedirectTag.java
  
  Index: RedirectTag.java
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/logic/RedirectTag.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- RedirectTag.java	2000/09/07 01:35:36	1.1
  +++ RedirectTag.java	2000/10/12 23:00:32	1.2
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/logic/RedirectTag.java,v 1.1 2000/09/07 01:35:36 craigmcc Exp $
  - * $Revision: 1.1 $
  - * $Date: 2000/09/07 01:35:36 $
  + * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/taglib/logic/RedirectTag.java,v 1.2 2000/10/12 23:00:32 craigmcc Exp $
  + * $Revision: 1.2 $
  + * $Date: 2000/10/12 23:00:32 $
    *
    * ====================================================================
    *
  @@ -69,6 +69,7 @@
   import javax.servlet.jsp.JspWriter;
   import javax.servlet.jsp.PageContext;
   import javax.servlet.jsp.tagext.TagSupport;
  +import org.apache.struts.action.Action;
   import org.apache.struts.util.BeanUtils;
   import org.apache.struts.util.MessageResources;
   
  @@ -78,7 +79,7 @@
    * the remainder of the current page.
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.1 $ $Date: 2000/09/07 01:35:36 $
  + * @version $Revision: 1.2 $ $Date: 2000/10/12 23:00:32 $
    */
   
   public final class RedirectTag extends TagSupport {
  @@ -138,6 +139,8 @@
   	try {
   	    response.sendRedirect(response.encodeRedirectURL(href));
   	} catch (IOException e) {
  +            pageContext.setAttribute(Action.EXCEPTION_KEY, e,
  +                                     PageContext.REQUEST_SCOPE);
   	    throw new JspException
   		(messages.getMessage("redirect.redirect", href, e.toString()));
   	}