You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Frank Ziglar (Created) (JIRA)" <ji...@apache.org> on 2011/11/07 22:00:52 UTC

[jira] [Created] (WICKET-4203) Wicket fails to start when deployed filenames contain space characters

Wicket fails to start when deployed filenames contain space characters
----------------------------------------------------------------------

                 Key: WICKET-4203
                 URL: https://issues.apache.org/jira/browse/WICKET-4203
             Project: Wicket
          Issue Type: Bug
          Components: wicket
    Affects Versions: 1.5.2
            Reporter: Frank Ziglar


When upgrading from Wicket 1.4 to 1.5, Wicket may fail to start with an exception like:

org.apache.wicket.WicketRuntimeException: java.net.URISyntaxException: Illegal character in path at index 12: file:/W:/Dev Projects/Portal/website/web/WEB-INF/classes/wicket.properties
	at org.apache.wicket.application.AbstractClassResolver.getResources(AbstractClassResolver.java:156)
	at org.apache.wicket.Application.initializeComponents(Application.java:491)
	at org.apache.wicket.Application.initApplication(Application.java:808)
	at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:346)
	at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:286)
	at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
	at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:662)
	at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
	at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
	at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
	at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
	at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
	at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
	at org.mortbay.jetty.Server.doStart(Server.java:224)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
	at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:186)
	at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:182)
	at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:172)
	at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:164)
	at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
	at com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
	at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
Caused by: java.net.URISyntaxException: Illegal character in path at index 12: file:/W:/Dev Projects/Portal/website/web/WEB-INF/classes/wicket.properties
	at java.net.URI$Parser.fail(URI.java:2809)
	at java.net.URI$Parser.checkChars(URI.java:2982)
	at java.net.URI$Parser.parseHierarchical(URI.java:3066)
	at java.net.URI$Parser.parse(URI.java:3014)
	at java.net.URI.<init>(URI.java:578)
	at java.net.URL.toURI(URL.java:918)
	at org.apache.wicket.application.AbstractClassResolver.loadResources(AbstractClassResolver.java:177)
	at org.apache.wicket.application.AbstractClassResolver.getResources(AbstractClassResolver.java:139)
	... 24 more

This issue was not present in Wicket 1.4.

The problem could be corrected by moving the deployment path for the application to a folder that contains no space characters in the absolute path name. However, finding and changing the appropriate configuration settings throughout the framework and IDE can be somewhat cumbersome.

After some investigation, it appears the cause is a change made for WICKET-3876, which relies on URL.toURI(). The javadocs for this method state that:
"Note, any URL instance that complies with RFC 2396 can be converted to a URI. However, some URLs that are not strictly in compliance can not be converted to a URI.". It appears that wicket may not be able to rely on ClassLoader.getResources to return a URL which is safe to convert to a URI using this method.

I am humbly supplying a proposed patch, which selects a URI constructor to invoke instead of using URL.toURI. The constructors for URI are designed to accept paths that are not strictly compliant, and canonicalize them to a compliant form. I believe this will correctly construct URIs for equality checks, even when the ClassLoader does not return RFC-2396 compliant URLs.

--
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

        

[jira] [Commented] (WICKET-4203) Wicket fails to start when deployed filenames contain space characters

Posted by "Frank Ziglar (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WICKET-4203?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13146574#comment-13146574 ] 

Frank Ziglar commented on WICKET-4203:
--------------------------------------

Hello,

Your patch works like a champ for me!

I was concerned from the linked issue that URIs might have been selected to provide an extra degree of canonicalization. If the more flexible equality check of URI is not required, then I agree that toExternalForm() seems ideal here. And since the URLs all come from ClassLoader.getResources, it does seem unlikely that this class will encounter equal URLs with different strings (like different case letters for the schemes).

Thanks!
                
