diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/implementation/StatusLine.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/implementation/StatusLine.java index 65bf31c120f7e..d3fabaa0c4606 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/implementation/StatusLine.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/media/implementation/StatusLine.java @@ -30,15 +30,20 @@ public class StatusLine { public static StatusLine create(DataSource dataSource) { try { LineInputStream stream = new LineInputStream(dataSource.getInputStream()); - String line = stream.readLine(); - StringReader lineReader = new StringReader(line); + try { + String line = stream.readLine(); + StringReader lineReader = new StringReader(line); - expect(lineReader, "HTTP/1.1"); - expect(lineReader, " "); - String statusString = extractInput(lineReader, ' '); - String reason = extractInput(lineReader, -1); + expect(lineReader, "HTTP/1.1"); + expect(lineReader, " "); + String statusString = extractInput(lineReader, ' '); + String reason = extractInput(lineReader, -1); - return new StatusLine().setStatus(Integer.parseInt(statusString)).setReason(reason); + return new StatusLine().setStatus(Integer.parseInt(statusString)).setReason(reason); + } + finally { + stream.close(); + } } catch (IOException e) { throw new RuntimeException(e); diff --git a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/table/implementation/HttpReaderWriter.java b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/table/implementation/HttpReaderWriter.java index 48f4b40d85309..10dd2360c8557 100644 --- a/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/table/implementation/HttpReaderWriter.java +++ b/microsoft-azure-api/src/main/java/com/microsoft/windowsazure/services/table/implementation/HttpReaderWriter.java @@ -40,15 +40,20 @@ public HttpReaderWriter() { public StatusLine parseStatusLine(DataSource ds) { try { LineInputStream stream = new LineInputStream(ds.getInputStream()); - String line = stream.readLine(); - StringReader lineReader = new StringReader(line); + try { + String line = stream.readLine(); + StringReader lineReader = new StringReader(line); - expect(lineReader, "HTTP/1.1"); - expect(lineReader, " "); - String statusString = extractInput(lineReader, ' '); - String reason = extractInput(lineReader, -1); + expect(lineReader, "HTTP/1.1"); + expect(lineReader, " "); + String statusString = extractInput(lineReader, ' '); + String reason = extractInput(lineReader, -1); - return new StatusLine().setStatus(Integer.parseInt(statusString)).setReason(reason); + return new StatusLine().setStatus(Integer.parseInt(statusString)).setReason(reason); + } + finally { + stream.close(); + } } catch (IOException e) { throw new RuntimeException(e);