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]

Reply via email to