[
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.