]
Stuart Douglas reassigned WFLY-972:
-----------------------------------
Assignee: Cheng Fang (was: Stuart Douglas)
EJB calendar timer Sunday calculation problem in certain locales
----------------------------------------------------------------
Key: WFLY-972
URL:
https://issues.jboss.org/browse/WFLY-972
Project: WildFly
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: EJB
Environment: JDK 6 & 7
Reporter: Cheng Fang
Assignee: Cheng Fang
My ejb class contains this timeout method:
{code:java}
@Schedule(dayOfWeek="Sun", persistent=false)
private void sunday(Timer t) {
}
{code}
When calling this timer.getNextTimeout(), it returned the Sunday after next Sunday
(expecting next Sunday) when running on certain locales (it_IT, es_PE, etc). It works as
expected on other locales like en_US.
I added -Duser.language=it -Duser.country=IT to JAVA_OPTS when starting standalone server
to use that locale.
Seems to be a JDK bug. There could be some differences how dates are calculated in
different locales, but shouldn't be that big like skip one Sunday. Today is Wed.
One workaround is "to use locale.English when instantiating GregorianCalendar in the
following classes." I tried it on 7.2 with it_IT, and got the expected Sunday.
{noformat}
ejb3/src/main/java/org/jboss/as/ejb3/timerservice/schedule/CalendarBasedTimeout.java
ejb3/src/main/java/org/jboss/as/ejb3/timerservice/schedule/util/CalendarUtil.java
ejb3/src/main/java/org/jboss/as/ejb3/timerservice/task/CalendarTimerTask.java
{noformat}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: