This is definitely strange. However without posting more code (or
preferably a complete testcase to reproduce) I don't really know how
to help you with it.

-Matej

On Dec 20, 2007 12:05 AM, Tauren Mills <[EMAIL PROTECTED]> wrote:
> Does anyone have any thoughts on this problem?  I realize this it may
> seem unique and isolated, but are there any suggestions even on how to
> figure out what is wrong?  How can I figure out why the component path
> in the URLs for the Links in the DataView are not matching the
> component hierarchy?  These are the URLs output at initial page
> creation time:
>
> 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::
>
> However, at the time that onClick is processed, the component
> hierarchy seems to have changed and now have the value of 3 and 4
> instead of 1 and 2.  The links above don't work, but the following
> links do if I manually enter them:
>
> http://localhost:8082/db/app/?wicket:interface=:6:reports:reports:3:actions:select::ILinkListener::
> http://localhost:8082/db/app/?wicket:interface=:6:reports:reports:4:actions:select::ILinkListener::
>
> Its almost as if a secondary page render has occurred.  But I've added
> logging to my page and don't see any extra log output.
>
> My project is basically done and ready to launch, but this is holding
> it up.  Any ideas or suggestions?
>
> Thanks!
> Tauren
>
>
>
> On Dec 18, 2007 11:21 PM, Tauren Mills <[EMAIL PROTECTED]> wrote:
> > 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]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to