FULL PRODUCT VERSION :
java version "1.5.0-rc"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-rc-b63)
Java HotSpot(TM) Client VM (build 1.5.0-rc-b63, mixed mode, sharing)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows XP [Version 5.1.2600]
A DESCRIPTION OF THE PROBLEM :
If I use a StreamResult(File) the file is not closed after calling the transform() method. The file could not be deleted (or renamed) until the JVM ends.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Compile the example source and run the program.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Delete:true
ACTUAL -
Delete:false
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
import java.io.File;
import java.io.IOException;
import java.io.StringReader;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
public class Test {
public static void main(String[] args) throws TransformerException, IOException {
File test = new File("test.txt");
TransformerFactory tf = TransformerFactory.newInstance();
Transformer xformer = tf.newTransformer();
StringReader st = new StringReader("<?xml version=\"1.0\" encoding=\"UTF-8\"?><doc></doc>");
StreamSource s = new StreamSource(st);
StreamResult r = new StreamResult(test);
xformer.transform(s,r);
System.out.println("Delete:"+test.delete());
}
}
---------- END SOURCE ----------
###@###.### 2005-1-11 18:31:27 GMT