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