แก้ Bug thai locale ใน quartz

Quartz เป็น library ที่ทำให้เราสามารถตั้งเวลา run งานใน Java ได้ เหมือนกับที่ทำจาก cron ใน unix นั่นเอง เหตุผลที่เราเอาความสามารถในตั้งเวลา run งาน (schedule) มาทำในตัวโปรแกรมเนื่องจากสามารถบริหารจัดการได้ดีกว่าใน cron อีกทั้ง quartz ยังสามารถทำงานได้ละเอียดในระดับของวินาที

อาการของ bug ตัวนี้คือ ถ้าหากเราใช้ locale ภาษาไทยใน OS ตัว quartz จะไม่ทำงานแถมมี Exception เกิดขึ้นดังนี้

org.quartz.SchedulerException: Based on configured schedule, the given trigger will never fire.

แต่ถ้าเปลี่ยน locale เป็นภาษาอังกฤษกลับไม่เป็นอะไร ใน Windows XP สามารถแก้ปัญหานี้ได้โดยการเปลี่ยนค่าใน Regional and Language Options ที่ Tab Regional Options ในส่วนของ Standards and formats ให้เป็น English (United States) แทนที่จะเป็น Thai ปัญหานี้ก็จะหมดไป แต่วิธีนี้ไม่ใช่วิธีที่ดีนัก ทางที่ดีเราควรเข้าไปจัดการกับต้นตอของปัญหามากกว่า

อ่านเพิ่มเติม