Hi Ziv,

You're evaluation is correct. Fortunately, it appears that this has been fixed in XSLTC at Apache (I haven't tried it myself, but can tell by reading the source code). Please see [1] about downloading and installing the Apache version.

 Thanks.

-- Santiago

[1] http://xml.apache.org/xalan-j/downloads.html

On Dec 4, 2006, at 7:45 AM, Ziv Ben-Eliahu wrote:

I have the following code:

{
        File outputFile = new File("out.xml");
        Result outputResult = new StreamResult(outputFile);
        
        
        File inputFile = new File("in.xml");
        Result inputSource = new StreamSource(inputFile);
        
Transformer transformer = javax.xml.transform.TransformerFactory
             .newInstance().newTransformer("stylesheet.xsl");
        transformer.transform(inputSource, outputResult);
}

The default transformer instance is:
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl

After this code runs, I cannot delete the created "out.xml" file while JVM is running. If I use FileOutputStream instead of File, and close the stream myself, then I can delete the file. It seems to me that the Java-1.5 default Transformer opens a stream and does not close it.
Anyone knows if there is a different reason?
If no, do you know a non-default Transformer that closes the stream (rather than creating a stream myself).

Thanks, Ziv.



Reply via email to