> Wicket fails to start when deployed filenames contain space characters
> ----------------------------------------------------------------------
>
>                 Key: WICKET-4203
>                 URL: https://issues.apache.org/jira/browse/WICKET-4203
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.5.2
>            Reporter: Frank Ziglar
>            Assignee: Martin Grigorov
>         Attachments: WICKET-4203-externalForm.patch, WICKET-4203-loadResources.patch
>
>
> When upgrading from Wicket 1.4 to 1.5, Wicket may fail to start with an exception like:
> org.apache.wicket.WicketRuntimeException: java.net.URISyntaxException: Illegal character in path at index 12: file:/W:/Dev Projects/Portal/website/web/WEB-INF/classes/wicket.properties
> 	at org.apache.wicket.application.AbstractClassResolver.getResources(AbstractClassResolver.java:156)
> 	at org.apache.wicket.Application.initializeComponents(Application.java:491)
> 	at org.apache.wicket.Application.initApplication(Application.java:808)
> 	at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:346)
> 	at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:286)
> 	at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
> 	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> 	at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:662)
> 	at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
> 	at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
> 	at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
> 	at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
> 	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> 	at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
> 	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> 	at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
> 	at org.mortbay.jetty.Server.doStart(Server.java:224)
> 	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> 	at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:186)
> 	at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:182)
> 	at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:172)
> 	at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:164)
> 	at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
> 	at com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
> 	at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
> Caused by: java.net.URISyntaxException: Illegal character in path at index 12: file:/W:/Dev Projects/Portal/website/web/WEB-INF/classes/wicket.properties
> 	at java.net.URI$Parser.fail(URI.java:2809)
> 	at java.net.URI$Parser.checkChars(URI.java:2982)
> 	at java.net.URI$Parser.parseHierarchical(URI.java:3066)
> 	at java.net.URI$Parser.parse(URI.java:3014)
> 	at java.net.URI.<init>(URI.java:578)
> 	at java.net.URL.toURI(URL.java:918)
> 	at org.apache.wicket.application.AbstractClassResolver.loadResources(AbstractClassResolver.java:177)
> 	at org.apache.wicket.application.AbstractClassResolver.getResources(AbstractClassResolver.java:139)
> 	... 24 more
> This issue was not present in Wicket 1.4.
> The problem could be corrected by moving the deployment path for the application to a folder that contains no space characters in the absolute path name. However, finding and changing the appropriate configuration settings throughout the framework and IDE can be somewhat cumbersome.
> After some investigation, it appears the cause is a change made for WICKET-3867, which relies on URL.toURI(). The javadocs for this method state that:
> "Note, any URL instance that complies with RFC 2396 can be converted to a URI. However, some URLs that are not strictly in compliance can not be converted to a URI.". It appears that wicket may not be able to rely on ClassLoader.getResources to return a URL which is safe to convert to a URI using this method.
> I am humbly supplying a proposed patch, which selects a URI constructor to invoke instead of using URL.toURI. The constructors for URI are designed to accept paths that are not strictly compliant, and canonicalize them to a compliant form. I believe this will correctly construct URIs for equality checks, even when the ClassLoader does not return RFC-2396 compliant URLs.

--
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

        

[jira] [Updated] (WICKET-4203) Wicket fails to start when deployed filenames contain space characters

Posted by "Frank Ziglar (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WICKET-4203?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Frank Ziglar updated WICKET-4203:
---------------------------------

    Attachment: WICKET-4203-loadResources.patch

Proposed patch.

Please review this patch: I'm afraid I haven't been able to load the entire unit test framework to fully test it. However, the patch seems to pass the testing framework I have loaded, as well as correcting the problem noted.
                
