fixed

On Mon, Dec 1, 2008 at 16:48, Johan Compagner <[EMAIL PROTECTED]> wrote:

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

Reply via email to