Thanks for your answer, Igor.

Now I know what is happening more in detail. It is not easy to
explain, sorry for the long text:

I have:

  - DataPanel: a panel with data I want to show.

  - LoadingPanel: a panel which just shows a "loading..." image.

  - PanelLoader: a Panel with an inner panel called "content", which
is loaded initially with LoadingPanel, and sets an AjaxTimerBehavior
which polls the server until the data is ready, and then creates the
DataPanel, replaces the inner "content" with this DataPanel, and stops
the timer behavior.


All this works perfectly until I use a subclass of DataPanel called
FlashDataPanel which, for showing data, shows a flash object which in
turn has to make a request from the browser to get its data. I offer
this data to the flash object as a resource, by making this subclass
of DataPanel implement IResourceListener, and implementing its
"onResourceRequested" method. The URL I add to the flash object is
obtained like:

        CharSequence dataPath =
RequestCycle.get().urlFor(FlashDataContainer.this,
IResourceListener.INTERFACE);
        return RequestUtils.toAbsolutePath( dataPath.toString() );

The problems seems to be that *sometimes, and only sometimes* (maybe
once each 50 correct loads or so), the "onResourceRequested" method
gets called on the LoadingPanel instead of the DataPanel... which is
something strange to my eyes (unless there is something I don't
understand, of course). The URL is created passing the
FlashDataContainer.this object, so I cannot understand how it gets
called on a LoadingPanel, which of course does not implement
IResourceListener, and thus provokes this exception.

Regards,
Daniel.



2009/4/22 Igor Vaynberg <[email protected]>:
> why dont you set a breakpoint for classcastexception and see what it
> is trying to cast to what.
>
> -igor
>
> On Wed, Apr 22, 2009 at 3:52 AM, Daniel Fernandez <[email protected]> 
> wrote:
>> Hello,
>>
>> I have a page which makes quite a heavy use of an
>> AbstractAjaxTimerBehavior for retrieving the content of some Panels
>> (and stops itself after the content is ready, like a sort of
>> "polling") and I am getting a very strange exception which only seems
>> to appear randomly:
>>
>>
>> -------------
>>
>> 2009-04-22 12:21:30,592 ERROR [RequestCycle] (RequestCycle.java:1463)
>> - Method onResourceRequested of interface
>> org.apache.wicket.IResourceListener targeted at component
>> [MarkupContainer [Component id = content]] threw an exception
>> org.apache.wicket.WicketRuntimeException: Method onResourceRequested
>> of interface org.apache.wicket.IResourceListener targeted at component
>> [MarkupContainer [Component id = content]] threw an exception
>>        at 
>> org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:199)
>>        at 
>> org.apache.wicket.request.target.component.BookmarkableListenerInterfaceRequestTarget.processEvents(BookmarkableListenerInterfaceRequestTarget.java:163)
>>        at 
>> org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)
>>        at 
>> org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1192)
>>        at org.apache.wicket.RequestCycle.step(RequestCycle.java:1271)
>>        at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1370)
>>        at org.apache.wicket.RequestCycle.request(RequestCycle.java:501)
>>        at 
>> org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:455)
>>        at 
>> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:288)
>>        at 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
>>        at 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>>        at 
>> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
>>        at 
>> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>>        at 
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
>>        at 
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>>        at 
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>>        at 
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
>>        at 
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>>        at 
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
>>        at 
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
>>        at 
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
>>        at 
>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
>>        at 
>> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
>>        at 
>> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
>>        at 
>> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
>>        at 
>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
>>        at java.lang.Thread.run(Thread.java:619)
>> Caused by: java.lang.IllegalArgumentException:
>> java.lang.classcastexcept...@42ae5f
>>        at sun.reflect.GeneratedMethodAccessor38.invoke(Unknown Source)
>>        at 
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAc1cessorImpl.java:25)
>>        at java.lang.reflect.Method.invoke(Method.java:597)
>>        at 
>> org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:182)
>>        ... 26 more
>>
>>
>> -------------
>>
>>
>> The problem is this I don't get more information than that, and I only
>> get the exception once each, say... 50 times I reload the page (I mean
>> "browser reload" = new page object). The other 49 times everything
>> works fine. It's quite random...
>>
>> Any clues?
>>
>>
>> Regards,
>> Daniel.
>>
>> ---------------------------------------------------------------------
>> 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]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to