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]