Hello Francisco,

I don't think the issue is exactly the same, as I am always getting
"interface" URLs, the "good" ones... but it might be related, as I am
also having component + resource listener on the same page (though I
have no header contributor).

Regards,
Daniel.


2009/4/23 francisco treacy <[email protected]>:
> I don't think it's the same issue, but I had some trouble with loading
> a Flash stream and IResourceListener
>
> https://issues.apache.org/jira/browse/WICKET-2204
>
> Francisco
>
> 2009/4/23 Daniel Fernandez <[email protected]>:
>> By the way, in case this gives you more information, my "DataPanel" is
>> very similar to the "OpenFlashChart" Panel class defined in
>> http://cwiki.apache.org/WICKET/open-flash-chart-and-wicket.html, as in
>> fact my flash object is Open Flash Chart (I am loading many charts in
>> the same page in an asynchronous way).
>>
>> Regards,
>> Daniel.
>>
>>
>> 2009/4/23 Daniel Fernandez <[email protected]>:
>>> Thank you again for your time, Igor.
>>>
>>> Your explanation makes sense by itself, but it is not my problem, I'm
>>> afraid... this thing can happen to me even the first time I load the
>>> page, without reloading at all.
>>>
>>> I investigated deeper and I realised that what was happening was that,
>>> when the server received the request from the flash object for
>>> retrieving the data (a request on the IResourceListener interface of
>>> the DataPanel)... the onBeforeRender() method of the outer container
>>> was being executed some times (and this onBeforeRender created a new
>>> LoadingPanel, which is what caused the exception)...  and this makes
>>> no sense to me.
>>>
>>> Let me put it clear, once loaded by the DataPanel onto the browser,
>>> the flash object requests:
>>>
>>> http://myserver/MyPage/wicket:interface/:5:outerpanel:panelloader:datapanel::IResourceListener::
>>>
>>> Which means that it is calling the datapanel which created the flash
>>> object itself as a resource listener, to simply obtain a resource
>>> declared there (a WebResource object) containing a String of data in
>>> JSON format.
>>>
>>> In my understanding this request, which is executed via the
>>> XmlHttpRequest object in the browser, should never provoke
>>> "outerpanel"'s onBeforeRender() method to execute... but it does! I
>>> put a log sentence in this onBeforeRender method which outputs
>>> "RequestCycle.get().getRequest().getURL()" and I receive an URL like
>>> the one above... but only sometimes, only when it fails.
>>>
>>> Is this possible, is there something I am not understanding about the
>>> way this URL should be served?
>>>
>>> Thanks again,
>>> Daniel.
>>>
>>>
>>>
>>>
>>> 2009/4/22 Igor Vaynberg <[email protected]>:
>>>> browsers are asynchronous, so you might have a race codition. eg
>>>> browser requests the data url and you press the refresh button, so now
>>>> there are two urls in the queue: the data and the page. if page is
>>>> processed first then the data url will fail because when the page is
>>>> first constructed you have a loading panel in there. makes sense?
>>>>
>>>> take a look at wicket's ajaxlazyloadingpanel, it might have a way to
>>>> handle this.
>>>>
>>>> -igor
>>>>
>>>> On Wed, Apr 22, 2009 at 10:23 AM, Daniel Fernandez
>>>> <[email protected]> wrote:
>>>>> 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]
>>>>>
>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> 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]
>
>

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

Reply via email to