提交 e9568c5a 编写于 作者: K Kohsuke Kawaguchi

keep track of commands sent and received to aid debugging

上级 a4bc80e5
......@@ -172,6 +172,7 @@ public class Channel implements VirtualChannel, IChannel {
*/
private final Vector<Listener> listeners = new Vector<Listener>();
private int gcCounter;
private int commandsSent;
/**
* Total number of nanoseconds spent for remote class loading.
......@@ -485,6 +486,7 @@ public class Channel implements VirtualChannel, IChannel {
oos.flush(); // make sure the command reaches the other end.
} finally {
Channel.setCurrent(old);
commandsSent++;
}
// unless this is the last command, have OOS and remote OIS forget all the objects we sent
// in this command. Otherwise it'll keep objects in memory unnecessarily.
......@@ -977,15 +979,18 @@ public class Channel implements VirtualChannel, IChannel {
}
private final class ReaderThread extends Thread {
private int commandsReceived = 0;
private int commandsExecuted = 0;
public ReaderThread(String name) {
super("Channel reader thread: "+name);
}
@Override
public void run() {
Command cmd = null;
try {
while(inClosed==null) {
Command cmd = null;
try {
Channel old = Channel.setCurrent(Channel.this);
try {
......@@ -1000,7 +1005,10 @@ public class Channel implements VirtualChannel, IChannel {
throw ioe;
} catch (ClassNotFoundException e) {
logger.log(Level.SEVERE, "Unable to read a command (channel " + name + ")",e);
} finally {
commandsReceived++;
}
if(logger.isLoggable(Level.FINE))
logger.fine("Received "+cmd);
try {
......@@ -1008,6 +1016,8 @@ public class Channel implements VirtualChannel, IChannel {
} catch (Throwable t) {
logger.log(Level.SEVERE, "Failed to execute command "+cmd+ " (channel " + name + ")",t);
logger.log(Level.SEVERE, "This command is created here",cmd.createdAt);
} finally {
commandsExecuted++;
}
}
ois.close();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册