While the repaint is somewhat asynchronous, this shouldn't affect the
actual form serialization. Can you provide a quickstart that can be
used to reproduce this problem?

-Matej

On 9/19/07, Sam Hough <[EMAIL PROTECTED]> wrote:
>
> I'm using 1.3-beta3
>
> I think as far as the wicket js is concerned it has finished (as it has done
> elmt.innerHTML='something') but the problem is that the browser does the
> re-rendering in a different thread to the java script engine. So when I
> click the second time the HTML is only partially finished...
>
> Maybe I'll have a look at how selenium waits for the browser to "settle".
> Think this is a common problem for browser based robot testing.
>
>
> Matej Knopp-2 wrote:
> >
> > What exact wicket version are you using? With the current trunk the
> > client side form serialization waits until the previous ajax request
> > finished even if you submit the form during previous request
> > processing. But I'm not really sure that this is your issue.
> >
> > -Matej
> >
> > On 9/19/07, Sam Hough <[EMAIL PROTECTED]> wrote:
> >>
> >> Yes. Click A updates part of the form. Click B (very soon after A) also
> >> submits that form. So my suspicion is that the browser is still busy
> >> parsing
> >> the last update and click B sends a form in an intermediate state.
> >>
> >> Does that sound likely? I've seen it in the past that after innerHTML you
> >> have to wait a while to access the DOM.
> >>
> >>
> >> Johan Compagner wrote:
> >> >
> >> > do you click fast on a dom portion that is being replaced by the
> >> previous
> >> > request?
> >> >
> >> > johan
> >> >
> >> >
> >> > On 9/19/07, Sam Hough <[EMAIL PROTECTED]> wrote:
> >> >>
> >> >>
> >> >> Bit more information is that the bean property that is causing the
> >> >> problem
> >> >> is
> >> >> being set to null by my html form via a wicket ajax update...
> >> >>
> >> >> Could it be that although wicket is doing everything correctly the DOM
> >> in
> >> >> (firefox 2) has not "settled" after the elmt.innerHTML= ... from the
> >> >> previous ajax response so the next click sends an update that I
> >> wouldn't
> >> >> expect?
> >> >>
> >> >> Any options in wicket to block the UI till the DOM has settled? Or
> >> shall
> >> >> I
> >> >> point my html monkey at it?
> >> >>
> >> >>
> >> >>
> >> >>
> >> >> Sam Hough wrote:
> >> >> >
> >> >> > Must be me then. I'll try and pin it down more. Hmmm.
> >> >> >
> >> >> >
> >> >> >
> >> >> > Johan Compagner wrote:
> >> >> >>
> >> >> >> the nullpointer comes from outside of wicket (criterion class) but
> >> you
> >> >> >> say if you click quickly you only get it? all pages are blocked by
> >> a
> >> >> >> barrier that is build around the pagemap. its in Session.get page
> >> >> >> method. only 1 request can pass that at the same time.

