I'm having an Exception that is happening before any of my Link.onClick() code is executed, making me wonder if there is a wicket bug of some sort.
I have a DataView with an ActionPanel in each row that contains a Link. There is no AJAX on this page. When I load the page with the DataView for the first time, clicking the Link doesn't work and I get an Exception (see below). But if I click the browser back button, then click the same link, it works. However, this problem only occurs for some of the data records, not all of them. But the same data records always break. I thought it was a data problem because of this, but tracing back into the wicket code seems to indicate otherwise. Also, I'm running on the latest wicket trunk that I updated to about 15 minutes ago. The URLs that are output for the Links in the dataview when the page is first loaded is (dataview has only 2 data records): http://localhost:8082/db/app/?wicket:interface=:6:reports:reports:1:actions:select::ILinkListener:: http://localhost:8082/db/app/?wicket:interface=:6:reports:reports:2:actions:select::ILinkListener:: When I hit the back button, the URLs for that same links are: http://localhost:8082/db/app/?wicket:interface=:6:reports:reports:5:actions:select::ILinkListener:: http://localhost:8082/db/app/?wicket:interface=:6:reports:reports:6:actions:select::ILinkListener:: The exception that is thrown is this (only when the first links are clicked, not the links after hitting the back button): WicketMessage: component reports:reports:1:actions:select not found on page com.theseniorlist.database.web.page.site.service.ServiceDetailsPage[id = 6], listener interface = [RequestListenerInterface name=ILinkListener, method=public abstract void org.apache.wicket.markup.html.link.ILinkListener.onLinkClicked()] Root cause: org.apache.wicket.WicketRuntimeException: component reports:reports:1:actions:select not found on page com.theseniorlist.database.web.page.site.service.ServiceDetailsPage[id = 6], listener interface = [RequestListenerInterface name=ILinkListener, method=public abstract void org.apache.wicket.markup.html.link.ILinkListener.onLinkClicked()] at org.apache.wicket.request.AbstractRequestCycleProcessor.resolveListenerInterfaceTarget(AbstractRequestCycleProcessor.java:411) at org.apache.wicket.request.AbstractRequestCycleProcessor.resolveRenderedPage(AbstractRequestCycleProcessor.java:456) at org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve(WebRequestCycleProcessor.java:139) at org.apache.wicket.RequestCycle.step(RequestCycle.java:1152) at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1245) at org.apache.wicket.RequestCycle.request(RequestCycle.java:489) at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:354) at org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:121) at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:445) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1050) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1041) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:354) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:226) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:627) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:141) at org.mortbay.jetty.Server.handle(Server.java:269) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:430) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:687) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:492) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:199) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:339) at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:208) at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475) Sure enough, when I trace the wicket code and examine the data in memory, the first time the dataview page is loaded, the component path to the actual components are values 3 and 4. In fact, if after I load the page for the first time, I manually enter the following URLs, I get the correct page without an exception: http://localhost:8082/db/app/?wicket:interface=:8:reports:reports:3:actions:select::ILinkListener:: http://localhost:8082/db/app/?wicket:interface=:8:reports:reports:4:actions:select::ILinkListener:: Why would the URLs that are rendered the first time be wrong? Is there something in my code that could cause this? Here is a trimmed down version of the code: public ReportListPanel(String id, final Service service) { super(id); this.service = service; ReportsDataProvider dataProvider = new ReportsDataProvider(dao); Report filter = (Report) dataProvider.getFilterState(); filter.setService(service); dataProvider.setFilterState(filter); final DataView reports = new DataView("reports", dataProvider) { @Override protected void populateItem(final Item item) { Report report = (Report) item.getModelObject(); item.setModel(new CompoundPropertyModel(report)); item.add(new ActionPanel(actions",item.getModel())); }; reports.setItemsPerPage(40); add(reports); } class ActionPanel extends Panel { public ActionPanel(String id, IModel model) { super(id, model); setModel(model); Link link = new Link("select",model) { @Override public void onClick() { setResponsePage(new ReportDetailsPage(getPage(),(Report)getModelObject(),service));; } }; link.add(new Label("summary")); add(link); } } Any help would be appreciated! Thanks, Tauren --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]