You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2004/06/30 17:35:19 UTC
cvs commit: jakarta-tapestry/junit/src/org/apache/tapestry/junit/valid TestValidationDelegate.java
hlship 2004/06/30 08:35:19
Modified: framework/src/org/apache/tapestry/valid Tag: branch-3-0
ValidationDelegate.java
. Tag: branch-3-0 status.xml
junit/src/org/apache/tapestry/junit/valid Tag: branch-3-0
TestValidationDelegate.java
Log:
[29871] Fix NPE in ValidationDelegate when the form has errors recorded for fields that did not render.
Revision Changes Path
No revision
No revision
1.7.2.1 +2 -2 jakarta-tapestry/framework/src/org/apache/tapestry/valid/ValidationDelegate.java
Index: ValidationDelegate.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/framework/src/org/apache/tapestry/valid/ValidationDelegate.java,v
retrieving revision 1.7
retrieving revision 1.7.2.1
diff -u -r1.7 -r1.7.2.1
--- ValidationDelegate.java 19 Feb 2004 17:38:03 -0000 1.7
+++ ValidationDelegate.java 30 Jun 2004 15:35:19 -0000 1.7.2.1
@@ -262,7 +262,7 @@
if (_trackingMap == null)
_trackingMap = new HashMap();
- if (_currentComponent == null)
+ if (_currentComponent == null || _currentComponent.getName() == null)
{
result = new FieldTracking();
No revision
No revision
1.47.2.2 +8 -0 jakarta-tapestry/status.xml
Index: status.xml
===================================================================
RCS file: /home/cvs/jakarta-tapestry/status.xml,v
retrieving revision 1.47.2.1
retrieving revision 1.47.2.2
diff -u -r1.47.2.1 -r1.47.2.2
--- status.xml 28 Jun 2004 22:16:46 -0000 1.47.2.1
+++ status.xml 30 Jun 2004 15:35:19 -0000 1.47.2.2
@@ -254,6 +254,14 @@
Ensure that the page's requestCycle property is set before finishLoad() is invoked on any component.
</action>
+ <action type="update" dev="HLS">
+ Make IMessages smartly expand exceptions into their message, or their class name.
+ </action>
+
+ <action type="fix" dev="HLS" fixes-bug="29871">
+ Fix NPE in ValidationDelegate when the form has errors recorded for fields that did not render.
+ </action>
+
</release>
<release version="3.0" date="Apr 18 2004">
No revision
No revision
1.4.2.1 +28 -1 jakarta-tapestry/junit/src/org/apache/tapestry/junit/valid/TestValidationDelegate.java
Index: TestValidationDelegate.java
===================================================================
RCS file: /home/cvs/jakarta-tapestry/junit/src/org/apache/tapestry/junit/valid/TestValidationDelegate.java,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -u -r1.4 -r1.4.2.1
--- TestValidationDelegate.java 19 Feb 2004 17:37:51 -0000 1.4
+++ TestValidationDelegate.java 30 Jun 2004 15:35:19 -0000 1.4.2.1
@@ -30,7 +30,6 @@
*
*
* @author Howard Lewis Ship
- * @version $Id$
* @since 1.0.8
*
**/
@@ -164,6 +163,34 @@
trackings = d.getAssociatedTrackings();
assertEquals(1, trackings.size());
assertEquals(t0, trackings.get(0));
+ }
+
+ /**
+ * In rare cases, you may add errors even though the page hasn't rendered and that's
+ * was causing a NPE.
+ */
+ public void testComponentNotRecorded()
+ {
+ // This mock field neaver rendered, so it does not have a Form-assigned name.
+
+ IFormComponent f = new MockField(null);
+
+ d.setFormComponent(f);
+ d.record("Never rendered.", ValidationConstraint.CONSISTENCY);
+
+ assertEquals(true, d.getHasErrors());
+
+ List fieldTracking = d.getFieldTracking();
+ assertEquals(1, fieldTracking.size());
+
+ List trackings = d.getUnassociatedTrackings();
+ assertEquals(1, trackings.size());
+
+ IFieldTracking t = (IFieldTracking)trackings.get(0);
+
+ assertEquals(null, t.getComponent());
+ assertEquals(true, t.isInError());
+ checkRender("Never rendered.", t);
}
private void checkRender(String errorMessage, IFieldTracking tracking)
---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org