You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-cvs@jakarta.apache.org by ce...@apache.org on 2002/05/09 21:53:38 UTC
cvs commit: jakarta-log4j/src/java/org/apache/log4j/performance/xml logging1000.xml
ceki 02/05/09 12:53:38
Modified: src/java/org/apache/log4j/net SocketNode.java
TelnetAppender.java
src/java/org/apache/log4j/performance logging
src/java/org/apache/log4j/performance/xml logging1000.xml
Log:
Fixed bug #8527. A closed TelnetAppender would continue waiting
for connections even if its ServerSocket was closed. This caused
massive output on the console.
Revision Changes Path
1.20 +1 -1 jakarta-log4j/src/java/org/apache/log4j/net/SocketNode.java
Index: SocketNode.java
===================================================================
RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/net/SocketNode.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- SocketNode.java 9 May 2002 12:42:43 -0000 1.19
+++ SocketNode.java 9 May 2002 19:53:37 -0000 1.20
@@ -45,7 +45,7 @@
this.hierarchy = hierarchy;
try {
ois = new ObjectInputStream(
- new BufferedInputStream(socket.getInputStream()));
+ new BufferedInputStream(socket.getInputStream()));
}
catch(Exception e) {
logger.error("Could not open ObjectInputStream to "+socket, e);
1.3 +18 -17 jakarta-log4j/src/java/org/apache/log4j/net/TelnetAppender.java
Index: TelnetAppender.java
===================================================================
RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/net/TelnetAppender.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TelnetAppender.java 24 Apr 2002 01:16:12 -0000 1.2
+++ TelnetAppender.java 9 May 2002 19:53:37 -0000 1.3
@@ -13,6 +13,7 @@
import org.apache.log4j.Layout;
import org.apache.log4j.spi.LoggingEvent;
import org.apache.log4j.AppenderSkeleton;
+import org.apache.log4j.helpers.LogLog;
/**
<p>The TelnetAppender is a log4j appender that specializes in
@@ -47,7 +48,9 @@
private SocketHandler sh;
private int port = 23;
- /** this appender requires a layout to format the text to the attached client(s). */
+ /**
+ This appender requires a layout to format the text to the
+ attached client(s). */
public boolean requiresLayout() {
return true;
}
@@ -103,6 +106,7 @@
asynchronously. */
protected class SocketHandler extends Thread {
+ private boolean done = false;
private Vector writers = new Vector();
private Vector connections = new Vector();
private ServerSocket serverSocket;
@@ -113,15 +117,14 @@
for(Enumeration e = connections.elements();e.hasMoreElements();) {
try {
((Socket)e.nextElement()).close();
- }
- catch(Exception ex) {
+ } catch(Exception ex) {
}
}
try {
serverSocket.close();
+ } catch(Exception ex) {
}
- catch(Exception ex) {
- }
+ done = true;
}
/** sends a message to each of the clients in telnet-friendly output. */
@@ -132,37 +135,35 @@
PrintWriter writer = (PrintWriter)e.nextElement();
writer.print(message);
if(writer.checkError()) {
-
// The client has closed the connection, remove it from our list:
-
connections.remove(sock);
writers.remove(writer);
-
}
}
}
- /** continually accepts client connections. Client connections
- are refused when MAX_CONNECTIONS is reached. */
+ /**
+ Continually accepts client connections. Client connections
+ are refused when MAX_CONNECTIONS is reached.
+ */
public void run() {
- while(true) {
+ while(!done) {
try {
Socket newClient = serverSocket.accept();
PrintWriter pw = new PrintWriter(newClient.getOutputStream());
if(connections.size() < MAX_CONNECTIONS) {
connections.addElement(newClient);
writers.addElement(pw);
- pw.print("TelnetAppender v1.0 (" + connections.size() + " active connections)\r\n\r\n");
+ pw.print("TelnetAppender v1.0 (" + connections.size()
+ + " active connections)\r\n\r\n");
pw.flush();
- }
- else {
+ } else {
pw.print("Too many connections.\r\n");
pw.flush();
newClient.close();
}
- }
- catch(Exception e) {
- e.printStackTrace();
+ } catch(Exception e) {
+ LogLog.error("Encountered error while in SocketHandler loop.", e);
}
}
}
1.4 +10 -1 jakarta-log4j/src/java/org/apache/log4j/performance/logging
Index: logging
===================================================================
RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/performance/logging,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- logging 9 May 2002 15:43:44 -0000 1.3
+++ logging 9 May 2002 19:53:37 -0000 1.4
@@ -307,9 +307,18 @@
# ===============================================================
TEST=1000
#RL=1000
-RL=20000
+RL=10000
if [ $TEST -ge $start ]; then
java org.apache.log4j.performance.Logging xml/logging$TEST.xml $RL 100 100
+ #multiRun 4 "SocketAppender" $SHORTRUN $DELAY
+fi
+
+
+TEST=1001
+#RL=1000
+RL=30000
+if [ $TEST -ge $start ]; then
+ java org.apache.log4j.performance.Logging xml/logging$TEST.xml $RL
#multiRun 4 "SocketAppender" $SHORTRUN $DELAY
fi
1.5 +1 -1 jakarta-log4j/src/java/org/apache/log4j/performance/xml/logging1000.xml
Index: logging1000.xml
===================================================================
RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/performance/xml/logging1000.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- logging1000.xml 14 Jun 2001 10:07:08 -0000 1.4
+++ logging1000.xml 9 May 2002 19:53:38 -0000 1.5
@@ -4,7 +4,7 @@
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="NULL" class="org.apache.log4j.net.SocketAppender">
<param name="RemoteHost" value="localhost"/>
- <param name="Port" value="1000"/>
+ <param name="Port" value="12345"/>
<param name="ReconnectionDelay" value="1000"/>
</appender>
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>