I have problem with redirect request when response header has non english
message. It shows me below stacktrace. I debug to HttpResponseEncoder.java line
47 and see it use us-ascii charset read header. So, when it read my response
header it throws exception because it can't read that message in ascii charset.
I temporary fixed by changed to UTF but is it have a reason or other ways to
change charset without change code or should it change to unicode.
org.apache.mina.filter.codec.ProtocolEncoderException:
java.nio.charset.UnmappableCharacterException: Input length = 1
at
org.apache.mina.filter.codec.ProtocolCodecFilter.filterWrite(ProtocolCodecFilter.java:245)
at
org.apache.mina.common.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:467)
at
org.apache.mina.common.DefaultIoFilterChain.access$1400(DefaultIoFilterChain.java:40)
at
org.apache.mina.common.DefaultIoFilterChain$EntryImpl$1.filterWrite(DefaultIoFilterChain.java:835)
at
org.apache.mina.common.DefaultIoFilterChain$TailFilter.filterWrite(DefaultIoFilterChain.java:761)
at
org.apache.mina.common.DefaultIoFilterChain.callPreviousFilterWrite(DefaultIoFilterChain.java:467)
at
org.apache.mina.common.DefaultIoFilterChain.fireFilterWrite(DefaultIoFilterChain.java:461)
at
org.apache.mina.common.AbstractIoSession.write(AbstractIoSession.java:310)
at
org.apache.mina.common.AbstractIoSession.write(AbstractIoSession.java:270)
at play.server.HttpHandler.writeResponse(HttpHandler.java:402)
at play.server.HttpHandler.copyResponse(HttpHandler.java:515)
at play.server.HttpHandler$MinaInvocation.execute(HttpHandler.java:469)
at play.Invoker$Invocation.run(Invoker.java:176)
at play.server.HttpHandler$MinaInvocation.run(HttpHandler.java:456)
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:637)
Caused by: java.nio.charset.UnmappableCharacterException: Input length = 1
at java.nio.charset.CoderResult.throwException(CoderResult.java:261)
at
org.apache.mina.common.AbstractIoBuffer.putString(AbstractIoBuffer.java:1275)
at
org.apache.asyncweb.common.HttpCodecUtils.encodeHeaders(HttpCodecUtils.java:216)
at
org.apache.asyncweb.common.HttpResponseEncoder.encode(HttpResponseEncoder.java:47)
at
org.apache.mina.filter.codec.ProtocolCodecFilter.filterWrite(ProtocolCodecFilter.java:236)
... 21 more