public class org.apache.log4j.net.TelnetAppender$SocketHandler extends java.lang.Thread
{
private java.util.Vector writers;
private java.util.Vector connections;
private java.net.ServerSocket serverSocket;
private int MAX_CONNECTIONS;
final org.apache.log4j.net.TelnetAppender this$0;
public void finalize()
{
org.apache.log4j.net.TelnetAppender$SocketHandler v;
v := @this: org.apache.log4j.net.TelnetAppender$SocketHandler;
virtualinvoke v.<org.apache.log4j.net.TelnetAppender$SocketHandler: void close()>();
return;
}
public void close()
{
java.lang.Throwable v;
org.apache.log4j.net.TelnetAppender$SocketHandler v;
java.util.Enumeration v;
java.io.IOException v, v;
java.lang.RuntimeException v, v;
java.io.InterruptedIOException v, v;
java.net.ServerSocket v;
java.util.Vector v;
java.lang.Thread v, v;
java.lang.Object v;
boolean v;
v := @this: org.apache.log4j.net.TelnetAppender$SocketHandler;
entermonitor v;
label:
v = v.<org.apache.log4j.net.TelnetAppender$SocketHandler: java.util.Vector connections>;
v = virtualinvoke v.<java.util.Vector: java.util.Enumeration elements()>();
label:
v = interfaceinvoke v.<java.util.Enumeration: boolean hasMoreElements()>();
if v == 0 goto label;
label:
v = interfaceinvoke v.<java.util.Enumeration: java.lang.Object nextElement()>();
virtualinvoke v.<java.net.Socket: void close()>();
label:
goto label;
label:
v := @caughtexception;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
goto label;
label:
v := @caughtexception;
goto label;
label:
v := @caughtexception;
goto label;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v.<org.apache.log4j.net.TelnetAppender$SocketHandler: java.net.ServerSocket serverSocket>;
virtualinvoke v.<java.net.ServerSocket: void close()>();
label:
goto label;
label:
v := @caughtexception;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
goto label;
label:
v := @caughtexception;
goto label;
label:
v := @caughtexception;
label:
return;
catch java.io.InterruptedIOException from label to label with label;
catch java.io.IOException from label to label with label;
catch java.lang.RuntimeException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.io.InterruptedIOException from label to label with label;
catch java.io.IOException from label to label with label;
catch java.lang.RuntimeException from label to label with label;
}
public synchronized void send(java.lang.String)
{
java.util.Iterator v, v;
org.apache.log4j.net.TelnetAppender$SocketHandler v;
java.util.Vector v, v;
java.lang.Object v;
java.lang.String v;
boolean v, v;
v := @this: org.apache.log4j.net.TelnetAppender$SocketHandler;
v := @parameter: java.lang.String;
v = v.<org.apache.log4j.net.TelnetAppender$SocketHandler: java.util.Vector connections>;
v = virtualinvoke v.<java.util.Vector: java.util.Iterator iterator()>();
v = v.<org.apache.log4j.net.TelnetAppender$SocketHandler: java.util.Vector writers>;
v = virtualinvoke v.<java.util.Vector: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
virtualinvoke v.<java.io.PrintWriter: void print(java.lang.String)>(v);
v = virtualinvoke v.<java.io.PrintWriter: boolean checkError()>();
if v == 0 goto label;
interfaceinvoke v.<java.util.Iterator: void remove()>();
interfaceinvoke v.<java.util.Iterator: void remove()>();
goto label;
label:
return;
}
public void run()
{
java.lang.Throwable v;
java.net.Socket v;
org.apache.log4j.net.TelnetAppender$SocketHandler v;
java.io.InterruptedIOException v;
java.net.ServerSocket v, v, v, v;
java.util.Vector v, v, v, v;
java.lang.Thread v, v;
int v, v, v;
java.lang.String v;
boolean v, v, v, v;
java.io.OutputStream v;
java.io.PrintWriter v;
java.io.IOException v;
java.lang.Exception v;
v := @this: org.apache.log4j.net.TelnetAppender$SocketHandler;
label:
v = v.<org.apache.log4j.net.TelnetAppender$SocketHandler: java.net.ServerSocket serverSocket>;
v = virtualinvoke v.<java.net.ServerSocket: boolean isClosed()>();
if v != 0 goto label;
label:
v = v.<org.apache.log4j.net.TelnetAppender$SocketHandler: java.net.ServerSocket serverSocket>;
v = virtualinvoke v.<java.net.ServerSocket: java.net.Socket accept()>();
v = new java.io.PrintWriter;
v = virtualinvoke v.<java.net.Socket: java.io.OutputStream getOutputStream()>();
specialinvoke v.<java.io.PrintWriter: void <init>(java.io.OutputStream)>(v);
v = v.<org.apache.log4j.net.TelnetAppender$SocketHandler: java.util.Vector connections>;
v = virtualinvoke v.<java.util.Vector: int size()>();
v = v.<org.apache.log4j.net.TelnetAppender$SocketHandler: int MAX_CONNECTIONS>;
if v >= v goto label;
entermonitor v;
label:
v = v.<org.apache.log4j.net.TelnetAppender$SocketHandler: java.util.Vector connections>;
virtualinvoke v.<java.util.Vector: void addElement(java.lang.Object)>(v);
v = v.<org.apache.log4j.net.TelnetAppender$SocketHandler: java.util.Vector writers>;
virtualinvoke v.<java.util.Vector: void addElement(java.lang.Object)>(v);
v = v.<org.apache.log4j.net.TelnetAppender$SocketHandler: java.util.Vector connections>;
v = virtualinvoke v.<java.util.Vector: int size()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("TelnetAppender v.0 (\u active connections)\r\n\r\n");
virtualinvoke v.<java.io.PrintWriter: void print(java.lang.String)>(v);
virtualinvoke v.<java.io.PrintWriter: void flush()>();
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
virtualinvoke v.<java.io.PrintWriter: void print(java.lang.String)>("Too many connections.\r\n");
virtualinvoke v.<java.io.PrintWriter: void flush()>();
virtualinvoke v.<java.net.Socket: void close()>();
label:
goto label;
label:
v := @caughtexception;
v = v instanceof java.io.InterruptedIOException;
if v != 0 goto label;
v = v instanceof java.lang.InterruptedException;
if v == 0 goto label;
label:
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
label:
v = v.<org.apache.log4j.net.TelnetAppender$SocketHandler: java.net.ServerSocket serverSocket>;
v = virtualinvoke v.<java.net.ServerSocket: boolean isClosed()>();
if v != 0 goto label;
staticinvoke <org.apache.log4j.helpers.LogLog: void error(java.lang.String,java.lang.Throwable)>("Encountered error while in SocketHandler loop.", v);
label:
v = v.<org.apache.log4j.net.TelnetAppender$SocketHandler: java.net.ServerSocket serverSocket>;
virtualinvoke v.<java.net.ServerSocket: void close()>();
label:
goto label;
label:
v := @caughtexception;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
goto label;
label:
v := @caughtexception;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.io.InterruptedIOException from label to label with label;
catch java.io.IOException from label to label with label;
}
public void <init>(org.apache.log4j.net.TelnetAppender, int) throws java.io.IOException
{
org.apache.log4j.net.TelnetAppender$SocketHandler v;
org.apache.log4j.net.TelnetAppender v;
java.net.ServerSocket v;
java.util.Vector v, v;
int v;
java.lang.String v, v;
v := @this: org.apache.log4j.net.TelnetAppender$SocketHandler;
v := @parameter: org.apache.log4j.net.TelnetAppender;
v := @parameter: int;
v.<org.apache.log4j.net.TelnetAppender$SocketHandler: org.apache.log4j.net.TelnetAppender this$0> = v;
specialinvoke v.<java.lang.Thread: void <init>()>();
v = new java.util.Vector;
specialinvoke v.<java.util.Vector: void <init>()>();
v.<org.apache.log4j.net.TelnetAppender$SocketHandler: java.util.Vector writers> = v;
v = new java.util.Vector;
specialinvoke v.<java.util.Vector: void <init>()>();
v.<org.apache.log4j.net.TelnetAppender$SocketHandler: java.util.Vector connections> = v;
v.<org.apache.log4j.net.TelnetAppender$SocketHandler: int MAX_CONNECTIONS> = 20;
v = new java.net.ServerSocket;
specialinvoke v.<java.net.ServerSocket: void <init>(int)>(v);
v.<org.apache.log4j.net.TelnetAppender$SocketHandler: java.net.ServerSocket serverSocket> = v;
v = virtualinvoke v.<org.apache.log4j.net.TelnetAppender$SocketHandler: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("TelnetAppender-\u0001-\u0001");
virtualinvoke v.<org.apache.log4j.net.TelnetAppender$SocketHandler: void setName(java.lang.String)>(v);
return;
}
}