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)
>>
>>
>

Reply via email to