> Wicket fails to start when deployed filenames contain space characters
> ----------------------------------------------------------------------
>
>                 Key: WICKET-4203
>                 URL: https://issues.apache.org/jira/browse/WICKET-4203
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.5.2
>            Reporter: Frank Ziglar
>         Attachments: WICKET-4203-loadResources.patch
>
>
> When upgrading from Wicket 1.4 to 1.5, Wicket may fail to start with an exception like:
> org.apache.wicket.WicketRuntimeException: java.net.URISyntaxException: Illegal character in path at index 12: file:/W:/Dev Projects/Portal/website/web/WEB-INF/classes/wicket.properties
> 	at org.apache.wicket.application.AbstractClassResolver.getResources(AbstractClassResolver.java:156)
> 	at org.apache.wicket.Application.initializeComponents(Application.java:491)
> 	at org.apache.wicket.Application.initApplication(Application.java:808)
> 	at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:346)
> 	at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:286)
> 	at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
> 	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> 	at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:662)
> 	at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
> 	at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
> 	at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
> 	at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
> 	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> 	at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
> 	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> 	at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
> 	at org.mortbay.jetty.Server.doStart(Server.java:224)
> 	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> 	at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:186)
> 	at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:182)
> 	at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:172)
> 	at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:164)
> 	at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
> 	at com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
> 	at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
> Caused by: java.net.URISyntaxException: Illegal character in path at index 12: file:/W:/Dev Projects/Portal/website/web/WEB-INF/classes/wicket.properties
> 	at java.net.URI$Parser.fail(URI.java:2809)
> 	at java.net.URI$Parser.checkChars(URI.java:2982)
> 	at java.net.URI$Parser.parseHierarchical(URI.java:3066)
> 	at java.net.URI$Parser.parse(URI.java:3014)
> 	at java.net.URI.<init>(URI.java:578)
> 	at java.net.URL.toURI(URL.java:918)
> 	at org.apache.wicket.application.AbstractClassResolver.loadResources(AbstractClassResolver.java:177)
> 	at org.apache.wicket.application.AbstractClassResolver.getResources(AbstractClassResolver.java:139)
> 	... 24 more
> This issue was not present in Wicket 1.4.
> The problem could be corrected by moving the deployment path for the application to a folder that contains no space characters in the absolute path name. However, finding and changing the appropriate configuration settings throughout the framework and IDE can be somewhat cumbersome.
> After some investigation, it appears the cause is a change made for WICKET-3876, which relies on URL.toURI(). The javadocs for this method state that:
> "Note, any URL instance that complies with RFC 2396 can be converted to a URI. However, some URLs that are not strictly in compliance can not be converted to a URI.". It appears that wicket may not be able to rely on ClassLoader.getResources to return a URL which is safe to convert to a URI using this method.
> I am humbly supplying a proposed patch, which selects a URI constructor to invoke instead of using URL.toURI. The constructors for URI are designed to accept paths that are not strictly compliant, and canonicalize them to a compliant form. I believe this will correctly construct URIs for equality checks, even when the ClassLoader does not return RFC-2396 compliant URLs.

--
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

        

[jira] [Commented] (WICKET-4203) Wicket fails to start when deployed filenames contain space characters

Posted by "Martin Grigorov (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WICKET-4203?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13146387#comment-13146387 ] 

Martin Grigorov commented on WICKET-4203:
-----------------------------------------

Isn't it better to use URL.toExternalForm() instead of transforming the URL back and forth to URI ?
We just need to return all unique URLs in all asked ClassLoaders. 
                
