Hello,

I have the same issue which is discussed in the following link:
http://apache-wicket.1842946.n4.nabble.com/WicketRuntimeException-component-not-found-on-page-td3055902.html

I made a quickstart to reproduce it. Any idea on how to workaround
this behavior?
I'm using wicket 1.4.12, wiquery 1.1.2, and wiquery-plugin for tooltip
(other-plugins-1.1.jar).

Thanks,
Takeo Hosomi

Step1.
Use following source code to reproduce the problem.

Java:

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.navigation.paging.AjaxPagingNavigator;
import org.apache.wicket.behavior.SimpleAttributeModifier;
import org.apache.wicket.markup.html.CSSPackageResource;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.PageableListView;
import org.apache.wicket.markup.html.panel.Panel;
import org.odlabs.wiquery.ui.themes.ThemeUiHelper;
import org.odlabs.wiquery.ui.themes.UiIcon;
import org.wiquery.plugin.jquertytools.tooltip.TooltipAjaxBehaviour;
import org.wiquery.plugin.jquertytools.tooltip.TooltipBehavior;
import 
org.wiquery.plugin.jquertytools.tooltip.TooltipAjaxBehaviour.IToolTipOnBeforeShowUIEventHandler;
import org.wiquery.plugin.jquertytools.tooltip.TooltipBehavior.Offset;
import org.wiquery.plugin.jquertytools.tooltip.TooltipBehavior.Position;

public class TestPanel extends Panel {
        private static final long serialVersionUID = 1L;
        
        private static int rowHeight = 40;
        
        public TestPanel(String id) {
                super(id);
                setOutputMarkupId(true);
                
            add(CSSPackageResource.getHeaderContribution(TooltipBehavior.CSS));
        
        // Tooltip Indicator
        final WebMarkupContainer indiIcon = new WebMarkupContainer("indiIcon");
        ThemeUiHelper.iconComponent(indiIcon, UiIcon.CARAT_1_EAST);
        final WebMarkupContainer tooltipIndicator = new 
WebMarkupContainer("indi");
        tooltipIndicator.add(indiIcon);
        tooltipIndicator.add(new SimpleAttributeModifier("style",
                                        
"display:none;background-color:#C4C4C4;" +
                                        "height:"+20+"px;" +
                                        
"padding-top:"+((rowHeight-20)/2-1)+"px;padding-bottom:"+((rowHeight-20)/2-1)+"px;"));
        tooltipIndicator.setOutputMarkupId(true);
        add(tooltipIndicator);
        
            // Container
        WebMarkupContainer container = new WebMarkupContainer("container");
        container.setOutputMarkupId(true);
        add(container);
                
                PageableListView<DummyUser> users = new
PageableListView<DummyUser>("user", dummyUsers(), 3){
                /***/
                        private static final long serialVersionUID = 1L;

                        @Override
                        protected void populateItem(ListItem<DummyUser> item) {
                                item.add(new 
SimpleAttributeModifier("style","height:"+rowHeight+"px;"));
                                item.add(new Label("name", 
item.getModelObject().getName()));
                                item.add(new Label("first", 
item.getModelObject().getFirst()));
                                item.add(new Label("last", 
item.getModelObject().getLast()));
                        item.add(new TooltipAjaxBehaviour()
                                .setDelay(0) // TODO magic number 400ms
                                .setPredelay(0)
                                .setPosition(Position.bottom_right)             
                
                                .setOffset(new Offset(-(rowHeight-1),-15)) // 
y,x
                                .setTip(tooltipIndicator)
                                .setOnBeforeShow(new 
IToolTipOnBeforeShowUIEventHandler() {
                                        private static final long 
serialVersionUID = 1L;

                                        public void onEvent(AjaxRequestTarget 
target, Component
component, int top, int left) {
                                                // do something...
                                        }
                                })
                        );
                        }
            };
            container.add(users);
            container.add(new AjaxPagingNavigator("navigator", users));
        }
        
