You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@turbine.apache.org by se...@apache.org on 2007/05/17 07:55:43 UTC
svn commit: r538811 - in /jakarta/turbine/core/branches/TURBINE_2_3_BRANCH:
src/java/org/apache/turbine/services/intake/model/
src/test/org/apache/turbine/services/intake/ xdocs/
Author: seade
Date: Wed May 16 22:55:42 2007
New Revision: 538811
URL: http://svn.apache.org/viewvc?view=rev&rev=538811
Log:
isSet() is a little different to what I had interpreted it to be - I have altered the Javadoc slightly to reflect this. I have reverted my earlier change since it was causing required fields to be invalid when initially created. The getSafeEmptyValue() concept contained a problem that was causing NPEs - this was only apparent when the previously mentioned change was reverted. Added more test cases.
Modified:
jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/java/org/apache/turbine/services/intake/model/Field.java
jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/java/org/apache/turbine/services/intake/model/Group.java
jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/test/org/apache/turbine/services/intake/IntakeServiceTest.java
jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/xdocs/changes.xml
Modified: jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/java/org/apache/turbine/services/intake/model/Field.java
URL: http://svn.apache.org/viewvc/jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/java/org/apache/turbine/services/intake/model/Field.java?view=diff&rev=538811&r1=538810&r2=538811
==============================================================================
--- jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/java/org/apache/turbine/services/intake/model/Field.java (original)
+++ jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/java/org/apache/turbine/services/intake/model/Field.java Wed May 16 22:55:42 2007
@@ -351,7 +351,7 @@
{
log.debug(name + ": Found our Key in the request, setting Value");
}
- if (StringUtils.isNotEmpty(pp.getString(getKey())))
+ if (pp.getString(getKey()) != null)
{
setFlag = true;
}
@@ -555,8 +555,10 @@
}
/**
- * Flag set to true, if the test value has been set to
- * anything other than an empty value.
+ * Flag set to true, if the test value has been set by the parser (even to
+ * an empty value, so don't used this to determine if the field contains a
+ * non-empty value). Validation will only be executed for fields that have
+ * been set in this manner.
*
* @return a <code>boolean</code> value
*/
@@ -912,7 +914,7 @@
throw new IntakeException(
"Attempted to assign an invalid input.");
}
- if (isSet())
+ if (isSet() && null != getTestValue())
{
valArray[0] = getTestValue();
if (isDebugEnabled)
Modified: jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/java/org/apache/turbine/services/intake/model/Group.java
URL: http://svn.apache.org/viewvc/jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/java/org/apache/turbine/services/intake/model/Group.java?view=diff&rev=538811&r1=538810&r2=538811
==============================================================================
--- jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/java/org/apache/turbine/services/intake/model/Group.java (original)
+++ jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/java/org/apache/turbine/services/intake/model/Group.java Wed May 16 22:55:42 2007
@@ -187,8 +187,7 @@
}
for (int i = fieldsArray.length - 1; i >= 0; i--)
{
- if ((fieldsArray[i].isSet() || fieldsArray[i].isRequired())
- && !fieldsArray[i].isValidated())
+ if (fieldsArray[i].isSet() && !fieldsArray[i].isValidated())
{
fieldsArray[i].validate();
}
Modified: jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/test/org/apache/turbine/services/intake/IntakeServiceTest.java
URL: http://svn.apache.org/viewvc/jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/test/org/apache/turbine/services/intake/IntakeServiceTest.java?view=diff&rev=538811&r1=538810&r2=538811
==============================================================================
--- jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/test/org/apache/turbine/services/intake/IntakeServiceTest.java (original)
+++ jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/src/test/org/apache/turbine/services/intake/IntakeServiceTest.java Wed May 16 22:55:42 2007
@@ -112,9 +112,8 @@
}
/**
- * This test attempts to verify that an intake field returns false for
- * isSet() when an empty field is submitted (IMHO this was a bug prior to
- * revision 538232 (i.e. release 2.3.3).
+ * This test verifies that an intake field returns true for isSet() even
+ * when an empty field is submitted.
*
* @throws IntakeException
*/
@@ -132,23 +131,22 @@
Field intRF = requiredFalseTestGroup.get("IntRF");
Field dateRF = requiredFalseTestGroup.get("DateRF");
- assertFalse("StringRF should not be set", stringRF.isSet());
+ assertTrue("StringRF should be set", stringRF.isSet());
assertTrue("StringRF should be valid", stringRF.isValid());
assertNull(stringRF.getValue());
- assertFalse("IntegerRF should not be set", integerRF.isSet());
+ assertTrue("IntegerRF should be set", integerRF.isSet());
assertTrue("IntegerRF should be valid", integerRF.isValid());
assertNull(integerRF.getValue());
- assertFalse("IntRF should not be set", intRF.isSet());
+ assertTrue("IntRF should be set", intRF.isSet());
assertTrue("IntRF should be valid", intRF.isValid());
assertNull(intRF.getValue()); // zero?
- assertFalse("DateRF should not be set", dateRF.isSet());
+ assertTrue("DateRF should be set", dateRF.isSet());
assertTrue("DateRF should be valid", dateRF.isValid());
assertNull(dateRF.getValue());
}
/**
- * This test attempts to verify that with the isSet() fix applied to Field
- * (see testRequiredFalse()) an empty field will still clear existing
+ * This test verify that an empty field can be used to clear existing
* values.
*
* @throws IntakeException
@@ -245,13 +243,55 @@
public void testRequiredTrue() throws IntakeException
{
ParameterParser pp = new DefaultParameterParser();
- pp.add("rft_0stringrf", "");
+ pp.add("rtt_0stringrt", "");
requiredTrueTestGroup.init(Group.NEW, pp);
Field stringRT = requiredTrueTestGroup.get("StringRT");
- assertFalse("StringRT should not be set", stringRT.isSet());
+ assertTrue("StringRT should be set", stringRT.isSet());
assertFalse("StringRT should not be valid", stringRT.isValid());
+ assertEquals("", stringRT.getValue());
+ }
+
+ /**
+ * This test verifies that a newly created group is not initiated in an
+ * error state.
+ *
+ * @throws IntakeException
+ */
+ public void testInitialErrorState() throws IntakeException
+ {
+ ParameterParser pp = new DefaultParameterParser();
+ requiredFalseTestGroup.init(Group.NEW, pp);
+
+ Field stringRF = requiredFalseTestGroup.get("StringRF");
+ Field integerRF = requiredFalseTestGroup.get("IntegerRF");
+ Field intRF = requiredFalseTestGroup.get("IntRF");
+ Field dateRF = requiredFalseTestGroup.get("DateRF");
+
+ assertFalse("StringRF should not be set", stringRF.isSet());
+ assertTrue("StringRF should be valid", stringRF.isValid());
+ assertEquals("StringRF should have no messages.", "", stringRF.getMessage());
+ assertNull(stringRF.getValue());
+ assertFalse("IntegerRF should not be set", integerRF.isSet());
+ assertTrue("IntegerRF should be valid", integerRF.isValid());
+ assertEquals("IntegerRF should have no messages", "", integerRF.getMessage());
+ assertNull(integerRF.getValue());
+ assertFalse("IntRF should not be set", intRF.isSet());
+ assertTrue("IntRF should be valid", intRF.isValid());
+ assertEquals("IntRF should have no messages", "", intRF.getMessage());
+ assertNull(intRF.getValue());
+ assertFalse("DateRF should not be set", dateRF.isSet());
+ assertTrue("DateRF should be valid", dateRF.isValid());
+ assertEquals("DateRF should have no messages", "", dateRF.getMessage());
+ assertNull(dateRF.getValue());
+
+ requiredTrueTestGroup.init(Group.NEW, pp);
+ Field stringRT = requiredTrueTestGroup.get("StringRT");
+
+ assertFalse("StringRT should not be set", stringRT.isSet());
+ assertTrue("StringRT should be valid", stringRT.isValid());
+ assertEquals("StringRT should have no messages.", "", stringRT.getMessage());
assertNull(stringRT.getValue());
}
Modified: jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/xdocs/changes.xml?view=diff&rev=538811&r1=538810&r2=538811
==============================================================================
--- jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/xdocs/changes.xml (original)
+++ jakarta/turbine/core/branches/TURBINE_2_3_BRANCH/xdocs/changes.xml Wed May 16 22:55:42 2007
@@ -33,8 +33,9 @@
validating multiValued fields.
</action>
<action type="fix" dev="seade">
- isSet() was returning <code>true</code> for Intake Fields even when no
- value was provided. Fixed and test case added.
+ Fixed a NullPointerExceptions that can occur when Intake is used to
+ validate a primitive field. Clarified the meaning of Field.isSet() in
+ Javadoc.
</action>
<action type="add" dev="tv">
Added an extension of LDAPUser named ActiveDirectoryUser to simplify the
---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-dev-help@jakarta.apache.org