markt 2005/02/14 12:29:29
Modified: jasper2/src/share/org/apache/jasper/util Tag:
tomcat_4_branch SystemLogHandler.java
Log:
Port fix for 33368 fromTC5. Fix leak in swallowOutput
- Patch submitted by Rainer Jung.
Revision Changes Path
No revision
No revision
1.1.2.3 +8 -11
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/util/SystemLogHandler.java
Index: SystemLogHandler.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/util/SystemLogHandler.java,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -u -r1.1.2.2 -r1.1.2.3
--- SystemLogHandler.java 25 Aug 2004 20:56:15 -0000 1.1.2.2
+++ SystemLogHandler.java 14 Feb 2005 20:29:29 -0000 1.1.2.3
@@ -19,8 +19,6 @@
import java.io.PrintStream;
import java.io.IOException;
-import java.util.Hashtable;
-
/**
* This helper class may be used to do sophisticated redirection of
@@ -55,13 +53,13 @@
/**
* Thread <-> PrintStream associations.
*/
- protected static Hashtable streams = new Hashtable();
+ protected static ThreadLocal streams = new ThreadLocal();
/**
* Thread <-> ByteArrayOutputStream associations.
*/
- protected static Hashtable data = new Hashtable();
+ protected static ThreadLocal data = new ThreadLocal();
// --------------------------------------------------------- Public
Methods
@@ -72,9 +70,8 @@
*/
public static void setThread() {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
- PrintStream ps = new PrintStream(baos);
- data.put(Thread.currentThread(), baos);
- streams.put(Thread.currentThread(), ps);
+ data.set(baos);
+ streams.set(new PrintStream(baos));
}
@@ -83,12 +80,12 @@
*/
public static String unsetThread() {
ByteArrayOutputStream baos =
- (ByteArrayOutputStream) data.get(Thread.currentThread());
+ (ByteArrayOutputStream) data.get();
if (baos == null) {
return null;
}
- streams.remove(Thread.currentThread());
- data.remove(Thread.currentThread());
+ streams.set(null);
+ data.set(null);
return baos.toString();
}
@@ -100,7 +97,7 @@
* Find PrintStream to which the output must be written to.
*/
protected PrintStream findStream() {
- PrintStream ps = (PrintStream) streams.get(Thread.currentThread());
+ PrintStream ps = (PrintStream) streams.get();
if (ps == null) {
ps = out;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]