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