On Mon, Nov 7, 2016 at 12:04 PM, Erik de Hair <[email protected]> wrote:

>
> On 11/07/2016 09:57 AM, Martin Grigorov wrote:
>
>> There's another frequently occurring exception in the log that occurs
>> when using the autocomplete field:
>>
>> java.lang.IllegalStateExceptiongetOutputStream() has already been called
>> for this response org.apache.catalina.connector.
>> Response#getWriter(Response.java:678)
>>
>> This is a bug, but I am not sure where exactly.
>>> An application should not try to write both to the Servlet's writer and
>>> outputStream in the same response.
>>>
>>> The easiest way to debug is to put a breakpoint at
>> ResponseFacade#getWriter() and ResponseFacade#getOutputStream() and see
>> what happens.
>>
>> The TextChoiceProvider is writing to the outputstream. Is that what you
> wanted to know?
>

I believe this is not the cause.
The previous stacktrace shows that a redirect is attempted. I don't expect
a redirect after sending the JSON response for the Select2 component.
I guess the http request didn't fail with the previous exception after you
released the breakpoint ?


>
> "http-bio-8080-exec-10@22498" daemon prio=5 tid=0x44 nid=NA runnable
>   java.lang.Thread.State: RUNNABLE
>       at org.apache.catalina.connector.ResponseFacade.getOutputStream
> (ResponseFacade.java:196)
>       at org.apache.wicket.protocol.http.servlet.ServletWebResponse.
> write(ServletWebResponse.java:135)
>       at org.apache.wicket.protocol.http.HeaderBufferingWebResponse.w
> rite(HeaderBufferingWebResponse.java:196)
>       at org.apache.wicket.request.Response$StreamAdapter.write(Respo
> nse.java:148)
>       at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221)
>       at sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:282)
>       at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:125)
>       - locked <0x57e8> (a java.io.OutputStreamWriter)
>       at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:135)
>       at java.io.OutputStreamWriter.write(OutputStreamWriter.java:220)
>       at java.io.Writer.write(Writer.java:157)
>       at org.apache.wicket.ajax.json.JSONWriter.key(JSONWriter.java:212)
>       at org.wicketstuff.select2.TextChoiceProvider.toJson(TextChoice
> Provider.java:38)
>       at org.wicketstuff.select2.AbstractSelect2Choice.onResourceRequ
> ested(AbstractSelect2Choice.java:473)
>       at org.wicketstuff.select2.Select2Choice.onResourceRequested(Se
> lect2Choice.java:36)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAcc
> essorImpl.java:-1)
>       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce
> ssorImpl.java:62)
>       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe
> thodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:498)
>       at org.apache.wicket.RequestListenerInterface.internalInvoke(Re
> questListenerInterface.java:258)
>       at org.apache.wicket.RequestListenerInterface.invoke(RequestLis
> tenerInterface.java:216)
>       at org.apache.wicket.core.request.handler.ListenerInterfaceRequ
> estHandler.invokeListener(ListenerInterfaceRequestHandler.java:243)
>       at org.apache.wicket.core.request.handler.ListenerInterfaceRequ
> estHandler.respond(ListenerInterfaceRequestHandler.java:236)
>       at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor
> .respond(RequestCycle.java:890)
>       at org.apache.wicket.request.RequestHandlerStack.execute(Reques
> tHandlerStack.java:64)
>       at org.apache.wicket.request.cycle.RequestCycle.execute(Request
> Cycle.java:261)
>       at org.apache.wicket.request.cycle.RequestCycle.processRequest(
> RequestCycle.java:218)
>       at org.apache.wicket.request.cycle.RequestCycle.processRequestA
> ndDetach(RequestCycle.java:289)
>       at org.apache.wicket.protocol.http.WicketFilter.processRequestC
> ycle(WicketFilter.java:259)
>       at org.apache.wicket.protocol.http.WicketFilter.processRequest(
> WicketFilter.java:201)
>       at org.apache.wicket.protocol.http.WicketFilter.doFilter(Wicket
> Filter.java:282)
>       at org.apache.catalina.core.ApplicationFilterChain.internalDoFi
> lter(ApplicationFilterChain.java:241)
>       at org.apache.catalina.core.ApplicationFilterChain.doFilter(App
> licationFilterChain.java:208)
>       at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChai
> n(AbstractShiroFilter.java:449)
>       at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(Abst
> ractShiroFilter.java:365)
>       at org.apache.shiro.subject.support.SubjectCallable.doCall(
> SubjectCallable.java:90)
>       at org.apache.shiro.subject.support.SubjectCallable.call(Subjec
> tCallable.java:83)
>       at org.apache.shiro.subject.support.DelegatingSubject.execute(
> DelegatingSubject.java:383)
>       at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInt
> ernal(AbstractShiroFilter.java:362)
>       at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(O
> ncePerRequestFilter.java:125)
>       at org.apache.catalina.core.ApplicationFilterChain.internalDoFi
> lter(ApplicationFilterChain.java:241)
>       at org.apache.catalina.core.ApplicationFilterChain.doFilter(App
> licationFilterChain.java:208)
>       at org.apache.catalina.core.StandardWrapperValve.invoke(Standar
> dWrapperValve.java:220)
>       at org.apache.catalina.core.StandardContextValve.invoke(Standar
> dContextValve.java:122)
>       at org.apache.catalina.authenticator.AuthenticatorBase.invoke(A
> uthenticatorBase.java:503)
>       at org.apache.catalina.core.StandardHostValve.invoke(StandardHo
> stValve.java:170)
>       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorRepo
> rtValve.java:103)
>       at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogVa
> lve.java:950)
>       at org.apache.catalina.core.StandardEngineValve.invoke(Standard
> EngineValve.java:116)
>       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAd
> apter.java:421)
>       at org.apache.coyote.http11.AbstractHttp11Processor.process(Abs
> tractHttp11Processor.java:1070)
>       at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler
> .process(AbstractProtocol.java:611)
>       at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(
> JIoEndpoint.java:314)
>       - locked <0x5836> (a org.apache.tomcat.util.net.SocketWrapper)
>       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool
> Executor.java:1142)
>       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo
> lExecutor.java:617)
>       at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.
> run(TaskThread.java:61)
>       at java.lang.Thread.run(Thread.java:745)
>
>>
>>> org.apache.catalina.connector.ResponseFacade#getWriter(Respo
>>>> nseFacade.java:213)
>>>> org.apache.wicket.protocol.http.servlet.ServletWebResponse#s
>>>> endRedirect(ServletWebResponse.java:280)
>>>> org.apache.wicket.protocol.http.HeaderBufferingWebResponse#s
>>>> endRedirect(HeaderBufferingWebResponse.java:117)
>>>> org.apache.wicket.request.handler.render.WebPageRenderer#red
>>>> irectTo(WebPageRenderer.java:176)
>>>> org.apache.wicket.request.handler.render.WebPageRenderer#res
>>>> pond(WebPageRenderer.java:242)
>>>> org.apache.wicket.core.request.handler.RenderPageRequestHand
>>>> ler#respond(RenderPageRequestHandler.java:175)
>>>> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor
>>>> #respond(RequestCycle.java:890)
>>>> org.apache.wicket.request.RequestHandlerStack#execute(Reques
>>>> tHandlerStack.java:64)
>>>> org.apache.wicket.request.cycle.RequestCycle#executeExceptio
>>>> nRequestHandler(RequestCycle.java:310)
>>>> org.apache.wicket.request.cycle.RequestCycle#executeExceptio
>>>> nRequestHandler(RequestCycle.java:319)
>>>> org.apache.wicket.request.cycle.RequestCycle#executeExceptio
>>>> nRequestHandler(RequestCycle.java:319)
>>>> org.apache.wicket.request.cycle.RequestCycle#executeExceptio
>>>> nRequestHandler(RequestCycle.java:319)
>>>> org.apache.wicket.request.cycle.RequestCycle#executeExceptio
>>>> nRequestHandler(RequestCycle.java:319)
>>>> org.apache.wicket.request.cycle.RequestCycle#executeExceptio
>>>> nRequestHandler(RequestCycle.java:319)
>>>> org.apache.wicket.request.cycle.RequestCycle#executeExceptio
>>>> nRequestHandler(RequestCycle.java:319)
>>>> org.apache.wicket.request.cycle.RequestCycle#executeExceptio
>>>> nRequestHandler(RequestCycle.java:319)
>>>> org.apache.wicket.request.cycle.RequestCycle#processRequest(
>>>> RequestCycle.java:233)
>>>> org.apache.wicket.request.cycle.RequestCycle#processRequestA
>>>> ndDetach(RequestCycle.java:289)
>>>> org.apache.wicket.protocol.http.WicketFilter#processRequestC
>>>> ycle(WicketFilter.java:259)
>>>> org.apache.wicket.protocol.http.WicketFilter#processRequest(
>>>> WicketFilter.java:201)
>>>> org.apache.wicket.protocol.http.WicketFilter#doFilter(Wicket
>>>> Filter.java:282)
>>>> org.apache.catalina.core.ApplicationFilterChain#internalDoFi
>>>> lter(ApplicationFilterChain.java:241)
>>>> org.apache.catalina.core.ApplicationFilterChain#doFilter(App
>>>> licationFilterChain.java:208)
>>>> org.apache.shiro.web.servlet.AbstractShiroFilter#executeChai
>>>> n(AbstractShiroFilter.java:449)
>>>> org.apache.shiro.web.servlet.AbstractShiroFilter$1#call(Abst
>>>> ractShiroFilter.java:365)
>>>> org.apache.shiro.subject.support.SubjectCallable#doCall(Subj
>>>> ectCallable.java:90)
>>>> org.apache.shiro.subject.support.SubjectCallable#call(Subjec
>>>> tCallable.java:83)
>>>> org.apache.shiro.subject.support.DelegatingSubject#execute(D
>>>> elegatingSubject.java:383)
>>>> org.apache.shiro.web.servlet.AbstractShiroFilter#doFilterInt
>>>> ernal(AbstractShiroFilter.java:362)
>>>> org.apache.shiro.web.servlet.OncePerRequestFilter#doFilter(O
>>>> ncePerRequestFilter.java:125)
>>>> org.apache.catalina.core.ApplicationFilterChain#internalDoFi
>>>> lter(ApplicationFilterChain.java:241)
>>>> org.apache.catalina.core.ApplicationFilterChain#doFilter(App
>>>> licationFilterChain.java:208)
>>>> org.apache.catalina.core.StandardWrapperValve#invoke(Standar
>>>> dWrapperValve.java:220)
>>>> org.apache.catalina.core.StandardContextValve#invoke(Standar
>>>> dContextValve.java:122)
>>>> org.apache.catalina.authenticator.AuthenticatorBase#invoke(A
>>>> uthenticatorBase.java:503)
>>>> org.apache.catalina.core.StandardHostValve#invoke(StandardHo
>>>> stValve.java:170)
>>>> org.apache.catalina.valves.ErrorReportValve#invoke(ErrorRepo
>>>> rtValve.java:103)
>>>> org.apache.catalina.valves.AccessLogValve#invoke(AccessLogVa
>>>> lve.java:950)
>>>> org.apache.catalina.core.StandardEngineValve#invoke(Standard
>>>> EngineValve.java:116)
>>>> org.apache.catalina.connector.CoyoteAdapter#service(CoyoteAd
>>>> apter.java:421)
>>>> org.apache.coyote.ajp.AjpProcessor#process(AjpProcessor.java:190)
>>>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler
>>>> #process(AbstractProtocol.java:611)
>>>> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor#run(J
>>>> IoEndpoint.java:314)
>>>> java.util.concurrent.ThreadPoolExecutor#runWorker(ThreadPool
>>>> Executor.java:1142)
>>>> java.util.concurrent.ThreadPoolExecutor$Worker#run(ThreadPoo
>>>> lExecutor.java:617)
>>>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable#r
>>>> un(TaskThread.java:61)
>>>>      java.lang.Thread#run(Thread.java:745)
>>>>
>>>> The autocomplete works as expected so it doesn't trouble the user.
>>>> Anybody else getting this exception or does it depend on our
>>>> configuration?
>>>>
>>>> Erik
>>>>
>>>>
>>>>
>

Reply via email to