Name: PK31786 ============= Summary: Improved logging of LocaleDataMap Problem Description: When logging of LocaleDataMap is enabled, it may throw IllegalArgumentExceptions, depending on the locale data, that is stored. An exception similar to th e following one appears in the logs: 2006.09.25 15:28:43.438 E com.ibm.wps.command.xml.Engine XMLEngine com.ibm.wps.command.xml.XmlCommandException: EJPXA0001E: An error occurred while processing the XML configuration request. at com.ibm.wps.command.xml.Engine.process(Engine.java:287) at com.ibm.wps.command.xml.XmlCommand.execute(XmlCommand.java:147) at com.ibm.wps.command.xml.XmlCommandServlet.processInternal(XmlCommandServlet.java:266) at com.ibm.wps.command.xml.XmlCommandServlet.process(XmlCommandServlet.java:255) at com.ibm.wps.command.xml.XmlCommandServlet.doPost(XmlCommandServlet.java:209) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110) at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174) at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313) at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116) at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283) at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42) at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40) at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:76) at com.ibm.wps.mappingurl.impl.URLAnalyzer.doFilter(URLAnalyzer.java:261) at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:132) at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:71) at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:1009) at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:529) at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:208) at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:134) at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:321) at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71) at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:246) at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334) at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56) at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:652) at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:448) at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java(Compiled Code)) Caused by: java.lang.IllegalArgumentException: can't parse argument number $short at java.text.MessageFormat.makeFormat(MessageFormat.java(Compiled Code)) at java.text.MessageFormat.applyPattern(MessageFormat.java(Compiled Code)) at java.text.MessageFormat.(MessageFormat.java(Inlined Compiled Code)) at java.text.MessageFormat.format(MessageFormat.java(Inlined Compiled Code)) at com.ibm.wps.logging.LogManagerDefaultImpl.log(LogManagerDefaultImpl.java(Compiled Code)) at com.ibm.wps.logging.LoggerDefaultImpl.text(LoggerDefaultImpl.java(Inlined Compiled Code)) at com.ibm.wps.logging.LoggerDefaultImpl.text(LoggerDefaultImpl.java(Inlined Compiled Code)) at com.ibm.wps.datastore.impl.LocaleDataMap.isSupportedLocaleNotLoaded(LocaleDataMap.java(Compiled Code)) at com.ibm.wps.datastore.impl.PortletDescriptorImpl.getDescription(PortletDescriptorImpl.java(Inlined Compiled Code)) at com.ibm.wps.command.xml.items.PortletItem.load(PortletItem.java(Compiled Code)) at com.ibm.wps.command.xml.ExportEngine.loadItem(ExportEngine.java:465) at com.ibm.wps.command.xml.ExportEngine.loadItem(ExportEngine.java:458) at com.ibm.wps.command.xml.ExportEngine.loadItem(ExportEngine.java:458) at com.ibm.wps.command.xml.ExportEngine.loadItem(ExportEngine.java:458) at com.ibm.wps.command.xml.ExportEngine.exportPortal(ExportEngine.java:110) at com.ibm.wps.command.xml.Engine.process(Engine.java:278) ... 29 more Problem Solution: This is caused by wrong usage of the logging call. The arguments to Logger.text() have been specified in the log text, instead of the Object[] for the arguments. This way, some characters may be interpreted incorrectly as control characters, although they do not have a special meaning in this context. This applies to characters like curly braces { and }. The log call has been fixed. The trace text was edited to include a parameter marker ("{0}") and a parameter is provided using the Object[] argument. Failing Module(s): Database XML Access Affected Users: All users Version Information: Portal Version(s): 6.0.0.0 Pre-Requisite(s): Co-Requisite(s): --- Platform Specific: This fix applies to all platforms. Installation: NOTE: YOU MUST FIRST DOWNLOAD THE UPDATE INSTALLER TOOL IN ORDER TO INSTALL A FIX. The Portal Update Installer can be downloaded from the following link: http://www.ibm.com/software/genservers/portal/support 1. Create temporary "fix" directory to store the jar file. 2. Copy jar file to this directory. 3. Shutdown WebSphere Portal. 4. Follow the fix installation instructions that are packaged with the Portal Update Installer on how to install the fix. 5. Restart WebSphere Portal. 6. The temporary directory may be removed. Un-Installation: NOTE: FIXES MUST BE REMOVED IN THE ORDER THEY WERE APPLIED. DO NOT REMOVE A FIX UNLESS ALL FIXES APPLIED AFTER IT HAVE FIRST BEEN REMOVED. YOU MAY REAPPLY ANY REMOVED FIX. 1. Shutdown WebSphere Portal. 2. Follow the instructions that are packaged with the Portal Update Installer on how to uninstall the fix. 3. Restart WebSphere Portal.