> Wicket fails to start when deployed filenames contain space characters
> ----------------------------------------------------------------------
>
>                 Key: WICKET-4203
>                 URL: https://issues.apache.org/jira/browse/WICKET-4203
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.5.2
>            Reporter: Frank Ziglar
>         Attachments: WICKET-4203-loadResources.patch
>
>
> When upgrading from Wicket 1.4 to 1.5, Wicket may fail to start with an exception like:
> org.apache.wicket.WicketRuntimeException: java.net.URISyntaxException: Illegal character in path at index 12: file:/W:/Dev Projects/Portal/website/web/WEB-INF/classes/wicket.properties
> 	at org.apache.wicket.application.AbstractClassResolver.getResources(AbstractClassResolver.java:156)
> 	at org.apache.wicket.Application.initializeComponents(Application.java:491)
> 	at org.apache.wicket.Application.initApplication(Application.java:808)
> 	at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:346)
> 	at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:286)
> 	at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
> 	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> 	at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:662)
> 	at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
> 	at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
> 	at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
> 	at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
> 	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> 	at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
> 	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> 	at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
> 	at org.mortbay.jetty.Server.doStart(Server.java:224)
> 	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> 	at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:186)
> 	at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:182)
> 	at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:172)
> 	at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:164)
> 	at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
> 	at com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
> 	at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
> Caused by: java.net.URISyntaxException: Illegal character in path at index 12: file:/W:/Dev Projects/Portal/website/web/WEB-INF/classes/wicket.properties
> 	at java.net.URI$Parser.fail(URI.java:2809)
> 	at java.net.URI$Parser.checkChars(URI.java:2982)
> 	at java.net.URI$Parser.parseHierarchical(URI.java:3066)
> 	at java.net.URI$Parser.parse(URI.java:3014)
> 	at java.net.URI.<init>(URI.java:578)
> 	at java.net.URL.toURI(URL.java:918)
> 	at org.apache.wicket.application.AbstractClassResolver.loadResources(AbstractClassResolver.java:177)
> 	at org.apache.wicket.application.AbstractClassResolver.getResources(AbstractClassResolver.java:139)
> 	... 24 more
> This issue was not present in Wicket 1.4.
> The problem could be corrected by moving the deployment path for the application to a folder that contains no space characters in the absolute path name. However, finding and changing the appropriate configuration settings throughout the framework and IDE can be somewhat cumbersome.
> After some investigation, it appears the cause is a change made for WICKET-3867, which relies on URL.toURI(). The javadocs for this method state that:
> "Note, any URL instance that complies with RFC 2396 can be converted to a URI. However, some URLs that are not strictly in compliance can not be converted to a URI.". It appears that wicket may not be able to rely on ClassLoader.getResources to return a URL which is safe to convert to a URI using this method.
> I am humbly supplying a proposed patch, which selects a URI constructor to invoke instead of using URL.toURI. The constructors for URI are designed to accept paths that are not strictly compliant, and canonicalize them to a compliant form. I believe this will correctly construct URIs for equality checks, even when the ClassLoader does not return RFC-2396 compliant URLs.

--
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

        

[jira] [Updated] (WICKET-4203) Wicket fails to start when deployed filenames contain space characters

Posted by "Frank Ziglar (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WICKET-4203?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Frank Ziglar updated WICKET-4203:
---------------------------------

    Description: 
When upgrading from Wicket 1.4 to 1.5, Wicket may fail to start with an exception like:

org.apache.wicket.WicketRuntimeException: java.net.URISyntaxException: Illegal character in path at index 12: file:/W:/Dev Projects/Portal/website/web/WEB-INF/classes/wicket.properties
	at org.apache.wicket.application.AbstractClassResolver.getResources(AbstractClassResolver.java:156)
	at org.apache.wicket.Application.initializeComponents(Application.java:491)
	at org.apache.wicket.Application.initApplication(Application.java:808)
	at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:346)
	at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:286)
	at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
	at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:662)
	at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
	at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
	at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
	at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
	at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
	at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
	at org.mortbay.jetty.Server.doStart(Server.java:224)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
	at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:186)
	at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:182)
	at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:172)
	at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:164)
	at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
	at com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
	at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
Caused by: java.net.URISyntaxException: Illegal character in path at index 12: file:/W:/Dev Projects/Portal/website/web/WEB-INF/classes/wicket.properties
	at java.net.URI$Parser.fail(URI.java:2809)
	at java.net.URI$Parser.checkChars(URI.java:2982)
	at java.net.URI$Parser.parseHierarchical(URI.java:3066)
	at java.net.URI$Parser.parse(URI.java:3014)
	at java.net.URI.<init>(URI.java:578)
	at java.net.URL.toURI(URL.java:918)
	at org.apache.wicket.application.AbstractClassResolver.loadResources(AbstractClassResolver.java:177)
	at org.apache.wicket.application.AbstractClassResolver.getResources(AbstractClassResolver.java:139)
	... 24 more

This issue was not present in Wicket 1.4.

The problem could be corrected by moving the deployment path for the application to a folder that contains no space characters in the absolute path name. However, finding and changing the appropriate configuration settings throughout the framework and IDE can be somewhat cumbersome.

After some investigation, it appears the cause is a change made for WICKET-3867, which relies on URL.toURI(). The javadocs for this method state that:
"Note, any URL instance that complies with RFC 2396 can be converted to a URI. However, some URLs that are not strictly in compliance can not be converted to a URI.". It appears that wicket may not be able to rely on ClassLoader.getResources to return a URL which is safe to convert to a URI using this method.

