quick update, ISIS-1544 is now fixed and will be in 1.13.2. I've made the double-click prevention the default, but added a viewer setting to disable it in case it causes issues.
Thx Dan On Wed, 30 Nov 2016 at 08:35 Erik de Hair <[email protected]> wrote: > Created ticket https://issues.apache.org/jira/browse/ISIS-1544 > > On 11/30/2016 09:09 AM, Dan Haywood wrote: > > Yes, do raise a ticket for the double-click issue; I think Martin > suggested > > that it would be fixable. > > Thx > > > > > > On Wed, 30 Nov 2016 at 08:07 Erik de Hair <[email protected]> wrote: > > > >> On 11/07/2016 03:06 PM, Dan Haywood wrote: > >>> Perhaps you could just throw and catch a stacktrace in both cases, > >> logging > >>> to stdout; then force the error and see what you get? > >> I'm sorry. I can't figure this out. May be it's gone with the next > >> Wicket upgrade. It's not really a problem because the user experience is > >> not influenced and it has no other impacts. > >> > >> The other exception after a double click on an okButton is a problem > >> though. Should I raise a ticket for that? > >>> 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 > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >> > >
