Understood - so the idea here is to track the problem down at the start.
Do not make URLs that suck. I have made the change to the uDig code base
- and will have a look at how often file.toURL() is used in GeoTools.
Jody
> Yes, going from File to URL is easy. The problem is going from URL to File.
>
> On Thu, 21 Jun 2007 19:18:49 -0700
> Jody Garnett <[EMAIL PROTECTED]> wrote:
>
>
>> I just found that File.toURL() is deprecated (in Java 6):
>>
>>> @deprecated This method does not automatically escape characters that
>>> * are illegal in URLs. It is recommended that new code convert an
>>> * abstract pathname into a URL by first converting it into a URI,
>>> via the
>>> * [EMAIL PROTECTED] #toURI() toURI} method, and then converting the
>>> URI into
>>> a URL
>>> * via the [EMAIL PROTECTED] java.net.URI#toURL() URI.toURL} method.
>>>
>> I wonder if this technique, file.toURI().toURL(), behaves a bit better
>> then what you are hacking around?
>> Jody
>>
>>
>>> I am doing testing against trying to view/edit/manipulate files that reside
>>> on a windows network share, and I have run into several instances across
>>> both uDig and GeoTools where java.net.URLs are (improperly?) converted into
>>> java.io.Files. The usual method of doing this is to just use URL.getPath:
>>>
>>> File f = new File(url.getPath());
>>>
>>> But if URL equals "file://E:/somedir/foo.tif", then File f is associated
>>> with the file "\somedir\foo.tif". The drive/network share information is
>>> lost.
>>>
>>> The authority property contains this information:
>>>
>>> String auth = url.getAuthority();
>>> if (auth != null && !auth.equals("")) {
>>> f = new File("//"+auth+url.getPath());
>>> } else {
>>> f = new File(url.getPath());
>>> }
>>>
>>> The variable 'auth' equals "E:" in this case, or "fooServer" if it is a
>>> network share. In uDig I have added a utility method to the URLUtils class.
>>> If someone wants this in GeoTools, tell me where to put it and I will.
>>>
>>> It is a fair assumption that this happens a fair amount in our code, and I
>>> don't have time to go through the code base to check for instances of
>>> URL.getPath(), so I would just like to bring it to everyone's attention to
>>> keep an eye out for this.
>>>
>>> Of course, if anyone has any better suggestions, please let me know. But
>>> for now I am fixing it in the image module, and I may fix it in shapefile
>>> next.
>>>
>>> Richard
>>>
>>>
>>> -------------------------------------------------------------------------
>>> This SF.net email is sponsored by DB2 Express
>>> Download DB2 Express C - the FREE version of DB2 express and take
>>> control of your XML. No limits. Just data. Click to get it now.
>>> http://sourceforge.net/powerbar/db2/
>>> _______________________________________________
>>> Geotools-devel mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/geotools-devel
>>>
>>>
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Geotools-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel