dgraham     2003/07/09 21:01:48

  Modified:    src/share/org/apache/struts/validator
                        DynaValidatorActionForm.java DynaValidatorForm.java
  Log:
  If the dyna 'page' property was defined as something other than 
  java.lang.Integer a ClassCastException was thrown.  Now a message
  is logged describing the error before the exception is thrown.  I refactored
  the page variable setup into a new setPageFromDynaProperty() method.
  PR# 21428.
  
  Revision  Changes    Path
  1.9       +5 -9      
jakarta-struts/src/share/org/apache/struts/validator/DynaValidatorActionForm.java
  
  Index: DynaValidatorActionForm.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/validator/DynaValidatorActionForm.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- DynaValidatorActionForm.java      5 Mar 2003 02:53:15 -0000       1.8
  +++ DynaValidatorActionForm.java      10 Jul 2003 04:01:47 -0000      1.9
  @@ -109,11 +109,7 @@
        * @return ActionErrors containing validation errors.
        */
       public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) 
{
  -        // set the page variable before validating
  -        Map props = this.getMap();
  -        if (props.containsKey("page")) {
  -            this.page = ((Integer) props.get("page")).intValue();
  -        }
  +        this.setPageFromDynaProperty();
           
           ServletContext application = getServlet().getServletContext();
           ActionErrors errors = new ActionErrors();
  
  
  
  1.11      +23 -9     
jakarta-struts/src/share/org/apache/struts/validator/DynaValidatorForm.java
  
  Index: DynaValidatorForm.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/validator/DynaValidatorForm.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- DynaValidatorForm.java    2 Jul 2003 03:03:55 -0000       1.10
  +++ DynaValidatorForm.java    10 Jul 2003 04:01:47 -0000      1.11
  @@ -137,11 +137,7 @@
         * @return <code>ActionErrors</code> object that encapsulates any validation 
errors.
         */
       public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) 
{
  -        // set the page variable before validating
  -        Map props = this.getMap();
  -        if (props.containsKey("page")) {
  -            this.page = ((Integer) props.get("page")).intValue();
  -        }
  +        this.setPageFromDynaProperty();
   
           ServletContext application = getServlet().getServletContext();
           ActionErrors errors = new ActionErrors();
  @@ -156,6 +152,24 @@
           }
   
           return errors;
  +    }
  +
  +    /**
  +     * Sets this.page to the value of the Dyna property "page" if it's defined.  
This is
  +     * used to setup the page variable before validation starts.
  +     * @since Struts 1.2
  +     */
  +    protected void setPageFromDynaProperty() {
  +        Map props = this.getMap();
  +        if (props.containsKey("page")) {
  +            try {
  +                this.page = ((Integer) props.get("page")).intValue();
  +
  +            } catch (ClassCastException e) {
  +                log.error("Dyna 'page' property must be of type 
java.lang.Integer.", e);
  +                throw e;
  +            }
  +        }
       }
   
      /**
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to