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