i am busy fixing it but it is not as straightforward as just replacing it with Object[]
On Mon, Dec 1, 2008 at 16:38, jWeekend <[EMAIL PROTECTED]> wrote: > > Yes, your suggestion should stop that runtime exception being thrown. A new > (or more comprehensive) test for that method could confirm this. > > What I described addresses a not totally unrelated but slightly broader > concern, and would not impact on any optimisations; it is not more > important > than fixing a known bug that is disturbing a user. > > Regards - Cemal > http://www.jWeekend.co.uk http://jWeekend.co.uk > > > > Matej Knopp-2 wrote: > > > > The only problem right now is the cast to Component[]. The fix is > > easy, just change it to Object[]. The optimization makes a lot of > > sense and there is reason why it can't really be simple. > > > > -Matej > > > > On Mon, Dec 1, 2008 at 2:29 AM, jWeekend <[EMAIL PROTECTED]> > > wrote: > >> > >> MarkupContainer's children field is declared as an Object and can refer > >> to > >> > >> a ChildList - which is a List, hopefully (until it's genericised) of > >> Components, > >> an Object[] - again, hopefully of Components, > >> a Component - ie a single child, or, even > >> a ComponentSourceEntry - a bare-bones representation of only the > >> "essentials" of a Component from which it can be reconstructed. > >> > >> I assume MarkupContainer's implementation was refactored (_from_ > >> something > >> much more straight-forward) as an optimisation, in particular related to > >> serialisation, with the argument probably along the lines of: it is > >> common > >> for a MarkupContainer to have just a single child, so we don't want the > >> luggage of a List in those cases etc ... > >> > >> All this can make MarkupContainer pretty fragile, easy to accidentally > >> break. If the optimisation argument is really strong enough (I expect it > >> must have been at the time and may still be), at the very least, all the > >> messy operations on "children" could be encapsulated in a class (perhaps > >> called FunkyChildren, possibly as an inner class if it necessarily needs > >> access to its owning MarkupContainer instance's guts and is never used > >> outside this context) that exposes only friendly methods like > >> set(int index,Component child) and > >> remove(Component child) > >> etc ... > >> > >> Apart from simplifying MarkupContainer, the above design would also have > >> the > >> benefit of making it possible to address the problem in hand (with the > >> illegal runtime array cast), mend what's broken and test this funky, > >> edge-case(?) behaviour without having to interfere with MarkupContainer. > >> And, if there's a simpler/better/more efficient FunkyChildren possible > >> for > >> 1.5 just plug in the new implementation. Importantly, as this an > internal > >> change (internal to MarkupContainer), there will be no API break > (neither > >> within Wicket nor in the public API). > >> > >> Regards - Cemal > >> http://www.jWeekend.co.uk http://jWeekend.co.uk > >> > >> > >> > >> Matej Knopp-2 wrote: > >>> > >>> this > >>> > >>> sorted = Arrays.asList((Component[])children); > >>> > >>> doesn't look right. I think it should have been (Object[])children > >>> although a type check would be appropriate. > >>> > >>> -Matej > >>> > >>> On Fri, Nov 28, 2008 at 7:30 PM, jWeekend <[EMAIL PROTECTED] > > > >>> wrote: > >>>> > >>>> Not quite. > >>>> String[] bO = (String[])(new Object[]{"yes","we","can"}); > >>>> compiles but fails at run time. > >>>> > >>>> Regards - Cemal > >>>> http://www.jWeekend.co.uk http://jWeekend.co.uk > >>>> > >>>> > >>>> > >>>> Valentine2008 wrote: > >>>>> > >>>>> It will bring the compilation error when trying to cast arrays in > >>>>> Java. > >>>>> > >>>>> So you mean it is a bug in Wicket? > >>>>> > >>>>> > >>>>> Timo Rantalaiho wrote: > >>>>>> > >>>>>> On Thu, 27 Nov 2008, Valentine2008 wrote: > >>>>>>> java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to > >>>>>>> [Lorg.apache > >>>>>>> .wicket.Component; > >>>>>>> at > >>>>>>> > org.apache.wicket.MarkupContainer.iterator(MarkupContainer.java:478) > >>>>>>> ......... > >>>>>>> > >>>>>>> The code on line 478 of MarkupContainer.java is: > >>>>>>> sorted = Arrays.asList((Component[])children); > >>>>>>> > >>>>>>> Is it a bug of Wicket? > >>>>>> > >>>>>> No, I think it's a limitation of Java. You cannnot cast > >>>>>> arrays. > >>>>>> > >>>>>> Best wishes, > >>>>>> Timo > >>>>>> > >>>>>> -- > >>>>>> Timo Rantalaiho > >>>>>> Reaktor Innovations Oy <URL: http://www.ri.fi/ > > >>>>>> > >>>>>> > --------------------------------------------------------------------- > >>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED] > >>>>>> For additional commands, e-mail: [EMAIL PROTECTED] > >>>>>> > >>>>>> > >>>>>> > >>>>> > >>>>> > >>>> > >>>> -- > >>>> View this message in context: > >>>> > http://www.nabble.com/Bug-of-Wicket-1.3.4-when-iterate-the-form-using-iterator%28Comparator%29--tp20723903p20738179.html > >>>> 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/Bug-of-Wicket-1.3.4-when-iterate-the-form-using-iterator%28Comparator%29--tp20723903p20764684.html > >> 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/Bug-of-Wicket-1.3.4-when-iterate-the-form-using-iterator%28Comparator%29--tp20723903p20774302.html > Sent from the Wicket - User mailing list archive at Nabble.com. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >
