You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Alton Idowu (JIRA)" <ji...@apache.org> on 2008/05/11 00:21:55 UTC

[jira] Updated: (CXF-1583) DynamicClientFactory.setupClasspath method cannot handle spaces in path to jar file

     [ https://issues.apache.org/jira/browse/CXF-1583?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alton Idowu updated CXF-1583:
-----------------------------

    Description: 
The setupClasspath method in the DynamicClientFactory class cannot handle spaces in the path to jar files.  It throws the following exception:

Caused by: java.net.URISyntaxException: Illegal character in path at index 16: file:/C:/Program Files/Apache/Tomcat-5.5.20/common/i18n/tomcat-i18n-en.jar
	at java.net.URI$Parser.fail(URI.java:2816)
	at java.net.URI$Parser.checkChars(URI.java:2989)
	at java.net.URI$Parser.parseHierarchical(URI.java:3073)
	at java.net.URI$Parser.parse(URI.java:3021)
	at java.net.URI.<init>(URI.java:578)
	at java.net.URL.toURI(URL.java:916)
	at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.setupClasspath(DynamicClientFactory.java:405)

This is a know issue withthe URL.toURI() method.

A possible solution would be to replace the following:
                    if (url.getProtocol().startsWith("file")) {
                        try {
                            File file = new File(url.toURI().getPath());
                            if (file.exists()) {
                                classPath.append(file.getAbsolutePath())
                                    .append(System
                                            .getProperty("path.separator"));                                
                            }
                               
                            if (file.getName().endsWith(".jar")) {
                                addClasspathFromManifest(classPath, file);
                            }
                        } catch (URISyntaxException e) {
                            throw new UncheckedException(e);
                        }
                    }


with
                    if (url.getProtocol().startsWith("file")) {
                    	File file;
                    	try {
                    		file = new File(url.toURI().getPath());
                    	} catch (catch catch(URISyntaxException urise) { 
                            file = new File(url.getPath()); 
                        }

                        if (file.exists()) {
                            classPath.append(file.getAbsolutePath())
                                .append(System
                                        .getProperty("path.separator"));                                
                        }
                           
                        if (file.getName().endsWith(".jar")) {
                            addClasspathFromManifest(classPath, file);
                        }
                    }




  was:
The setupClasspath method in the DynamicClientFactory class cannot handle spaces in the path to jar files.  It throws the following exception:

Caused by: java.net.URISyntaxException: Illegal character in path at index 16: file:/C:/Program Files/Apache/Tomcat-5.5.20/common/i18n/tomcat-i18n-en.jar
	at java.net.URI$Parser.fail(URI.java:2816)
	at java.net.URI$Parser.checkChars(URI.java:2989)
	at java.net.URI$Parser.parseHierarchical(URI.java:3073)
	at java.net.URI$Parser.parse(URI.java:3021)
	at java.net.URI.<init>(URI.java:578)
	at java.net.URL.toURI(URL.java:916)
	at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.setupClasspath(DynamicClientFactory.java:405)

This is a know issue withthe URL.toURI() method.

A possible solution would be to replace the following:
                for (URL url : urls) {
                    if (url.getProtocol().startsWith("file")) {
                        try {
                            File file = new File(url.toURI().getPath());


with
                for (URL url : urls) {
                    if (url.getProtocol().startsWith("file")) {
                        try {
                            File file;
                            try {
                                file = new File(url.toURI().getPath());
                             } catch catch(URISyntaxException urise) {
                                 file  = new File(url.getPath());
                             }


> DynamicClientFactory.setupClasspath method cannot handle spaces in path to jar file
> -----------------------------------------------------------------------------------
>
>                 Key: CXF-1583
>                 URL: https://issues.apache.org/jira/browse/CXF-1583
>             Project: CXF
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.1
>         Environment: Ubuntu 7.04, Windows XP, jdk 1.5_09, cxf 2.1 
>            Reporter: Alton Idowu
>
> The setupClasspath method in the DynamicClientFactory class cannot handle spaces in the path to jar files.  It throws the following exception:
> Caused by: java.net.URISyntaxException: Illegal character in path at index 16: file:/C:/Program Files/Apache/Tomcat-5.5.20/common/i18n/tomcat-i18n-en.jar
> 	at java.net.URI$Parser.fail(URI.java:2816)
> 	at java.net.URI$Parser.checkChars(URI.java:2989)
> 	at java.net.URI$Parser.parseHierarchical(URI.java:3073)
> 	at java.net.URI$Parser.parse(URI.java:3021)
> 	at java.net.URI.<init>(URI.java:578)
> 	at java.net.URL.toURI(URL.java:916)
> 	at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.setupClasspath(DynamicClientFactory.java:405)
> This is a know issue withthe URL.toURI() method.
> A possible solution would be to replace the following:
>                     if (url.getProtocol().startsWith("file")) {
>                         try {
>                             File file = new File(url.toURI().getPath());
>                             if (file.exists()) {
>                                 classPath.append(file.getAbsolutePath())
>                                     .append(System
>                                             .getProperty("path.separator"));                                
>                             }
>                                
>                             if (file.getName().endsWith(".jar")) {
>                                 addClasspathFromManifest(classPath, file);
>                             }
>                         } catch (URISyntaxException e) {
>                             throw new UncheckedException(e);
>                         }
>                     }
> with
>                     if (url.getProtocol().startsWith("file")) {
>                     	File file;
>                     	try {
>                     		file = new File(url.toURI().getPath());
>                     	} catch (catch catch(URISyntaxException urise) { 
>                             file = new File(url.getPath()); 
>                         }
>                         if (file.exists()) {
>                             classPath.append(file.getAbsolutePath())
>                                 .append(System
>                                         .getProperty("path.separator"));                                
>                         }
>                            
>                         if (file.getName().endsWith(".jar")) {
>                             addClasspathFromManifest(classPath, file);
>                         }
>                     }

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