Freeman,

Since we have URL objects, instead of calling toString on them and doing:

>  if 
> (!loadedCatalogs.contains(URI.create(replaceWhitespace(catalogURL.toString()))))
>  {


can we just do something like

if (!loadedCatalogs.contains(catalogURL.toURI())


or similar?   Would avoid some issues converting the URL to string, encoding 
it, etc…  If there are other characters in the URL that need encoding, that may 
handle that as well.

Dan


On Nov 8, 2012, at 3:48 AM, [email protected] wrote:

> Author: ffang
> Date: Thu Nov  8 08:48:30 2012
> New Revision: 1406958
> 
> URL: http://svn.apache.org/viewvc?rev=1406958&view=rev
> Log:
> [CXF-4620]Exception at compilation when a 'space' character is present in 
> maven local repository path
> 
> Modified:
>    
> cxf/trunk/rt/core/src/main/java/org/apache/cxf/catalog/OASISCatalogManager.java
> 
> Modified: 
> cxf/trunk/rt/core/src/main/java/org/apache/cxf/catalog/OASISCatalogManager.java
> URL: 
> http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/catalog/OASISCatalogManager.java?rev=1406958&r1=1406957&r2=1406958&view=diff
> ==============================================================================
> --- 
> cxf/trunk/rt/core/src/main/java/org/apache/cxf/catalog/OASISCatalogManager.java
>  (original)
> +++ 
> cxf/trunk/rt/core/src/main/java/org/apache/cxf/catalog/OASISCatalogManager.java
>  Thu Nov  8 08:48:30 2012
> @@ -144,15 +144,15 @@ public class OASISCatalogManager {
>         Enumeration<URL> catalogs = classLoader.getResources(name);
>         while (catalogs.hasMoreElements()) {
>             URL catalogURL = catalogs.nextElement();
> -            if (!loadedCatalogs.contains(URI.create(catalogURL.toString()))) 
> {
> +            if 
> (!loadedCatalogs.contains(URI.create(replaceWhitespace(catalogURL.toString()))))
>  {
>                 ((Catalog)catalog).parseCatalog(catalogURL);
> -                loadedCatalogs.add(URI.create(catalogURL.toString()));
> +                
> loadedCatalogs.add(URI.create(replaceWhitespace(catalogURL.toString())));
>             }
>         }
>     }
> 
>     public final void loadCatalog(URL catalogURL) throws IOException {
> -        if (!loadedCatalogs.contains(URI.create(catalogURL.toString())) && 
> catalog != null) {
> +        if 
> (!loadedCatalogs.contains(URI.create(replaceWhitespace(catalogURL.toString())))
>  && catalog != null) {
>             if ("file".equals(catalogURL.getProtocol())) {
>                 try {
>                     File file = new File(catalogURL.toURI());
> @@ -166,9 +166,16 @@ public class OASISCatalogManager {
> 
>             ((Catalog)catalog).parseCatalog(catalogURL);
> 
> -            loadedCatalogs.add(URI.create(catalogURL.toString()));
> +            
> loadedCatalogs.add(URI.create(replaceWhitespace(catalogURL.toString())));
>         }
>     }
> +    
> +    private String replaceWhitespace(String str) {
> +        if (str.contains(" ")) {
> +            str = str.replace(" ", "%20");
> +        }
> +        return str;
> +    }
> 
>     private static OASISCatalogManager getContextCatalog() {
>         try {
> 
> 

-- 
Daniel Kulp
[email protected] - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com

Reply via email to