An issue has been created:

https://issues.apache.org/jira/browse/WICKET-1765

Regards

2008/7/31 Igor Vaynberg <[EMAIL PROTECTED]>

> yeah, we should fix it. please file a jira issue.
>
> -igor
>
> On Thu, Jul 31, 2008 at 4:22 PM, Daniel Freitas
> <[EMAIL PROTECTED]> wrote:
> > I typo got me to a stack overflow. Instead of extending WebPage, I
> extended
> > Page directly and when wicket tried to render the page it threw a
> > StackOverflowError caused by the following code:
> >
> > public class ClockPage extends Page{ //Typo, should be *extends WebPage*
> >
> > }
> >
> > Page extends MarkupContainer
> >
> > public class MarkupContainer ...
> >
> > public String getMarkupType()
> >    {
> >        return getPage().getMarkupType();
> >    }
> > ...
> > }
> >
> > Get page is inherited from Component:
> >
> > public abstract class Component ...
> > ...
> > public final Page getPage()
> >    {
> >        // Search for nearest Page
> >        final Page page = findPage();
> >
> >        // If no Page was found
> >        if (page == null)
> >        {
> >            // Give up with a nice exception
> >            throw new IllegalStateException("No Page found for component "
> +
> > this);
> >        }
> >
> >        return page;
> >    }
> > ...
> > }
> >
> > The problem is that getPage() returns an instance to ClockPage, which
> then
> > calls getMarkupType() on itself which in turn does a getPage(), returning
> > the ClockPage instance again, and then it calls getMarkupType() which
> > call.......... stack overflow.
> >
> > Is this an unforseen, minor bug? Could it be changed to avoid such a
> > situation and throw a more user friendly exception so we know we
> shouldn't
> > extend Page directly?
> >
> > Just asking out of curiosity.
> >
> > Regards,
> > Daniel Freitas
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to