You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by mk...@apache.org on 2004/03/24 16:41:13 UTC
cvs commit: xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerImpl.java
mkwan 2004/03/24 07:41:13
Modified: java/src/org/apache/xalan/xsltc/trax TransformerImpl.java
Log:
Patch for bug 27417.
If an output stream is created by the XSLTC transformer, close
it after the transformation.
Revision Changes Path
1.81 +18 -4 xml-xalan/java/src/org/apache/xalan/xsltc/trax/TransformerImpl.java
Index: TransformerImpl.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/trax/TransformerImpl.java,v
retrieving revision 1.80
retrieving revision 1.81
diff -u -r1.80 -r1.81
--- TransformerImpl.java 23 Feb 2004 21:33:15 -0000 1.80
+++ TransformerImpl.java 24 Mar 2004 15:41:12 -0000 1.81
@@ -153,6 +153,11 @@
private TransformerFactoryImpl _tfactory = null;
/**
+ * A reference to the output stream, if we create one in our code.
+ */
+ private OutputStream _ostream = null;
+
+ /**
* A reference to the XSLTCDTMManager which is used to build the DOM/DTM
* for this transformer.
*/
@@ -372,20 +377,20 @@
if (systemId.startsWith("file:")) {
url = new URL(systemId);
_tohFactory.setOutputStream(
- new FileOutputStream(url.getFile()));
+ _ostream = new FileOutputStream(url.getFile()));
return _tohFactory.getSerializationHandler();
}
else if (systemId.startsWith("http:")) {
url = new URL(systemId);
final URLConnection connection = url.openConnection();
- _tohFactory.setOutputStream(connection.getOutputStream());
+ _tohFactory.setOutputStream(_ostream = connection.getOutputStream());
return _tohFactory.getSerializationHandler();
}
else {
// system id is just a filename
url = new File(systemId).toURL();
_tohFactory.setOutputStream(
- new FileOutputStream(url.getFile()));
+ _ostream = new FileOutputStream(url.getFile()));
return _tohFactory.getSerializationHandler();
}
}
@@ -608,6 +613,15 @@
} finally {
_dtmManager = null;
}
+
+ // If we create an output stream for the Result, we need to close it after the transformation.
+ if (_ostream != null) {
+ try {
+ _ostream.close();
+ }
+ catch (IOException e) {}
+ _ostream = null;
+ }
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org