The change has been made by Peter actually :-)
But as I said in the ticket I also believe it is better now.
The issue in the ticket is really a corner case and I'm not quite sure
we need to fix it.

On Fri, Jun 15, 2012 at 11:52 AM, Sven Meier <[email protected]> wrote:
> With that change I wanted to improve consistency of ResourceNameIterator.
>
> Yes, we have a regression now. But IMHO it was pure luck that this 'bug' 
> happened to work in 1.5.x
>
> Sven
>
> "Martin Grigorov (JIRA)" <[email protected]> schrieb:
>
>>
>>    [ 
>> https://issues.apache.org/jira/browse/WICKET-4607?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13295514#comment-13295514
>>  ]
>>
>>Martin Grigorov commented on WICKET-4607:
>>-----------------------------------------
>>
>>The change that caused this behavior is 
>>https://github.com/apache/wicket/commit/04bb9046fe21e91f2968998c1d0efd5a94602655#L0R30
>>In Wicket 1.5 ResourceNameIterator produces names like "mypackage/sub1." and 
>>because of the trailing dot it doesn't match when asking the class loader for 
>>such resource.
>>In 6.x Wicket (I believe correctly) do not put this dot at the end but now 
>>cases like yours fail.
>>The problem is that you use the same mount point as the package name - 
>>sub1/sub2 - and later 'mypackage/sub1' is an existing resource according to 
>>ClassLoader#getResource().
>>
>>The fix is as simple as:
>>--- 
>>a/wicket-core/src/main/java/org/apache/wicket/core/util/resource/locator/ExtensionResourceNameIterator.java
>>+++ 
>>b/wicket-core/src/main/java/org/apache/wicket/core/util/resource/locator/ExtensionResourceNameIterator.java
>>@@ -27,7 +27,7 @@ import java.util.Iterator;
>>  */
>> public class ExtensionResourceNameIterator implements Iterator<String>
>> {
>>-       private static final Iterable<String> NULL_ITERABLE = 
>>Arrays.asList((String)null);
>>+       private static final Iterable<String> NULL_ITERABLE = 
>>Arrays.asList("");
>>
>>But this leads to many failing tests in Wicket.
>>I'm not sure I want to spend more time on this corner case.
>>
>>
>>
>>> Regression in PackageResource.internalGetResourceStream if relative package 
>>> name and mount path conflicts
>>> ---------------------------------------------------------------------------------------------------------
>>>
>>>                 Key: WICKET-4607
>>>                 URL: https://issues.apache.org/jira/browse/WICKET-4607
>>>             Project: Wicket
>>>          Issue Type: Bug
>>>          Components: wicket
>>>    Affects Versions: 6.0.0-beta2
>>>            Reporter: Rafał Krupiński
>>>         Attachments: guard-regression.zip
>>>
>>>
>>> After changing from 1.5.6 to 6.0.0-beta2 and going to main page:
>>> Unexpected RuntimeException
>>> Last cause: Access denied to (static) package resource
>>> com/hashnot/nbp. See IPackageResourceGuard
>>> Root cause:
>>> org.apache.wicket.request.resource.PackageResource$PackageResourceBlockedException:
>>> Access denied to (static) package resource com/hashnot/nbp. See
>>> IPackageResourceGuard
>>> at 
>>> org.apache.wicket.request.resource.PackageResource.internalGetResourceStream(PackageResource.java:459)
>>> [snip]
>>> See attached project
>>> The problem appears when the application mounts a page under the same name 
>>> as existing subpackage.
>>> In case of conflicting mount-path and relative package name the regression 
>>> is:
>>> * in 1.5.x linking to X meant linking to mounted page
>>> * in 6.0 it means linking to package
>>
>>--
>>This message is automatically generated by JIRA.
>>If you think it was sent incorrectly, please contact your JIRA 
>>administrators: 
>>https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
>>For more information on JIRA, see: http://www.atlassian.com/software/jira
>>
>>



-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com

Reply via email to