I am humbly supplying a proposed patch, which selects a URI constructor to invoke instead of using URL.toURI. The constructors for URI are designed to accept paths that are not strictly compliant, and canonicalize them to a compliant form. I believe this will correctly construct URIs for equality checks, even when the ClassLoader does not return RFC-2396 compliant URLs.

  was:
When upgrading from Wicket 1.4 to 1.5, Wicket may fail to start with an exception like:

org.apache.wicket.WicketRuntimeException: java.net.URISyntaxException: Illegal character in path at index 12: file:/W:/Dev Projects/Portal/website/web/WEB-INF/classes/wicket.properties
	at org.apache.wicket.application.AbstractClassResolver.getResources(AbstractClassResolver.java:156)
	at org.apache.wicket.Application.initializeComponents(Application.java:491)
	at org.apache.wicket.Application.initApplication(Application.java:808)
	at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:346)
	at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:286)
	at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
	at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:662)
	at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
	at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
	at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
	at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
	at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
	at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
	at org.mortbay.jetty.Server.doStart(Server.java:224)
	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
	at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:186)
	at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:182)
	at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:172)
	at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:164)
	at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
	at com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
	at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
Caused by: java.net.URISyntaxException: Illegal character in path at index 12: file:/W:/Dev Projects/Portal/website/web/WEB-INF/classes/wicket.properties
	at java.net.URI$Parser.fail(URI.java:2809)
	at java.net.URI$Parser.checkChars(URI.java:2982)
	at java.net.URI$Parser.parseHierarchical(URI.java:3066)
	at java.net.URI$Parser.parse(URI.java:3014)
	at java.net.URI.<init>(URI.java:578)
	at java.net.URL.toURI(URL.java:918)
	at org.apache.wicket.application.AbstractClassResolver.loadResources(AbstractClassResolver.java:177)
	at org.apache.wicket.application.AbstractClassResolver.getResources(AbstractClassResolver.java:139)
	... 24 more

This issue was not present in Wicket 1.4.

The problem could be corrected by moving the deployment path for the application to a folder that contains no space characters in the absolute path name. However, finding and changing the appropriate configuration settings throughout the framework and IDE can be somewhat cumbersome.

After some investigation, it appears the cause is a change made for WICKET-3876, which relies on URL.toURI(). The javadocs for this method state that:
"Note, any URL instance that complies with RFC 2396 can be converted to a URI. However, some URLs that are not strictly in compliance can not be converted to a URI.". It appears that wicket may not be able to rely on ClassLoader.getResources to return a URL which is safe to convert to a URI using this method.

I am humbly supplying a proposed patch, which selects a URI constructor to invoke instead of using URL.toURI. The constructors for URI are designed to accept paths that are not strictly compliant, and canonicalize them to a compliant form. I believe this will correctly construct URIs for equality checks, even when the ClassLoader does not return RFC-2396 compliant URLs.


Sorry for the typo!
                
