diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/AggregatedLogFormat.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/AggregatedLogFormat.java index c9453b3..c97b7ff 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/AggregatedLogFormat.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/logaggregation/AggregatedLogFormat.java @@ -244,19 +244,13 @@ public void write(DataOutputStream out, Set pendingUploadFiles) // Write the log itself try { byte[] buf = new byte[65535]; - int len = 0; long bytesLeft = fileLength; - while ((len = in.read(buf)) != -1) { - //If buffer contents within fileLength, write - if (len < bytesLeft) { - out.write(buf, 0, len); - bytesLeft-=len; - } - //else only write contents within fileLength, then exit early - else { - out.write(buf, 0, (int)bytesLeft); - break; - } + while (bytesLeft > 0) { + int len = + in.read(buf, 0, bytesLeft > buf.length ? buf.length + : (int) bytesLeft); + out.write(buf, 0, len); + bytesLeft -= len; } long newLength = logFile.length(); if(fileLength < newLength) {