Ok, this has been fixed. Let me know if this all works for you now, because if so, I need to apply a similar fix to ListViewItemEditor and TreeViewNodeEditor :)
-T On Tue, Sep 15, 2009 at 6:34 PM, Todd Volkert <[email protected]> wrote: > Yeah I was just able to reproduce it myself with a little addition to the > row editor demo. I'll invetigate. > > -T > > p.s. I'm cc'ing [email protected] on some of the recent > discussions since you're starting to get into content that's more suited to > pivot-dev. Scott, you might want to consider subscribing to pivot-dev. > > > > On Tue, Sep 15, 2009 at 6:26 PM, Scott Lanham <[email protected]> wrote: > >> Attached is a test app that reproduces the error. I had to revert the >> patch >> that Todd sent through to get the exception to occur. >> >> On Wed, 16 Sep 2009 08:04:14 am Scott Lanham wrote: >> > There is no threading in the app yet, just doing everything in the main >> > thread. I am trying to build a test app to see if I can get it to break >> in >> > another way. >> > >> > On Wed, 16 Sep 2009 07:51:29 am Greg Brown wrote: >> > > If you don't see this exception consistently, a threading issue is >> > > certainly a possibility. Are you doing anything in the background, and >> > > then possibly closing a window when the operation completes? >> > > >> > > If you are using threads in your app, you need to make sure that all >> > > UI operations execute on the event dispatch thread (same as Swing). >> > > You can do this by passing a Runnable to >> > > ApplicationContext.queueCallback(). >> > > >> > > Greg >> > > >> > > On Sep 15, 2009, at 5:42 PM, Scott Lanham wrote: >> > > > There is no exception this time but the row editor doesn't appear at >> > > > all if >> > > > invoked immediately after the new row is inserted. >> > > > >> > > > On Wed, 16 Sep 2009 07:26:48 am Todd Volkert wrote: >> > > >> Very interesting. The *only* way I could explain this error would >> > > >> be if a >> > > >> component was mucking with its parent's component collection in the >> > > >> body of >> > > >> validate(). Can you make the following change locally, re-run your >> > > >> test, >> > > >> and send us the stack trace: >> > > >> >> > > >> =================================================================== >> > > >> --- wtk/src/org/apache/pivot/wtk/Container.java (revision >> 815485) >> > > >> +++ wtk/src/org/apache/pivot/wtk/Container.java (working copy) >> > > >> @@ -321,8 +321,7 @@ >> > > >> && isVisible()) { >> > > >> super.validate(); >> > > >> >> > > >> - for (int i = 0, n = components.getLength(); i < n; i+ >> > > >> +) { >> > > >> - Component component = components.get(i); >> > > >> + for (Component component : components) { >> > > >> component.validate(); >> > > >> } >> > > >> } >> > > >> >> > > >> Thanks, >> > > >> -T >> > > >> >> > > >> On Tue, Sep 15, 2009 at 5:08 PM, Scott Lanham <[email protected]> >> > > >> >> > > >> wrote: >> > > >>> On Wed, 16 Sep 2009 06:50:51 am Todd Volkert wrote: >> > > >>>> Just following up on this thread, are you all set now Scott with >> > > >>>> the >> > > >>> >> > > >>> newest >> > > >>> >> > > >>>> code from SVN, or are you still getting an exception? >> > > >>>> >> > > >>>> -T >> > > >>> >> > > >>> Hi Todd, >> > > >>> >> > > >>> I still have the problem of adding a new record to the List bound >> > > >>> to the >> > > >>> TableView and then immediately invoking TableViewRowEditor on the >> > > >>> row: >> > > >>> >> > > >>> Exception in thread "AWT-EventQueue-0" >> > > >>> java.lang.IndexOutOfBoundsException at >> > > >>> org.apache.pivot.collections.ArrayList.get(ArrayList.java:358) at >> > > >>> org.apache.pivot.wtk.Container.validate(Container.java:325) at >> > > >>> org.apache.pivot.wtk.Display$ValidateCallback.run(Display.java:30) >> > > >>> at >> > > >>> java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) >> > > >>> at java.awt.EventQueue.dispatchEvent(EventQueue.java:597) >> > > >>> at >> > > >>> >> > > >>> java.awt.EventDispatchThread.pumpOneEventForFilters >> > > >>> (EventDispatchThread.j >> > > >>> ava:269) at >> > > >>> >> > > >>> java.awt.EventDispatchThread.pumpEventsForFilter >> > > >>> (EventDispatchThread.java >> > > >>> >> > > >>> :184) at >> > > >>> >> > > >>> java.awt.EventDispatchThread.pumpEventsForHierarchy >> > > >>> (EventDispatchThread.j >> > > >>> ava:174) at >> > > >>> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java: >> > > >>> 169) >> > > >>> at >> > > >>> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java: >> > > >>> 161) >> > > >>> at >> java.awt.EventDispatchThread.run(EventDispatchThread.java: >> > > >>> 122) >> >> >