> Wicket fails to start when deployed filenames contain space characters
> ----------------------------------------------------------------------
>
>                 Key: WICKET-4203
>                 URL: https://issues.apache.org/jira/browse/WICKET-4203
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.5.2
>            Reporter: Frank Ziglar
>         Attachments: WICKET-4203-loadResources.patch
>
>
> When upgrading from Wicket 1.4 to 1.5, Wicket may fail to start with an exception like:
> org.apache.wicket.WicketRuntimeException: java.net.URISyntaxException: Illegal character in path at index 12: file:/W:/Dev Projects/Portal/website/web/WEB-INF/classes/wicket.properties
> 	at org.apache.wicket.application.AbstractClassResolver.getResources(AbstractClassResolver.java:156)
> 	at org.apache.wicket.Application.initializeComponents(Application.java:491)
> 	at org.apache.wicket.Application.initApplication(Application.java:808)
> 	at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:346)
> 	at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:286)
> 	at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
> 	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> 	at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:662)
> 	at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
> 	at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
> 	at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
> 	at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
> 	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> 	at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
> 	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> 	at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
> 	at org.mortbay.jetty.Server.doStart(Server.java:224)
> 	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> 	at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:186)
> 	at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:182)
> 	at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:172)
> 	at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:164)
> 	at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
> 	at com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
> 	at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
> Caused by: java.net.URISyntaxException: Illegal character in path at index 12: file:/W:/Dev Projects/Portal/website/web/WEB-INF/classes/wicket.properties
> 	at java.net.URI$Parser.fail(URI.java:2809)
> 	at java.net.URI$Parser.checkChars(URI.java:2982)
> 	at java.net.URI$Parser.parseHierarchical(URI.java:3066)
> 	at java.net.URI$Parser.parse(URI.java:3014)
> 	at java.net.URI.<init>(URI.java:578)
> 	at java.net.URL.toURI(URL.java:918)
> 	at org.apache.wicket.application.AbstractClassResolver.loadResources(AbstractClassResolver.java:177)
> 	at org.apache.wicket.application.AbstractClassResolver.getResources(AbstractClassResolver.java:139)
> 	... 24 more
> This issue was not present in Wicket 1.4.
> The problem could be corrected by moving the deployment path for the application to a folder that contains no space characters in the absolute path name. However, finding and changing the appropriate configuration settings throughout the framework and IDE can be somewhat cumbersome.
> After some investigation, it appears the cause is a change made for WICKET-3867, which relies on URL.toURI(). The javadocs for this method state that:
> "Note, any URL instance that complies with RFC 2396 can be converted to a URI. However, some URLs that are not strictly in compliance can not be converted to a URI.". It appears that wicket may not be able to rely on ClassLoader.getResources to return a URL which is safe to convert to a URI using this method.
> I am humbly supplying a proposed patch, which selects a URI constructor to invoke instead of using URL.toURI. The constructors for URI are designed to accept paths that are not strictly compliant, and canonicalize them to a compliant form. I believe this will correctly construct URIs for equality checks, even when the ClassLoader does not return RFC-2396 compliant URLs.

--
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

        

[jira] [Updated] (WICKET-4203) Wicket fails to start when deployed filenames contain space characters

Posted by "Martin Grigorov (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WICKET-4203?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Grigorov updated WICKET-4203:
------------------------------------

    Attachment: WICKET-4203-externalForm.patch

Please try with this patch.
                
> Wicket fails to start when deployed filenames contain space characters
> ----------------------------------------------------------------------
>
>                 Key: WICKET-4203
>                 URL: https://issues.apache.org/jira/browse/WICKET-4203
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.5.2
>            Reporter: Frank Ziglar
>         Attachments: WICKET-4203-externalForm.patch, WICKET-4203-loadResources.patch
>
>
> When upgrading from Wicket 1.4 to 1.5, Wicket may fail to start with an exception like:
> org.apache.wicket.WicketRuntimeException: java.net.URISyntaxException: Illegal character in path at index 12: file:/W:/Dev Projects/Portal/website/web/WEB-INF/classes/wicket.properties
> 	at org.apache.wicket.application.AbstractClassResolver.getResources(AbstractClassResolver.java:156)
> 	at org.apache.wicket.Application.initializeComponents(Application.java:491)
> 	at org.apache.wicket.Application.initApplication(Application.java:808)
> 	at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:346)
> 	at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:286)
> 	at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
> 	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> 	at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:662)
> 	at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
> 	at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
> 	at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
> 	at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
> 	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> 	at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
> 	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> 	at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
> 	at org.mortbay.jetty.Server.doStart(Server.java:224)
> 	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> 	at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:186)
> 	at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:182)
> 	at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:172)
> 	at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:164)
> 	at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
> 	at com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
> 	at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
> Caused by: java.net.URISyntaxException: Illegal character in path at index 12: file:/W:/Dev Projects/Portal/website/web/WEB-INF/classes/wicket.properties
> 	at java.net.URI$Parser.fail(URI.java:2809)
> 	at java.net.URI$Parser.checkChars(URI.java:2982)
> 	at java.net.URI$Parser.parseHierarchical(URI.java:3066)
> 	at java.net.URI$Parser.parse(URI.java:3014)
> 	at java.net.URI.<init>(URI.java:578)
> 	at java.net.URL.toURI(URL.java:918)
> 	at org.apache.wicket.application.AbstractClassResolver.loadResources(AbstractClassResolver.java:177)
> 	at org.apache.wicket.application.AbstractClassResolver.getResources(AbstractClassResolver.java:139)
> 	... 24 more
> This issue was not present in Wicket 1.4.
> The problem could be corrected by moving the deployment path for the application to a folder that contains no space characters in the absolute path name. However, finding and changing the appropriate configuration settings throughout the framework and IDE can be somewhat cumbersome.
> After some investigation, it appears the cause is a change made for WICKET-3867, which relies on URL.toURI(). The javadocs for this method state that:
> "Note, any URL instance that complies with RFC 2396 can be converted to a URI. However, some URLs that are not strictly in compliance can not be converted to a URI.". It appears that wicket may not be able to rely on ClassLoader.getResources to return a URL which is safe to convert to a URI using this method.
> I am humbly supplying a proposed patch, which selects a URI constructor to invoke instead of using URL.toURI. The constructors for URI are designed to accept paths that are not strictly compliant, and canonicalize them to a compliant form. I believe this will correctly construct URIs for equality checks, even when the ClassLoader does not return RFC-2396 compliant URLs.

