Potential resource leaks in BinaryProtocol$TeeOutputStream.java and
TaskLogServlet.java
---------------------------------------------------------------------------------------
Key: MAPREDUCE-2631
URL: https://issues.apache.org/jira/browse/MAPREDUCE-2631
Project: Hadoop Map/Reduce
Issue Type: Bug
Components: jobtracker
Affects Versions: 0.23.0
Reporter: Ravi Teja Ch N V
{code:title=TaskLogServlet.java|borderStyle=solid}
private void printTaskLog(HttpServletResponse response,
OutputStream out, TaskAttemptID taskId,
long start, long end, boolean plainText,
TaskLog.LogName filter, boolean isCleanup)
throws IOException {
if (!plainText) {
out.write(("<br><b><u>" + filter + " logs</u></b><br>\n" +
"<pre>\n").getBytes());
}
try {
InputStream taskLogReader =
new TaskLog.Reader(taskId, filter, start, end, isCleanup);
byte[] b = new byte[65536];
int result;
while (true) {
result = taskLogReader.read(b);
if (result > 0) {
if (plainText) {
out.write(b, 0, result);
} else {
HtmlQuoting.quoteHtmlChars(out, b, 0, result);
}
} else {
break;
}
}
taskLogReader.close();
{code}
In the above code, if any exception thrown while reading
(taskLogReader.read(b)), taskLogReader will not be closed.
{code:title=BinaryProtocol$TeeOutputStream.java|borderStyle=solid}
public void close() throws IOException {
flush();
file.close();
out.close();
}
{code}
In the above code, if the file.close() throws any exception out will not be
closed.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira