Perhaps you could just throw and catch a stacktrace in both cases, logging
to stdout; then force the error and see what you get?

On 7 Nov 2016 3:01 p.m., "Erik de Hair" <[email protected]> wrote:

>
> On 11/07/2016 02:07 PM, Martin Grigorov wrote:
>
>> 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 ?
>>
> You're right. That's not throwing any exception. I don't know how to debug
> this. When I put a breakpoint on getWriter() only, it behaves differently
> because the ajax request times out (I believe) and I get a different
> exception.
>
>>
>> "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