aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShawn O. Pearce <spearce@spearce.org>2011-11-30 17:17:59 -0800
committerShawn O. Pearce <spearce@spearce.org>2011-11-30 17:45:41 -0800
commit0d61707f12b5b1a94b325fc8c2975a9e60a14dac (patch)
tree38616634067dda94e08944faca52753268d5ac4f
parentcea935ab1b6caf52b31dfd4eae9696dfcc0593a2 (diff)
downloadjgit-0d61707f12b5b1a94b325fc8c2975a9e60a14dac.tar.gz
jgit-0d61707f12b5b1a94b325fc8c2975a9e60a14dac.zip
Always close the GZIPOutputStream to release Deflater
The stream must be closed to ensure the native resources associated with its internal Deflater instance are cleaned up early, instead of waiting for GC to identify the dead object and finialize it. Change-Id: Ic31b5df563f19404ed4682556999f4332aa61562
-rw-r--r--org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/SmartOutputStream.java7
1 files changed, 5 insertions, 2 deletions
diff --git a/org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/SmartOutputStream.java b/org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/SmartOutputStream.java
index 00cb67ca95..c39b78900d 100644
--- a/org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/SmartOutputStream.java
+++ b/org.eclipse.jgit.http.server/src/org/eclipse/jgit/http/server/SmartOutputStream.java
@@ -101,8 +101,11 @@ class SmartOutputStream extends TemporaryBuffer {
TemporaryBuffer gzbuf = new TemporaryBuffer.Heap(LIMIT);
try {
GZIPOutputStream gzip = new GZIPOutputStream(gzbuf);
- out.writeTo(gzip, null);
- gzip.close();
+ try {
+ out.writeTo(gzip, null);
+ } finally {
+ gzip.close();
+ }
if (gzbuf.length() < out.length()) {
out = gzbuf;
rsp.setHeader(HDR_CONTENT_ENCODING, ENCODING_GZIP);