ICU4J 4.4 fails to load available locales from resources on WebSphere. In ICU4J 4.4, we decided to remove res_index.txt. Without res_index.txt, the ICU implementation relies on ClassLoader#getResources to get a list URLs in the locale data path, then iterate through the list to create available locale list. However, ICU only handles "file" and "jar" protocols. On WebSphere, "wsjar" protocol is used and ICU fails to create the list.
When available locale list is empty, ICU services throw MissingResourceException. Thus, locale services fail to instantiate service objects. For example, Calendar.getInstance(), NumberFormat.getInstance() and many others fail on WebSphere for this reason.
I attached icu44residx.jar in this ticket. If someone is blocked by this problem and need a quick workaround, he/she can put this jar file in the classpath along with ICU4J 4.4 or 4.4.1 jar to resolve the problem.
We agreed to merge the fix to 4.5.1.
Milestone 4.5.1 deleted