--
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

        

[jira] [Resolved] (WICKET-4203) Wicket fails to start when deployed filenames contain space characters

Posted by "Martin Grigorov (Resolved) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WICKET-4203?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Grigorov resolved WICKET-4203.
-------------------------------------

       Resolution: Fixed
    Fix Version/s: 1.5.3
    
> Wicket fails to start when deployed filenames contain space characters
> ----------------------------------------------------------------------
>
>                 Key: WICKET-4203
>                 URL: https://issues.apache.org/jira/browse/WICKET-4203
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.5.2
>            Reporter: Frank Ziglar
>            Assignee: Martin Grigorov
>             Fix For: 1.5.3
>
>         Attachments: WICKET-4203-externalForm.patch, WICKET-4203-loadResources.patch
>
>
> When upgrading from Wicket 1.4 to 1.5, Wicket may fail to start with an exception like:
> org.apache.wicket.WicketRuntimeException: java.net.URISyntaxException: Illegal character in path at index 12: file:/W:/Dev Projects/Portal/website/web/WEB-INF/classes/wicket.properties
> 	at org.apache.wicket.application.AbstractClassResolver.getResources(AbstractClassResolver.java:156)
> 	at org.apache.wicket.Application.initializeComponents(Application.java:491)
> 	at org.apache.wicket.Application.initApplication(Application.java:808)
> 	at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:346)
> 	at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:286)
> 	at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
> 	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> 	at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:662)
> 	at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
> 	at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
> 	at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
> 	at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
> 	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> 	at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
> 	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> 	at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
> 	at org.mortbay.jetty.Server.doStart(Server.java:224)
> 	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> 	at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:186)
> 	at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:182)
> 	at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:172)
> 	at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:164)
> 	at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
> 	at com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
> 	at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
> Caused by: java.net.URISyntaxException: Illegal character in path at index 12: file:/W:/Dev Projects/Portal/website/web/WEB-INF/classes/wicket.properties
> 	at java.net.URI$Parser.fail(URI.java:2809)
> 	at java.net.URI$Parser.checkChars(URI.java:2982)
> 	at java.net.URI$Parser.parseHierarchical(URI.java:3066)
> 	at java.net.URI$Parser.parse(URI.java:3014)
> 	at java.net.URI.<init>(URI.java:578)
> 	at java.net.URL.toURI(URL.java:918)
> 	at org.apache.wicket.application.AbstractClassResolver.loadResources(AbstractClassResolver.java:177)
> 	at org.apache.wicket.application.AbstractClassResolver.getResources(AbstractClassResolver.java:139)
> 	... 24 more
> This issue was not present in Wicket 1.4.
> The problem could be corrected by moving the deployment path for the application to a folder that contains no space characters in the absolute path name. However, finding and changing the appropriate configuration settings throughout the framework and IDE can be somewhat cumbersome.
> After some investigation, it appears the cause is a change made for WICKET-3867, which relies on URL.toURI(). The javadocs for this method state that:
> "Note, any URL instance that complies with RFC 2396 can be converted to a URI. However, some URLs that are not strictly in compliance can not be converted to a URI.". It appears that wicket may not be able to rely on ClassLoader.getResources to return a URL which is safe to convert to a URI using this method.
> I am humbly supplying a proposed patch, which selects a URI constructor to invoke instead of using URL.toURI. The constructors for URI are designed to accept paths that are not strictly compliant, and canonicalize them to a compliant form. I believe this will correctly construct URIs for equality checks, even when the ClassLoader does not return RFC-2396 compliant URLs.

