void () { //init log listener onStartListening(getLogListener()); try { while (true) { String line = bufferedReader.readLine(); if (line == null) { if (isLogDebugEnabled()) { debug("Thread[LP]: end of log stream found: " + this); } break; } if (isLogDebugEnabled()) { debug("Thread[LP]: read line: ``" + line + "`` :" + this); } if (myLines2Skip == 0) { getLogListener().lineLogged(line + "\n"); myTotalLines++; } else { myLines2Skip--; } } } catch (IOException e) { debugEx(e); myLoggingHandler.println(e.toString()); } finally { LogListener logListener = getLogListener(); if (isLogDebugEnabled()) { debug("Thread[LP]: Pipe thread about to quit, closing LogListener: " + logListener + " :" + this); } logListener.close(); } }