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