cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Freeman Fang <freeman.f...@gmail.com>
Subject Re: svn commit: r1406958 - /cxf/trunk/rt/core/src/main/java/org/apache/cxf/catalog/OASISCatalogManager.java
Date Thu, 08 Nov 2012 13:16:40 GMT
Hi Dan,

Thanks for the suggestion, but I don't think the
 if (!loadedCatalogs.contains(catalogURL.toURI())
could work.

Take a close look at URL.toURI() method, it's
    public URI toURI() throws URISyntaxException {
        return new URI (toString());  ///line 1
    }

Also take a look at URI.create() method, it's 
public static URI create(String str) {
        try {
            return new URI(str);   ///line 2
        } catch (URISyntaxException x) {
            throw new IllegalArgumentException(x.getMessage(), x);
        }
    }

so line1 and line2 are exactly same method with same input argument, so using catalogURL.toURI()
actually same effect with  URI.create(catalogURL.toString()). So we need explicitly  manipulate
catalogURL.toString() anyway to replace/encode whitespace there.

Best Regards
Freeman
-------------
Freeman(Yue) Fang

Red Hat, Inc. 
FuseSource is now part of Red Hat
Web: http://fusesource.com | http://www.redhat.com/
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com
http://blog.sina.com.cn/u/1473905042
weibo: http://weibo.com/u/1473905042

On 2012-11-8, at 下午8:36, Daniel Kulp wrote:

> 
> 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, ffang@apache.org 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
> dkulp@apache.org - http://dankulp.com/blog
> Talend Community Coder - http://coders.talend.com
> 


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message