You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Eyal Golan <eg...@gmail.com> on 2009/03/22 11:23:29 UTC

Feedback panel problem

Hello,
I am working on a code that someone wrote more than a year ago. (We have
Wicket legacy code already :) )
In the page, there's a FeedbackPanel.

In the constructor, there are some validations. If a validation fails, we
put it in the feedback panel using error(...) .
When opening the page we get the following message and exception:
2009-03-22 12:04:05,941 ERROR [org.apache.wicket.markup.html.WebPage] -
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2009-03-22 12:04:05,941 ERROR [org.apache.wicket.markup.html.WebPage] - You
probably forgot to add a <body> or <header> tag to your markup since no
Header Container was
found but components where found which want to write to the <head> section.
...[Our code to the header)
2009-03-22 12:04:05,941 ERROR [org.apache.wicket.markup.html.WebPage] -
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2009-03-22 12:04:05,957 ERROR [org.apache.wicket.RequestCycle] - Error
attaching this container for rendering: [MarkupContainer [Component id =
feedbackul, page = com.eurekify.web.selfservice.RolesSelfServicePage, path =
3:form:feedback:feedbackul.FeedbackPanel$2, isVisible = true, isVersioned =
false]]
org.apache.wicket.WicketRuntimeException: Error attaching this container for
rendering: [MarkupContainer [Component id = feedbackul, page =
com.eurekify.web.selfservice.RolesSelfServicePage, path =
3:form:feedback:feedbackul.FeedbackPanel$2, isVisible = true, isVersioned =
false]]
    at
org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1601)
    at org.apache.wicket.Component.onBeforeRender(Component.java:3684)
    at org.apache.wicket.Component.internalBeforeRender(Component.java:1003)
    at org.apache.wicket.Component.beforeRender(Component.java:1035)
    at
org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1589)
    at org.apache.wicket.Component.onBeforeRender(Component.java:3684)
    at org.apache.wicket.Component.internalBeforeRender(Component.java:1003)
    at org.apache.wicket.Component.prepareForRender(Component.java:2168)
    at org.apache.wicket.Page.renderPage(Page.java:884)
    at
org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.respond(BookmarkablePageRequestTarget.java:231)
    at
org.apache.wicket.request.AbstractRequestCycleProcessor.respond(AbstractRequestCycleProcessor.java:104)
    at
org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1177)
    at org.apache.wicket.RequestCycle.step(RequestCycle.java:1248)
    at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1349)
    at org.apache.wicket.RequestCycle.request(RequestCycle.java:493)
    at
org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:387)
    at
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:199)
    at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
    at
com.eurekify.security.SecurityFilter.doFilterInternal(SecurityFilter.java:38)
    at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
    at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065)
    at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365)
    at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:185)
    at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
    at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:689)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:391)
    at
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
    at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
    at org.mortbay.jetty.Server.handle(Server.java:285)
    at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:457)
    at
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:751)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:500)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:357)
    at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:329)
    at
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)
Caused by: java.lang.NullPointerException
    at
org.apache.wicket.markup.html.panel.FeedbackPanel.newMessageDisplayComponent(FeedbackPanel.java:324)
    at
org.apache.wicket.markup.html.panel.FeedbackPanel$MessageListView.populateItem(FeedbackPanel.java:88)
    at
org.apache.wicket.markup.html.list.ListView.onPopulate(ListView.java:573)
    at
org.apache.wicket.markup.repeater.AbstractRepeater.onBeforeRender(AbstractRepeater.java:127)
    at org.apache.wicket.Component.internalBeforeRender(Component.java:1003)
    at org.apache.wicket.Component.beforeRender(Component.java:1035)
    at
org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1589)
    ... 35 more

* The NullPointerException is the validation that fails.

I tried adding the feedback panel before rendering:
    @Override
    /**
     * This is how we call overidable methods.
     */
    protected void onBeforeRender() {
        if (!hasBeenRendered()) {
            initFactories();
        }
        super.onBeforeRender();
    }

    private void initFactories() {
        FeedbackPanel feedbackPanel = new FeedbackPanel("feedback");
        feedbackPanel.setOutputMarkupId(true);
        form.add(feedbackPanel);
    }

- Still have the same problem.

We use Wicket 1.3.4 (and planning to change to 1.3.5 soon).

My solution is to use a normal panel that shows error messages when the page
is constructed. But I would like to understand why this is happening.

Thanks for any suggestion.


Eyal Golan
egolan74@gmail.com

Visit: http://jvdrums.sourceforge.net/
LinkedIn: http://www.linkedin.com/in/egolan74

P  Save a tree. Please don't print this e-mail unless it's really necessary