Howard, I had a closer look to volatile in the Loop. Though I don't fully get all the details yet, I don't see why the Form still needs to execute any ComponentAction on the Loop when volatile=true. Why does advanceVolatile need to access the Loop's iterator?
When I remove items from the loop through ajax, this causes a NoSuchElementException like listed below. Looking forward to your reply cuz I'm lost. Cheers, Joost On Fri, Mar 13, 2009 at 11:55 AM, Joost Schouten (mailing lists) <joost...@jsportal.com> wrote: > Howard, > > So why do I get the following exception when I set volatile=true? It > only happens when my Ajax request removes some of the Loop items. It > sounds like Tapestry is still trying to do some sort of state > recovery. > > Cheers, > Joost > > ----- exception ----- > > Caused by: java.util.NoSuchElementException > at java.util.AbstractList$Itr.next(AbstractList.java:427) > at > org.apache.tapestry5.corelib.components.Loop.advanceVolatile(Loop.java:335) > at org.apache.tapestry5.corelib.components.Loop.access$200(Loop.java:41) > at org.apache.tapestry5.corelib.components.Loop$3.execute(Loop.java:92) > at org.apache.tapestry5.corelib.components.Loop$3.execute(Loop.java:96) > at > org.apache.tapestry5.corelib.components.Form.executeStoredActions(Form.java:471) > ... 81 more > > Thanks for you quick response. I added the param but now get a new > Exception (see below). The exception still only happens when elements > are removed from the Loop through AJAX, adding all works fine. This > whole volatile concept is a bit fuzzy to me and scanning the source of > the Loop component does not clear things up to me. Do you have any > further pointers? > > Cheers, > Joost > > --- the new Exception ------ > > > > On Thu, Mar 12, 2009 at 11:55 PM, Howard Lewis Ship <hls...@gmail.com> wrote: >> That what volatile is supposed to do; when set to true, the Loop >> doesn't record its state (i.e., the series of values iterated over) >> into the form data. >> >> On Thu, Mar 12, 2009 at 3:20 AM, Joost Schouten (mailing lists) >> <joost...@jsportal.com> wrote: >>> Hi, >>> >>> AjaxFormLoop seems intended for formitems and would require a lot of >>> javascript wiring to make it do what I want it to do. All I need is >>> for the Form to completely ignore the Loop, just like it did nicely in >>> 5.0.18. Do you know why the Loop's state needs to be persisted in the >>> first place? And why can I not tell it to be completely ignored by the >>> Form? >>> >>> It seems to me that all this state saving on a loop is needed if there >>> are formitems in the loop. If so, it'd be great if I could just ignore >>> the whole state saving and use the Loop in a nice and simple way by >>> setting something like ignoreForm=true. >>> >>> Cheers, >>> Joost >>> >>> On Tue, Mar 10, 2009 at 1:29 PM, DH <ningd...@gmail.com> wrote: >>>> Hi, >>>> >>>> In your case, why not have a try on AjaxFormLoop component, but I haven't >>>> tried this component yet and don't have much experience. >>>> >>>> Loop component in form is a bit tricky. Set volatile='true' means you need >>>> have your source object unchanged. But you have deleted one row during >>>> process, so exception happens. >>>> >>>> Thanks >>>> >>>> DH >>>> >>>> >>>> ----- Original Message ----- >>>> From: "Joost Schouten (mailing lists)" <joost...@jsportal.com> >>>> To: "Tapestry users" <users@tapestry.apache.org> >>>> Sent: Tuesday, March 10, 2009 11:13 AM >>>> Subject: Re: [T5.1.0.0] Loop in Form problem introduced in T5.1.0.0 >>>> >>>> >>>> Dear DH, >>>> >>>> Thanks for you quick response. I added the param but now get a new >>>> Exception (see below). The exception still only happens when elements >>>> are removed from the Loop through AJAX, adding all works fine. This >>>> whole volatile concept is a bit fuzzy to me and scanning the source of >>>> the Loop component does not clear things up to me. Do you have any >>>> further pointers? >>>> >>>> Cheers, >>>> Joost >>>> >>>> --- the new Exception ------ >>>> >>>> Caused by: java.util.NoSuchElementException >>>> at java.util.AbstractList$Itr.next(AbstractList.java:427) >>>> at >>>> org.apache.tapestry5.corelib.components.Loop.advanceVolatile(Loop.java:335) >>>> at org.apache.tapestry5.corelib.components.Loop.access$200(Loop.java:41) >>>> at org.apache.tapestry5.corelib.components.Loop$3.execute(Loop.java:92) >>>> at org.apache.tapestry5.corelib.components.Loop$3.execute(Loop.java:96) >>>> at >>>> org.apache.tapestry5.corelib.components.Form.executeStoredActions(Form.java:471) >>>> ... 81 more >>>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >>> For additional commands, e-mail: users-h...@tapestry.apache.org >>> >>> >> >> >> >> -- >> Howard M. Lewis Ship >> >> Creator Apache Tapestry and Apache HiveMind >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >> For additional commands, e-mail: users-h...@tapestry.apache.org >> >> > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org