Non-existant package resources lazily added to pool
---------------------------------------------------

                 Key: WICKET-1556
                 URL: https://issues.apache.org/jira/browse/WICKET-1556
             Project: Wicket
          Issue Type: Bug
          Components: wicket
    Affects Versions: 1.3.3
         Environment: any environment
            Reporter: Nathan Hamblen
         Attachments: lazy-res.diff

When a SharedResourceRequestTarget is looking for a resource respond to the 
request, it can (improperly) create a package resource that does not exist and 
add it to the shared resource pool. While this doesn't pose an immediate 
problem, it has a seriously side effect for auto-link resolution in subsequent 
requests. If a local-specific potential name coincides with the non-existant 
shared resource, that bad reference will be used to generate the auto-link URL.

For example:
A page refers to href="style.css" in an autolink. This loads correctly, UNTIL 
anyone on the internet requests "style_en.css" (which could be an old resource 
name still known to crawlers). Now that name is added to the resource pool, and 
the next request for locale "en" will find that bad resource in pool, thinking 
it is a good local-specific stylesheet, and render href="style_en.css" for the 
page. This resource does not exist, will not be found, and all "en" users will 
now see the page without styles.

This is fully reproducible in Wicket 1.3.3, while 1.3.2 is not susceptible. I'm 
not sure where the effective code change was (it doesn't seem to be in this 
chunk of code), but this particular problem can be easily fixed by checking if 
a resource exists before trying to "get" it and add it to the pool. Will upload 
patch.


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to