diff --git a/router/java/src/net/i2p/router/JobQueue.java b/router/java/src/net/i2p/router/JobQueue.java index 6be9d62a9..fa3465a5c 100644 --- a/router/java/src/net/i2p/router/JobQueue.java +++ b/router/java/src/net/i2p/router/JobQueue.java @@ -228,7 +228,32 @@ public class JobQueue { void shutdown() { _alive = false; StringBuffer buf = new StringBuffer(1024); - buf.append("jobs: \nready jobs: ").append(_readyJobs.size()).append("\n\t"); + buf.append("current jobs: \n"); + for (Iterator iter = _queueRunners.values().iterator(); iter.hasNext(); ) { + JobQueueRunner runner = (JobQueueRunner)iter.next(); + Job j = runner.getCurrentJob(); + + buf.append("Runner ").append(runner.getRunnerId()).append(": "); + if (j == null) { + buf.append("no current job "); + } else { + buf.append(j.toString()); + buf.append(" started ").append(_context.clock().now() - j.getTiming().getActualStart()); + buf.append("ms ago"); + } + + j = runner.getLastJob(); + if (j == null) { + buf.append("no last job"); + } else { + buf.append(j.toString()); + buf.append(" started ").append(_context.clock().now() - j.getTiming().getActualStart()); + buf.append("ms ago and finished "); + buf.append(_context.clock().now() - j.getTiming().getActualEnd()); + buf.append("ms ago"); + } + } + buf.append("\nready jobs: ").append(_readyJobs.size()).append("\n\t"); for (int i = 0; i < _readyJobs.size(); i++) buf.append(_readyJobs.get(i).toString()).append("\n\t"); buf.append("\n\ntimed jobs: ").append(_timedJobs.size()).append("\n\t");