public void run() { BufferedReader r = null; SplittableBufferedWriter w = this.writer; char recordDelim = this.options.getOutputRecordDelim(); try { r = new BufferedReader(new InputStreamReader(this.stream)); // read/write transfer loop here. while (true) { String inLine = r.readLine(); if (null == inLine) { break; // EOF } w.write(inLine); w.write(recordDelim); w.allowSplit(); counters.addBytes(1 + inLine.length()); } } catch (IOException ioe) { LOG.error("IOException reading from psql: " + ioe.toString()); // set the error bit so our caller can see that something went wrong. setError(); } finally { if (null != r) { try { r.close(); } catch (IOException ioe) { LOG.info("Error closing FIFO stream: " + ioe.toString()); } } if (null != w) { try { w.close(); } catch (IOException ioe) { LOG.info("Error closing HDFS stream: " + ioe.toString()); } } } }