[ https://issues.apache.org/jira/browse/TRINIDAD-1967?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12966298#action_12966298 ]
Yee-Wah Lee commented on TRINIDAD-1967: --------------------------------------- Debugging notes. Assume - Server is running PST so maxDate = #{date.tonightNearMidnight} returns 2010-12-2 11:59pm PST - The component converter, or trinidad-config.xml, specifies timezone=Europe/Stockholm 1. trinidad-impl/DateTimeConverter.java#getClientValidation() returns - maxStr = 12/3/2010 8:59am - maxISOStr = 2010-12-2 11:59pm 2. CoreFormat.js, TrDateTimeRangeValidator.prototype.validate() does: maxDate = isoConverter.getAsObject (this._maxISODate); which returns the date of "2010-12-2 11:59pm". Comparing against what the user enters (2010-12-3 8:59am), it gives a validation error that the value entered is greater than the maximum, so the client is being stricter than the server which would accept up to 2010-12-3 8:5am (GMT+1). > DateTimeRangeValidator gives false failure if server specifies timezone > attribute or timezone specified in trinidad-config.xml > ------------------------------------------------------------------------------------------------------------------------------ > > Key: TRINIDAD-1967 > URL: https://issues.apache.org/jira/browse/TRINIDAD-1967 > Project: MyFaces Trinidad > Issue Type: Bug > Components: Components > Affects Versions: 1.2.13-core > Reporter: Yee-Wah Lee > > This is a regression caused by Trinidad-1920. In that fix, an ISO-Date > format was used to create minISO/maxISO strings on the validator so the > min/maxDate could be sent down without loss of information. However the > DateFormat was not created with the timezone of the component converter, so > it would send down strings that specified different values causing false > validation. > 1. Modify the following example in trinidad-demo/clientConvert.jspx and run > it (this example uses Europe/Stockholm timezone, any TZ different from server > JDK timezone will suffice). > <tr:inputText id="mdf5" value="#{date.date2}" > label="date converter and a validator > that sets a maximum date of tonight"> > <tr:convertDateTime type="both" timezone="Europe/Stockholm"/> > <tr:validateDateTimeRange > maximum="#{date.tonightNearMidnight}"/> > </tr:inputText> > 2. If you have a hint on the validator, it would display max with the > timezone of the converter. For example, if server is PST, and I'm running on > 2010-12-2, the maxDate created is 2010-12-2 11:59 pm PST which converts to > 2010-12-3 8:59am (GMT+1). So the maximum I can enter on the client is > 12/3/2010 8:59am. > 3. In the input box, type in the max and Submit. Get an error about > failing validation although it is within bounds. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.