On 12.07.2008 11:56:23 Andreas Delmelle wrote:
> On Jul 11, 2008, at 13:22, Jeremias Maerki wrote:
> 
> > Bonekrusher and I had an exchange off-list. He did a few tests for me
> > and my recent change didn't help either.
> >
> > Basically, we established the following:
> > - He's also running WinXP
> > - He's running the same JDK as I do.
> 
> The /exact/ same one (identical build)?

Yes, Sun 1.6.0_04

> 
> Just asking, since I remember running across some issues/ 
> inconsistencies in the way the java.net.URL and java.net.URI  
> translate themselves to a String.
> Maybe that's what's playing here... Is the warning about the  
> deprecated File.toURL() maybe related and a hint?

If it is in fact the file URL that's the problem, I'm pretty sure the
problem happens within Xalan as I'm passing in a StreamResult(File).

> As of Java 6, the recommended way is to use File.toURI().toURL().  
> According to the API docs, File.toURL() "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 toURI method, and then converting the URI into  
> a URL via the URI.toURL method."

I guess it makes sense to change all occurences now that we're on Java
1.4. I've changed the StreamSource(File) to
StreamSource(File.toURI().toURL().toExternalForm()) as a first
experiment. Bonekrusher can then retry on his machine.
http://svn.apache.org/viewvc?rev=676161&view=rev

On my machine the following:
        System.out.println(outputFile.toURI().toASCIIString());
        System.out.println(outputFile.toURI().toString());
        System.out.println(outputFile.toURI().toURL().toExternalForm());
        System.out.println(outputFile.toURL().toExternalForm());
yielded the following results:
[eventResourceGenerator] 
file:/C:/Dev/FOP/main/xml-fop-temp/build/gensrc/org/apache/fop/events/event-model.xml
[eventResourceGenerator] 
file:/C:/Dev/FOP/main/xml-fop-temp/build/gensrc/org/apache/fop/events/event-model.xml
[eventResourceGenerator] 
file:/C:/Dev/FOP/main/xml-fop-temp/build/gensrc/org/apache/fop/events/event-model.xml
[eventResourceGenerator] 
file:/C:/Dev/FOP/main/xml-fop-temp/build/gensrc/org/apache/fop/events/event-model.xml

Just for reference, Bonekrusher got
file:\C:\fop_trunk\trunk\build\gensrc\org\apache\fop\events\event-model.xml
on his machine (see his first post).

> Makes you wonder why the implementation of toURL() then does not  
> simply do that already... I assume this is for reasons of backward- 
> compatibility, so as to not break any existing code that relies on  
> that behavior (?)

Probably.

> 
> 
> Cheers
> 
> Andreas




Jeremias Maerki

Reply via email to