but what is
> >> >> >> suddenly null that you dont expect to be null?
> >> >> >>
> >> >> >> On 9/18/07, Sam Hough <[EMAIL PROTECTED]> wrote:
> >> >> >>>
> >> >> >>> That is pretty much it. Except that:
> >> >> >>> Caused by: java.lang.NullPointerException
> >> >> >>> at
> >> >> >>> com.namechangedtoprotectguilty.search.Criterion.getHelper(
> >> >> Criterion.java:200)
> >> >> >>> at sun.reflect.GeneratedMethodAccessor41.invoke(Unknown Source)
> >> >> >>>     at
> >> >> >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(
> >> >> DelegatingMethodAccessorImpl.java:25)
> >> >> >>>     at java.lang.reflect.Method.invoke(Method.java:585)
> >> >> >>>     at
> >> >> >>>
> >> >> org.apache.wicket.util.lang.PropertyResolver$MethodGetAndSet.getValue(
> >> >> PropertyResolver.java:1030)
> >> >> >>>
> >> >> >>> Blows up in our code in a way that really looks like a
> >> multithreading
> >> >> >>> issue
> >> >> >>> to me. If I click slowly no problems, if I click quickly on a slow
> >> >> page
> >> >> >>> it
> >> >> >>> reliably blows up. Guess I could put in a sync filter to double
> >> check
> >> >> >>> that
> >> >> >>> it is a sync error. We don't create any threads so apart from
> >> >> threading
> >> >> >>> issue I can't see what else it could be...
> >> >> >>>
> >> >> >>>
> >> >> >>> igor.vaynberg wrote:
> >> >> >>> >
> >> >> >>> > show us the full stack trace
> >> >> >>> >
> >> >> >>> > -igor
> >> >> >>> >
> >> >> >>> > On 9/18/07, Sam Hough <[EMAIL PROTECTED]> wrote:
> >> >> >>> >>
> >> >> >>> >>
> >> >> >>> >> Which bit of code does the blocking on the server? I'm getting
> >> >> what
> >> >> >>> looks
> >> >> >>> >> very much like a threading issue. I've looked at all the
> >> methods
> >> >> >>> below
> >> >> >>> >> and
> >> >> >>> >> can't see any obvious sync code... I'm using 1.3-beta3
> >> >> >>> >>
> >> >> >>> >>         at
> >> >> >>> >>
> >> >> >>>
> >> >> org.apache.wicket.util.lang.PropertyResolver$MethodGetAndSet.getValue(
> >> >> >>> >> PropertyResolver.java:1034)
> >> >> >>> >>         at
> >> >> >>> >>
> >> >> org.apache.wicket.util.lang.PropertyResolver.getObjectAndGetSetter(
> >> >> >>> >> PropertyResolver.java:247)
> >> >> >>> >>         at
> >> >> >>> >> org.apache.wicket.util.lang.PropertyResolver.getValue(
> >> >> >>> >> PropertyResolver.java:89)
> >> >> >>> >>         at
> >> >> >>> >> org.apache.wicket.model.AbstractPropertyModel.getObject(
> >> >> >>> >> AbstractPropertyModel.java:110)
> >> >> >>> >>         at
> >> >> >>> >> org.apache.wicket.Component.getModelObject(Component.java:1293)
> >> >> >>> >>         at org.apache.wicket.Component$2.compare(Component.java
> >> >> :540)
> >> >> >>> >>         at
> >> >> >>> >> org.apache.wicket.Component.setModelObject(Component.java:2522)
> >> >> >>> >>         at
> >> >> >>> >> org.apache.wicket.markup.html.form.FormComponent.updateModel(
> >> >> >>> >> FormComponent.java:1002)
> >> >> >>> >>         at
> >> >> >>> org.apache.wicket.markup.html.form.Form$14.validate(Form.java
> >> >> >>> >> :1642)
> >> >> >>> >>         at
> >> >> >>> >>
> >> >> >>>
> >> >>
> >> org.apache.wicket.markup.html.form.Form$ValidationVisitor.formComponent(
> >> >> >>> >> Form.java:160)
> >> >> >>> >>         at
> >> >> >>> >>
> >> >> >>> >>
> >> >> >>>
> >> >>
> >> org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrderHelper
> >> >> >>> >> (FormComponent.java:403)
> >> >> >>> >>         at
> >> >> >>> >>
> >> >> >>> >>
> >> >> >>>
> >> >>
> >> org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrderHelper
> >> >> >>> >> (FormComponent.java:390)
> >> >> >>> >>         at
> >> >> >>> >>
> >> >> >>> >>
> >> >> >>>
> >> >>
> >> org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrderHelper
> >> >> >>> >> (FormComponent.java:390)
> >> >> >>> >>         at
> >> >> >>> >>
> >> >> >>> >>
> >> >> >>>
> >> >>
> >> org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrderHelper
> >> >> >>> >> (FormComponent.java:390)
> >> >> >>> >>         at
> >> >> >>> >>
> >> >> >>> >>
> >> >> >>>
> >> >>
> >> org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrderHelper
> >> >> >>> >> (FormComponent.java:390)
> >> >> >>> >>         at
> >> >> >>> >>
> >> >> >>> >>
> >> >> >>>
> >> >>
> >> org.apache.wicket.markup.html.form.FormComponent.visitFormComponentsPostOrder
> >> >> >>> >> (FormComponent.java:368)
> >> >> >>> >>         at
> >> >> >>> >>
> >> >> org.apache.wicket.markup.html.form.Form.visitFormComponentsPostOrder(
> >> >> >>> >> Form.java:1004)
> >> >> >>> >>         at
> >> >> >>> >>
> >> org.apache.wicket.markup.html.form.Form.updateFormComponentModels(
> >> >> >>> >> Form.java:1637)
> >> >> >>> >>         at
> >> >> >>> org.apache.wicket.markup.html.form.Form.process(Form.java:834)
> >> >> >>> >>         at
> >> >> org.apache.wicket.markup.html.form.Form.onFormSubmitted(
> >> >> >>> >> Form.java:783)
> >> >> >>> >>         at
> >> >> >>> >> org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(
> >> >> >>> >> AjaxFormSubmitBehavior.java:126)
> >> >> >>> >>         at
> >> >> >>> >>
> >> >> >>> org.apache.wicket.ajax.AjaxEventBehavior.respond(
> >> >> AjaxEventBehavior.java
> >> >> >>> >> :163)
> >> >> >>> >>         at
> >> >> >>> >> org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(
> >> >> >>> >> AbstractDefaultAjaxBehavior.java:268)
> >> >> >>> >>         at
> >> >> >>> >>
> >> >> >>> >>
> >> >> >>>
> >> >>
> >> org.apache.wicket.request.target.component.listener.BehaviorRequestTarget.processEvents
> >> >> >>> >> (BehaviorRequestTarget.java:100)
> >> >> >>> >>         at
> >> >> >>> >>
> >> >> >>>
> >> >> org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(
> >> >> >>> >> AbstractRequestCycleProcessor.java:90)
> >> >> >>> >>         at
> >> >> >>> >>
> >> >> >>> org.apache.wicket.RequestCycle.processEventsAndRespond(
> >> >> RequestCycle.java
> >> >> >>> >> :1032)
> >> >> >>> >>         at
> >> >> >>> org.apache.wicket.RequestCycle.step(RequestCycle.java:1108)
> >> >> >>> >>         at
> >> >> >>> org.apache.wicket.RequestCycle.steps(RequestCycle.java:1177)
> >> >> >>> >>         at
> >> >> >>> org.apache.wicket.RequestCycle.request(RequestCycle.java:500)
> >> >> >>> >>         at
> >> >> >>> >>
> >> >> >>>
> >> org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java
> >> >> :261)
> >> >> >>> >>         at
> >> >> >>> >>
> >> >> >>> org.apache.wicket.protocol.http.WicketFilter.doFilter(
> >> >> WicketFilter.java
> >> >> >>> >> :127)
> >> >> >>> >>         at
> >> >> >>> >>
> >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> >> >> >>> >> ApplicationFilterChain.java:215)
> >> >> >>> >>         at
> >> >> >>> >> org.apache.catalina.core.ApplicationFilterChain.doFilter(
> >> >> >>> >> ApplicationFilterChain.java:188)
> >> >> >>> >>         at
> >> >> >>> >> org.apache.catalina.core.StandardWrapperValve.invoke(
> >> >> >>> >> StandardWrapperValve.java:210)
> >> >> >>> >>         at
> >> >> >>> >> org.apache.catalina.core.StandardContextValve.invoke(
> >> >> >>> >> StandardContextValve.java:174)
> >> >> >>> >>         at
> >> >> >>> >>
> >> >> >>> org.apache.catalina.core.StandardHostValve.invoke(
> >> >> StandardHostValve.java
> >> >> >>> >> :127)
> >> >> >>> >>         at
> >> >> >>> >>
> >> >> >>> org.apache.catalina.valves.ErrorReportValve.invoke(
> >> >> ErrorReportValve.java
> >> >> >>> >> :117)
> >> >> >>> >>         at
> >> >> >>> >> org.apache.catalina.core.StandardEngineValve.invoke(
> >> >> >>> >> StandardEngineValve.java:108)
> >> >> >>> >>         at
> >> >> >>> >>
> >> >> >>>
> >> >> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java
> >> >> >>> >> :151)
> >> >> >>> >>         at
> >> >> >>> >>
> >> >> >>>
> >> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
> >> >> :870)
> >> >> >>> >>         at
> >> >> >>> >>
> >> >> >>> >>
> >> >> >>>
> >> >>
> >> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection
> >> >> >>> >> (Http11BaseProtocol.java:665)
> >> >> >>> >>         at
> >> >> >>> >> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(
> >> >> >>> >> PoolTcpEndpoint.java:528)
> >> >> >>> >>         at
> >> >> >>> >> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(
> >> >> >>> >> LeaderFollowerWorkerThread.java:81)
> >> >> >>> >>         at
> >> >> >>> >> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
> >> >> >>> >> ThreadPool.java:685)
> >> >> >>> >>         at java.lang.Thread.run(Thread.java:595)
> >> >> >>> >>
> >> >> >>> >>
> >> >> >>> >> Matej Knopp-2 wrote:
> >> >> >>> >> >
> >> >> >>> >> > There is no way that ajax requests can be processed without
> >> >> >>> blocking.
> >> >> >>> >> > a) ajax requests are ordered on client into queues
> >> >> >>> >> > b) requests are blocked on target page (not session) on
> >> server
> >> >> side
> >> >> >>> >> >
> >> >> >>> >> > -Matej
> >> >> >>> >> >
> >> >> >>> >> > On 9/7/07, Sam Hough <[EMAIL PROTECTED]> wrote:
> >> >> >>> >> >>
> >> >> >>> >> >> A bit of the application lets you add items to a list using
> >> >> >>> >> >> AjaxFallbackButton. All works fine if you click the buttons
> >> >> slowly
> >> >> >>> but
> >> >> >>> >> if
> >> >> >>> >> >> I
> >> >> >>> >> >> click quickly I get exceptions that look like my code is
> >> >> running
> >> >> >>> >> >> concurrently (nullpointer where it can't happen if running
> >> in a
> >> >> >>> single
> >> >> >>> >> >> thread).
> >> >> >>> >> >>
> >> >> >>> >> >> What behaviour is Wicket aiming to implement for Ajax and
> >> >> >>> threading?
> >> >> >>> >> >>
> >> >> >>> >> >>
> >> >> >>> >> >>
> >> >> >>> >> >> Matej Knopp-2 wrote:
> >> >> >>> >> >> >
> >> >> >>> >> >> > Can you be more specific? What kind of concurrency issues?
> >> >> >>> >> >> >
> >> >> >>> >> >> > -Matej
> >> >> >>> >> >> >
> >> >> >>> >> >> > On 9/7/07, Sam Hough <[EMAIL PROTECTED]> wrote:
> >> >> >>> >> >> >>
> >> >> >>> >> >> >> oops, I posted on old forum...
> >> >> >>> >> >> >>
> >> >> >>> >> >> >> http://www.nabble.com/threading-question-tf841003.html
> >> >> >>> >> >> >>
> >> >> >>> >> >> >> [all request serialised on Session object]
> >> >> >>> >> >> >>
> >> >> >>> >> >> >> Is this true even for Ajax requests? Is whole life cycle
> >> >> >>> >> effectively
> >> >> >>> >> >> >> single
> >> >> >>> >> >> >> threaded for a single session?
> >> >> >>> >> >> >>
> >> >> >>> >> >> >> I think I'm seeing a concurrency issue in my website
> >> (Wicket
> >> >> >>> >> 1.3-beta3
> >> >> >>> >> >> >> and
> >> >> >>> >> >> >> lots of AjaxFallbackButton, I did listen to Igor)...
> >> >> >>> >> >> >>
> >> >> >>> >> >> >> Obviously would be tempting to sync on the Session but
> >> might
> >> >> >>> break
> >> >> >>> >> lot
> >> >> >>> >> >> of
> >> >> >>> >> >> >> the usability advantages of Ajax...
> >> >> >>> >> >> >>
> >> >> >>> >> >> >> Anybody got any top tips?
> >> >> >>> >> >> >> --
> >> >> >>> >> >> >> View this message in context:
> >> >> >>> >> >> >>
> >> >> >>> >> >>
> >> >> >>> >>
> >> >> >>>
> >> >>
> >> http://www.nabble.com/threading-issues---continued-tf4400569.html#a12552735
> >> >> >>> >> >> >> Sent from the Wicket - User mailing list archive at
> >> >> Nabble.com.
> >> >> >>> >> >> >>
> >> >> >>> >> >> >>
> >> >> >>> >> >> >>
> >> >> >>> >>
> >> >> ---------------------------------------------------------------------
> >> >> >>> >> >> >> To unsubscribe, e-mail:
> >> [EMAIL PROTECTED]
> >> >> >>> >> >> >> For additional commands, e-mail:
> >> >> [EMAIL PROTECTED]
> >> >> >>> >> >> >>
> >> >> >>> >> >> >>
> >> >> >>> >> >> >
> >> >> >>> >> >> >
> >> >> >>> >>
> >> >> ---------------------------------------------------------------------
> >> >> >>> >> >> > To unsubscribe, e-mail:
> >> [EMAIL PROTECTED]
> >> >> >>> >> >> > For additional commands, e-mail:
> >> [EMAIL PROTECTED]
> >> >> >>> >> >> >
> >> >> >>> >> >> >
> >> >> >>> >> >> >
> >> >> >>> >> >>
> >> >> >>> >> >> --
> >> >> >>> >> >> View this message in context:
> >> >> >>> >> >>
> >> >> >>> >>
> >> >> >>>
> >> >>
> >> http://www.nabble.com/threading-issues---continued-tf4400569.html#a12553207
> >> >> >>> >> >> Sent from the Wicket - User mailing list archive at
> >> Nabble.com.
> >> >> >>> >> >>
> >> >> >>> >> >>
> >> >> >>> >> >>
> >> >> >>>
> >> ---------------------------------------------------------------------
> >> >> >>> >> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> >> >>> >> >> For additional commands, e-mail:
> >> [EMAIL PROTECTED]
> >> >> >>> >> >>
> >> >> >>> >> >>
> >> >> >>> >> >
> >> >> >>> >> >
> >> >> >>>
> >> ---------------------------------------------------------------------
> >> >> >>> >> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> >> >>> >> > For additional commands, e-mail: [EMAIL PROTECTED]
> >> >> >>> >> >
> >> >> >>> >> >
> >> >> >>> >> >
> >> >> >>> >>
> >> >> >>> >> --
> >> >> >>> >> View this message in context:
> >> >> >>> >>
> >> >> >>>
> >> >>
> >> http://www.nabble.com/threading-issues---continued-tf4400569.html#a12759130
> >> >> >>> >> Sent from the Wicket - User mailing list archive at Nabble.com.
> >> >> >>> >>
> >> >> >>> >>
> >> >> >>> >>
> >> >> ---------------------------------------------------------------------
> >> >> >>> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> >> >>> >> For additional commands, e-mail: [EMAIL PROTECTED]
> >> >> >>> >>
> >> >> >>> >>
> >> >> >>> >
> >> >> >>> >
> >> >> >>>
> >> >> >>> --
> >> >> >>> View this message in context:
> >> >> >>>
> >> >>
> >> http://www.nabble.com/threading-issues---continued-tf4400569.html#a12759515
> >> >> >>> Sent from the Wicket - User mailing list archive at Nabble.com.
> >> >> >>>
> >> >> >>>
> >> >> >>>
> >> ---------------------------------------------------------------------
> >> >> >>> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> >> >>> For additional commands, e-mail: [EMAIL PROTECTED]
> >> >> >>>
> >> >> >>>
> >> >> >>
> >> >> >>
> >> >> >
> >> >> >
> >> >>
> >> >> --
> >> >> View this message in context:
> >> >>
> >> http://www.nabble.com/threading-issues---continued-tf4400569.html#a12772965
> >> >> Sent from the Wicket - User mailing list archive at Nabble.com.
> >> >>
> >> >>
> >> >> ---------------------------------------------------------------------
> >> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> >> For additional commands, e-mail: [EMAIL PROTECTED]
> >> >>
> >> >>
> >> >
> >> >
> >>
> >> --
> >> View this message in context:
> >> http://www.nabble.com/threading-issues---continued-tf4400569.html#a12774734
> >> Sent from the Wicket - User mailing list archive at Nabble.com.
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> For additional commands, e-mail: [EMAIL PROTECTED]
> >>
> >>
> >
> >
>
> --
> View this message in context: 
> http://www.nabble.com/threading-issues---continued-tf4400569.html#a12774963
> Sent from the Wicket - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to