UIXEditableValue.compareValues() shouldn't return false for 'empty' strings of 
different lengths
------------------------------------------------------------------------------------------------

                 Key: TRINIDAD-2064
                 URL: https://issues.apache.org/jira/browse/TRINIDAD-2064
             Project: MyFaces Trinidad
          Issue Type: Bug
          Components: Components
    Affects Versions: 2.0.0-beta-2
         Environment: Any
            Reporter: Mark Yvanovich
            Priority: Minor


In UIXEditableValue.validate(), UIXEditableValue.compareValues() is called to 
check to see if the value has changed.  Currently, if the previous value and 
the new value are both empty (i.e. whitespace) compareValues() returns false to 
indicate they are the same.  This, however, is not really correct.  If you 
enter the value " " (one space) and then later try to change it to "  " (two 
spaces) or "" (no spaces), the new value will be ignored because 
compareValues() says that the two values are the same.

This can be reproduced on the inputText tag demo page.  Select the contents of 
the inputText and type in a " " (one space) to replace the current value and 
hit submit.  Then, try to update the value to "  " (two spaces).  If you look 
at the value attribute in the table below with firebug, you'll see that the 
value doesn't get updated.  When using an inputText as a filter field, 
filtering by " " (one space) or "  " (two spaces) can have different results.  
For this reason, we should allow for the value to be changed.

Basically, the logic should be that if the two values are empty (I.E. 
UIXEditableValue.isEmpty() returns true for both values) then we should check 
the lengths to see if they are in fact different.  The one condition that we 
need to preserve is that null and "" (no spaces, the real empty string) should 
compare as the same (so compareValues() should return false for this case).

The current work around is that you have to submit a non-empty value and then 
submit the desired new empty value (i.e. two spaces or no spaces, etc).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to