I've found a bug in wicket with the use of FeedbackPanel for messages on events during page construction. For example when a page is constructed using information from the dao to fill a dropdownChoice and some non-fatal event occurs during the trip to the dao.
The bug is this: - If a feedbackPanel is created in the Page constructor, info messages added during onAttach do not reach it. The only way to get these messages on the feedbackPanel is to explicitely add them through the Session: getSession().info("message"); And then the page has to be refreshed to view the messages - no surprise, this is in the API. - And if the feedbackPanel is created during onAttach, the error below occurs. I sometimes use onAttach to call a method to initialize components because that way i have a page and therefore a full path during component construction, enabling me to get to use internationalization. Here is the simplest code producing the bug: import wicket.markup.html.WebPage; import wicket.markup.html.panel.FeedbackPanel; public class TestPage extends WebPage { public TestPage() { add(new FeedbackPanel("feedback")); } @Override protected void onAttach() { super.onAttach(); // if the feedbackPanel is created and/or added here instead of in the constructor, // an error occurs //add(new FeedbackPanel("feedback")); info("Hello user, a non-fatal exception occured during page construction"); } } I have tried what happens if a form and other components are added to the page but its basically the same. If the feedbackPanel was instantiated and added to the form during the overridden onAttach methos, the same error appeared. Is this really a bug? cheers, Ivana ************ BEGIN ERROR ************** WicketMessage: Exception in rendering component: [MarkupContainer [Component id = feedbackul, page = testPackage.TestPage, path = 51:feedback:feedbackul.FeedbackPanel$2, isVisible = true, isVersioned = false]] Root cause: java.lang.NullPointerException at wicket.markup.html.list.ListView.renderItem(ListView.java:676) at wicket.markup.html.list.ListView.onRender(ListView.java:637) at wicket.Component.render(Component.java:1526) at wicket.MarkupContainer.renderNext(MarkupContainer.java:1334) at wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:982) at wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:917) at wicket.Component.renderComponent(Component.java:1712) . . . Page [Page class = testPackage.TestPage, id = 51]: # Path Size Type Model Object 1 <auto>_header 481 bytes wicket.markup.html.internal.HtmlHeaderContainer 2 _<body> 425 bytes wicket.markup.html.internal.HtmlBodyContainer 3 feedback 1.5K wicket.markup.html.panel.FeedbackPanel 4 feedback:feedbackul 2.7K wicket.markup.html.WebMarkupContainer 5 feedback:feedbackul:messages 2.7K wicket.markup.html.list.ListView [[FeedbackMessage message = "Hello user, a non-fatal exception occured during page construction", reporter = 51, level = INFO], [FeedbackMessage message = "Hello user, a non-fatal exception occured during page construction", reporter = null, level = INFO], [FeedbackMessage message = "Hello user, a non-fatal exception occured during page construction", reporter = null, level = INFO], [FeedbackMessage message = "Hello user, a non-fatal exception occured during page construction", reporter = null, level = INFO], [FeedbackMessage message = "Hello user, a non-fatal exception occured during page construction", reporter = null, level = INFO]] ************ END ERROR ************** -- Ivana Cace Func. Internet Integration W http://www.func.nl T +31 20 4230000 F +31 20 4223500 ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user