You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Juergen Donnerstag (JIRA)" <ji...@apache.org> on 2009/04/25 09:09:30 UTC
[jira] Resolved: (WICKET-2204) urlFor(IResourceListener.INTERFACE)
returns different URLs
[ https://issues.apache.org/jira/browse/WICKET-2204?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Juergen Donnerstag resolved WICKET-2204.
----------------------------------------
Resolution: Fixed
Fix Version/s: 1.4-RC3
Assignee: Juergen Donnerstag
The problem was here
RequestCycle.java
public final CharSequence urlFor(final Component component,
final RequestListenerInterface listener, ValueMap params)
{
// Get Page holding component and mark it as stateful.
final Page page = component.getPage();
final IRequestTarget target;
if ((listener != IRedirectListener.INTERFACE) &&
component.isStateless() &&
page.isBookmarkable() && page.getStatelessHint())
{
<create bookmark url
}
else
{
<make page stateful>
<make session non volatile>
<create request target>
}
> urlFor(IResourceListener.INTERFACE) returns different URLs
> ----------------------------------------------------------
>
> Key: WICKET-2204
> URL: https://issues.apache.org/jira/browse/WICKET-2204
> Project: Wicket
> Issue Type: Bug
> Components: wicket
> Affects Versions: 1.4-RC2
> Environment: Ubuntu 8.10 / Java 1.6.0_0-b12
> Reporter: Francisco Treacy
> Assignee: Juergen Donnerstag
> Fix For: 1.4-RC3
>
> Attachments: quickstart.zip
>
>
> When I call urlFor(IResourceListener.INTERFACE) in the renderHead method of my public abstract class SWFComponent extends WebMarkupContainer implements IResourceListener, IHeaderContributor
> it randomly returns two different type of URLs:
> 1. ?wicket:interface=:3:docsPanel:viewer:flash::IResourceListener:: ( this is the good URL I was expecting, that calls the onResourceRequested callback method)
> 2. ?wicket:bookmarkablePage=:app.wicket.document.DocumentDetailPage&wicket:interface=:10:detailPanel:viewer:flash::IResourceListener:: (this bookmarkable link tries to point to the page that holds the instance of the SWFComponent - and fails because this page needs PageParameters- but is incorrect anyway)
> The 'randomness' seems be triggered after compilation - but is very difficult to reproduce. For example, after experiencing this strange behaviour in a development environment, I committed a "working" dev version (URL of type 1) to the continuous integration server. The integration app was running the same codebase but output URLs of type 2.
> I am attaching a quickstart that returns URLs of type 2 by the time I filed this issue. I tried digging into the WebRequestCodingStrategy but it was difficult to compare as I couldn't easily reproduce both types.
> In the quickstart I also included a splitted version of the component, i.e.
> a public abstract class SWFResourceListener extends WebMarkupContainer implements IResourceListener + a public class SWFBehavior extends AbstractBehavior implements IHeaderContributor
> in an unsuccessful attempt to see if the problem was caused by the fact of having component + header contributor + resource listener all in the same class.
> I have solved my case by swapping the IResourceListener for a plain old BookmarkablePage that outputs the SWF bytes, but I still think it's worth to have a look at this bizarre behaviour (which, by the way, might be related to WICKET-289 ?).
> Thanks
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.