DateTimeField improperly converts time causing wrong dates when the server's 
current date is different from the client's date.
------------------------------------------------------------------------------------------------------------------------------

                 Key: WICKET-3510
                 URL: https://issues.apache.org/jira/browse/WICKET-3510
             Project: Wicket
          Issue Type: Bug
          Components: wicket-datetime
    Affects Versions: 1.5-RC2
            Reporter: Bertrand Guay-Paquet


The bug is in DateTimeField#convertInput().
<code>
// Get year, month and day ignoring any timezone of the Date object
Calendar cal = Calendar.getInstance();
cal.setTime(dateFieldInput);
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1;
int day = cal.get(Calendar.DAY_OF_MONTH);
int hours = (hoursInput == null ? 0 : hoursInput % 24);
int minutes = (minutesInput == null ? 0 : minutesInput);

// Use the input to create a date object with proper timezone
MutableDateTime date = new MutableDateTime(year, month, day, hours, minutes, 0, 
0,
        DateTimeZone.forTimeZone(getClientTimeZone()));
</code>
If the server's current date is different from the client's, this produces 
wrong output. I attached a patch with a test case that simulates this condition.

I don't know why this "casting" of day, month, year is done.


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

        

Reply via email to