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 egola...@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