vgritsenko 02/01/24 19:46:35
Modified: src/java/org/apache/cocoon/environment/commandline
AbstractCommandLineEnvironment.java
Log:
Always recycle sources.
Revision Changes Path
1.3 +13 -3
xml-cocoon2/src/java/org/apache/cocoon/environment/commandline/AbstractCommandLineEnvironment.java
Index: AbstractCommandLineEnvironment.java
===================================================================
RCS file:
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/environment/commandline/AbstractCommandLineEnvironment.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- AbstractCommandLineEnvironment.java 22 Jan 2002 00:17:12 -0000 1.2
+++ AbstractCommandLineEnvironment.java 25 Jan 2002 03:46:35 -0000 1.3
@@ -27,7 +27,7 @@
* This environment is used to save the requested file to disk.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Stefano Mazzocchi</a>
- * @version CVS $Revision: 1.2 $ $Date: 2002/01/22 00:17:12 $
+ * @version CVS $Revision: 1.3 $ $Date: 2002/01/25 03:46:35 $
*/
public abstract class AbstractCommandLineEnvironment
@@ -57,15 +57,18 @@
if (sessionmode) {
CommandLineSession.getSession(true);
}
+
// fix all urls created with request.getScheme()+... etc.
if (newURL.startsWith("cli:/")) {
int pos = newURL.indexOf('/', 6);
newURL = newURL.substring(pos+1);
}
+
// fix all relative urls to use to cocoon: protocol
if (newURL.indexOf(":") == -1) {
newURL = "cocoon:/" + newURL;
}
+
// FIXME: this is a hack for the links view
if (newURL.startsWith("cocoon:")
&& this.getView() != null
@@ -78,17 +81,22 @@
org.apache.cocoon.serialization.LinkSerializer ls =
new org.apache.cocoon.serialization.LinkSerializer();
ls.setOutputStream(this.stream);
+
+ Source redirectSource = null;
try {
- final Source redirectSource = this.resolve(newURL);
+ redirectSource = this.resolve(newURL);
redirectSource.toSAX(ls);
} catch (SAXException se) {
throw new IOException("SAXException: " + se);
} catch (ProcessingException pe) {
throw new IOException("ProcessingException: " + pe);
+ } finally {
+ if (redirectSource != null) redirectSource.recycle();
}
} else {
+ Source redirectSource = null;
try {
- final Source redirectSource = this.resolve(newURL);
+ redirectSource = this.resolve(newURL);
InputStream is = redirectSource.getInputStream();
byte[] buffer = new byte[8192];
int length = -1;
@@ -100,6 +108,8 @@
throw new IOException("SAXException: " + se);
} catch (ProcessingException pe) {
throw new IOException("ProcessingException: " + pe);
+ } finally {
+ if (redirectSource != null) redirectSource.recycle();
}
}
}
----------------------------------------------------------------------
In case of troubles, e-mail: [EMAIL PROTECTED]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]