        private List<DummyUser> dummyUsers() {
                List<DummyUser> ret = new ArrayList<DummyUser>();
                for (int i=0; i<10 ; i++){
                        ret.add(new DummyUser("name"+i,"first"+i,"last"+i));
                }
                return ret;
        }
        
        private class DummyUser implements Serializable {
                private static final long serialVersionUID = 1L;
                private String name;
                private String first;
                private String last;
                
                public DummyUser(String name, String first, String last){
                        this.name = name;
                        this.first = first;
                        this.last = last;
                }
                public String getName() {
                        return name;
                }
                public String getFirst() {
                        return first;
                }
                public String getLast() {
                        return last;
                }       
        }
}


HTML:

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml";;
        
xmlns:wicket="http://svn.apache.org/repos/asf/wicket/trunk/wicket/wicket-xhtml1-strict.dtd";;>

<wicket:panel>
        <br/>
        <div wicket:id="container">
                <table>
                        <tr>
                            <th>User Name</th>
                            <td>First Name</td>
                            <td>Last Name</td>
                        </tr>
                        <tr wicket:id="user">                   
                                <th  wicket:id="name">g1</th>
                                <td  wicket:id="first">g1</td>
                                <td  wicket:id="last">g1</td>
                        </tr>
                </table>
                <div wicket:id="navigator"></div>
        </div>
        <div wicket:id="indi">
                <div wicket:id="indiIcon"></div>
        </div>
</wicket:panel>
</html>



Step2.
When clicking the paging navigator, quickly move the mouse to the
table region. Then sometimes following error messages are shown:

ERROR - RequestCycle               -
org.apache.wicket.WicketRuntimeException: component
tabs:container:user:2 not found on page gvc.web.webpages.TestPage[id =
4], listener interface = [RequestListenerInterface
name=IActivePageBehaviorListener, method=public abstract void
org.apache.wicket.behavior.IBehaviorListener.onRequest()]
org.apache.wicket.protocol.http.request.InvalidUrlException:
org.apache.wicket.WicketRuntimeException: component
tabs:container:user:2 not found on page gvc.web.webpages.TestPage[id =
4], listener interface = [RequestListenerInterface
name=IActivePageBehaviorListener, method=public abstract void
org.apache.wicket.behavior.IBehaviorListener.onRequest()]
        at 
org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve(WebRequestCycleProcessor.java:262)
        at org.apache.wicket.RequestCycle.step(RequestCycle.java:1310)
        at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1436)
        at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
        at 
org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:484)
        at 
org.apache.wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:138)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at 
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:527)
        at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1216)
        at 
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
        at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1187)
        at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:421)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
        at 
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:493)
        at 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:225)
        at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:930)
        at 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:358)
        at 
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183)
        at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:866)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
        at 
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:245)
        at 
org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
        at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:113)
        at org.eclipse.jetty.server.Server.handle(Server.java:351)
        at 
org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:594)
        at 
org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:1041)
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:549)
        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:211)
        at 
org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:424)
        at 
org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:489)
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436)
        at java.lang.Thread.run(Thread.java:619)
Caused by: org.apache.wicket.WicketRuntimeException: component
tabs:container:user:2 not found on page gvc.web.webpages.TestPage[id =
4], listener interface = [RequestListenerInterface
name=IActivePageBehaviorListener, method=public abstract void
org.apache.wicket.behavior.IBehaviorListener.onRequest()]
        at 
org.apache.wicket.request.AbstractRequestCycleProcessor.resolveListenerInterfaceTarget(AbstractRequestCycleProcessor.java:426)
        at 
org.apache.wicket.request.AbstractRequestCycleProcessor.resolveRenderedPage(AbstractRequestCycleProcessor.java:471)
        at 
org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve(WebRequestCycleProcessor.java:144)
        ... 33 more

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to