Source:
<code>public void run() { try { startupComplete(); while (isRunning()) { configureNewConnections(); <START> processNewResponses(); <END> long startSelectTime = SystemTime.getInstance().milliseconds(); int ready = selector.select(300); logger.trace("Processor id selection time = ms number of ready channels = {}", id, (SystemTime.getInstance().milliseconds() - startSelectTime), ready); if (ready > 0) { Set<SelectionKey> keys = selector.selectedKeys(); Iterator<SelectionKey> iter = keys.iterator(); long startTimeInMs = SystemTime.getInstance().milliseconds(); while (iter.hasNext() && isRunning()) { SelectionKey key = null; try { key = iter.next(); iter.remove(); if (key.isReadable()) { read(key); } else if (key.isWritable()) { write(key); } else if (!key.isValid()) { close(key); } else { throw new IllegalStateException("Unrecognized key state for processor thread."); } } catch (EOFException e) { close(key); logger.error("closing key on EOFException {}", e); } catch (Throwable e) { logger.error("closing key on exception remote host " + ((SocketChannel) key.channel()).socket() .getRemoteSocketAddress(), e); close(key); } } long roundTime = SystemTime.getInstance().milliseconds() - startTimeInMs; logger.trace("Processor id one round of processing time = {}", id, roundTime); } } logger.debug("Closing server socket and selector."); closeAll(); selector.close(); shutdownComplete(); } catch (Exception e) { logger.error("Error while shutting down processor thread {}", e); } }</code><technical_language>I assume added trace logging this class git shows a lot of diff due coding format addition of try finally. I skimming it. If not, know</technical_language>

Target:
public void run() { try { startupComplete(); while (isRunning()) { configureNewConnections(); processNewResponses(); long startSelectTime = SystemTime.getInstance().milliseconds(); int ready = selector.select(300); logger.trace("Processor id selection time = ms number of ready channels = {}", id, (SystemTime.getInstance().milliseconds() - startSelectTime), ready); if (ready > 0) { Set<SelectionKey> keys = selector.selectedKeys(); Iterator<SelectionKey> iter = keys.iterator(); long startTimeInMs = SystemTime.getInstance().milliseconds(); while (iter.hasNext() && isRunning()) { SelectionKey key = null; try { key = iter.next(); iter.remove(); if (key.isReadable()) { read(key); } else if (key.isWritable()) { write(key); } else if (!key.isValid()) { close(key); } else { throw new IllegalStateException("Unrecognized key state for processor thread."); } } catch (EOFException e) { close(key); logger.error("closing key on EOFException {}", e); } catch (Throwable e) { logger.error("closing key on exception remote host " + ((SocketChannel) key.channel()).socket() .getRemoteSocketAddress(), e); close(key); } } long selectedKeysProcessingTime = SystemTime.getInstance().milliseconds() - startTimeInMs; logger.trace("Processor id one selector iteration processing time = {}", id, selectedKeysProcessingTime); } } logger.debug("Closing server socket and selector."); closeAll(); selector.close(); shutdownComplete(); } catch (Exception e) { logger.error("Error while shutting down processor thread {}", e); } }