--
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

        

[jira] [Assigned] (WICKET-4203) Wicket fails to start when deployed filenames contain space characters

Posted by "Martin Grigorov (Assigned) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WICKET-4203?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Grigorov reassigned WICKET-4203:
---------------------------------------

    Assignee: Martin Grigorov
    
> Wicket fails to start when deployed filenames contain space characters
> ----------------------------------------------------------------------
>
>                 Key: WICKET-4203
>                 URL: https://issues.apache.org/jira/browse/WICKET-4203
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.5.2
>            Reporter: Frank Ziglar
>            Assignee: Martin Grigorov
>         Attachments: WICKET-4203-externalForm.patch, WICKET-4203-loadResources.patch
>
>
> When upgrading from Wicket 1.4 to 1.5, Wicket may fail to start with an exception like:
> org.apache.wicket.WicketRuntimeException: java.net.URISyntaxException: Illegal character in path at index 12: file:/W:/Dev Projects/Portal/website/web/WEB-INF/classes/wicket.properties
> 	at org.apache.wicket.application.AbstractClassResolver.getResources(AbstractClassResolver.java:156)
> 	at org.apache.wicket.Application.initializeComponents(Application.java:491)
> 	at org.apache.wicket.Application.initApplication(Application.java:808)
> 	at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:346)
> 	at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:286)
> 	at org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97)
> 	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> 	at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:662)
> 	at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
> 	at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
> 	at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
> 	at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
> 	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> 	at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
> 	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> 	at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
> 	at org.mortbay.jetty.Server.doStart(Server.java:224)
> 	at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> 	at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:186)
> 	at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:182)
> 	at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:172)
> 	at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:164)
> 	at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:48)
> 	at com.google.appengine.tools.development.DevAppServerMain.<init>(DevAppServerMain.java:113)
> 	at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:89)
> Caused by: java.net.URISyntaxException: Illegal character in path at index 12: file:/W:/Dev Projects/Portal/website/web/WEB-INF/classes/wicket.properties
> 	at java.net.URI$Parser.fail(URI.java:2809)
> 	at java.net.URI$Parser.checkChars(URI.java:2982)
> 	at java.net.URI$Parser.parseHierarchical(URI.java:3066)
> 	at java.net.URI$Parser.parse(URI.java:3014)
> 	at java.net.URI.<init>(URI.java:578)
> 	at java.net.URL.toURI(URL.java:918)
> 	at org.apache.wicket.application.AbstractClassResolver.loadResources(AbstractClassResolver.java:177)
> 	at org.apache.wicket.application.AbstractClassResolver.getResources(AbstractClassResolver.java:139)
> 	... 24 more
> This issue was not present in Wicket 1.4.
> The problem could be corrected by moving the deployment path for the application to a folder that contains no space characters in the absolute path name. However, finding and changing the appropriate configuration settings throughout the framework and IDE can be somewhat cumbersome.
> After some investigation, it appears the cause is a change made for WICKET-3867, which relies on URL.toURI(). The javadocs for this method state that:
> "Note, any URL instance that complies with RFC 2396 can be converted to a URI. However, some URLs that are not strictly in compliance can not be converted to a URI.". It appears that wicket may not be able to rely on ClassLoader.getResources to return a URL which is safe to convert to a URI using this method.
> I am humbly supplying a proposed patch, which selects a URI constructor to invoke instead of using URL.toURI. The constructors for URI are designed to accept paths that are not strictly compliant, and canonicalize them to a compliant form. I believe this will correctly construct URIs for equality checks, even when the ClassLoader does not return RFC-2396 compliant URLs.

--
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