When a web browser sends an HTTP request to an HTTP server,
the request contains an "Accept-Language" header.
Accept-Language may contain one or more languages.
Within the United States, browsers used by English-speaking users will
usually send:
Accept-Language: en
or
Accept-Language: en-us
or
Accept-Language: en-us, en
Websphere 4.0.5 gets into trouble when the user's preferred language is
Chinese. Websphere 4.0.5 will choke if it encounters this header in
an HTTP request:
Accept-Language: zh-cn, en-us
How to reproduce this bug:
1) launch Internet Explorer
2) select "Tools"
3) select "Internet Options"
4) press the "Languages" button
5) click "Add..."
6) select "Chinese (China) [zh-cn]"
7) press OK
8) select "Chinese (China) [zh-cn]"
9) press "Move Up"
10) press OK
11) press OK
12) visit http://foobar/yummy/
13) Try to login to the site
It might (?) be possible to workaround this issue by editing a
Websphere property file:
$WAS4HOME/properties/converter.properties
We've escalated this issue to IBM's technical support.
Here is the full stack trace:
java.io.UnsupportedEncodingException: Cp1386
at sun.io.Converters.getConverterClass(Unknown Source)
at sun.io.Converters.newConverter(Unknown Source)
at sun.io.ByteToCharConverter.getConverter(Unknown Source)
at java.lang.String.getBTCConverter(Unknown Source)
at java.lang.String.<init>(Unknown Source)
at java.lang.String.<init>(Unknown Source)
at
com.ibm.servlet.engine.webapp.RequestUtils.parseQueryString(RequestUtils.jav
a:256)
at
com.ibm.servlet.engine.srt.SRTServletRequest.parseParameters(SRTServletReque
st.java:627)
at
com.ibm.servlet.engine.srt.SRTServletRequest.getParameterNames(SRTServletReq
uest.java:349)
at
com.ibm.servlet.engine.webapp.HttpServletRequestProxy.getParameterNames(Http
ServletRequestProxy.java:214)
at
com.rba.application.mvc.framework.ControlServlet.createRequestInfo(ControlSe
rvlet.java:123)
at
com.rba.application.mvc.framework.ControlServlet.processRequest(ControlServl
et.java:375)
at
com.rba.application.mvc.framework.ControlServlet.doPost(ControlServlet.java:
229)
at
com.rba.application.mvc.framework.ControlServlet.doGet(ControlServlet.java:2
17)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
com.ibm.servlet.engine.webapp.StrictServletInstance.doService(ServletManager
.java:827)
at
com.ibm.servlet.engine.webapp.StrictLifecycleServlet._service(StrictLifecycl
eServlet.java:167)
at
com.ibm.servlet.engine.webapp.IdleServletState.service(StrictLifecycleServle
t.java:297)
at
com.ibm.servlet.engine.webapp.StrictLifecycleServlet.service(StrictLifecycle
Servlet.java:110)
at
com.ibm.servlet.engine.webapp.ServletInstance.service(ServletManager.java:47
2)
at
com.ibm.servlet.engine.webapp.ValidServletReferenceState.dispatch(ServletMan
ager.java:1012)
at
com.ibm.servlet.engine.webapp.ServletInstanceReference.dispatch(ServletManag
er.java:913)
at
com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.handleWebAppDispatch(W
ebAppRequestDispatcher.java:721)
at
com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.dispatch(WebAppRequest
Dispatcher.java:374)
at
com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.forward(WebAppRequestD
ispatcher.java:118)
at
com.ibm.servlet.engine.srt.WebAppInvoker.doForward(WebAppInvoker.java:134)
at
com.ibm.servlet.engine.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.
java:239)
at
com.ibm.servlet.engine.invocation.CachedInvocation.handleInvocation(CachedIn
vocation.java:67)
at
com.ibm.servlet.engine.invocation.CacheableInvocationContext.invoke(Cacheabl
eInvocationContext.java:106)
at
com.ibm.servlet.engine.srp.ServletRequestProcessor.dispatchByURI(ServletRequ
estProcessor.java:154)
at
com.ibm.servlet.engine.oselistener.OSEListenerDispatcher.service(OSEListener
.java:315)
at
com.ibm.servlet.engine.http11.HttpConnection.handleRequest(HttpConnection.ja
va:60)
at
com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:323)
at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:252)
at com.ibm.ws.util.CachedThread.run(ThreadPool.java:138)