diff options
author | Jesse McConnell | 2012-02-22 20:42:39 +0000 |
---|---|---|
committer | Jesse McConnell | 2012-02-22 20:42:39 +0000 |
commit | 0731cbe64dd623c16a722758742683f031371538 (patch) | |
tree | c3aa7575bb3eaea6b6d579276252f87a29627a0b /jetty-http/src | |
parent | 409522bc6419af433854c5633c980f0888de46f4 (diff) | |
parent | 8de385992e3c1821b826c132f9e8d2b171b1b56e (diff) | |
download | org.eclipse.jetty.project-0731cbe64dd623c16a722758742683f031371538.tar.gz org.eclipse.jetty.project-0731cbe64dd623c16a722758742683f031371538.tar.xz org.eclipse.jetty.project-0731cbe64dd623c16a722758742683f031371538.zip |
Merge branch 'master' into jetty-8
Diffstat (limited to 'jetty-http/src')
-rw-r--r-- | jetty-http/src/main/java/org/eclipse/jetty/http/HttpContent.java | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/jetty-http/src/main/java/org/eclipse/jetty/http/HttpContent.java b/jetty-http/src/main/java/org/eclipse/jetty/http/HttpContent.java index 69b2f939d0..ade697cb27 100644 --- a/jetty-http/src/main/java/org/eclipse/jetty/http/HttpContent.java +++ b/jetty-http/src/main/java/org/eclipse/jetty/http/HttpContent.java @@ -18,6 +18,8 @@ import java.io.InputStream; import org.eclipse.jetty.io.Buffer; import org.eclipse.jetty.io.ByteArrayBuffer; +import org.eclipse.jetty.util.log.Log; +import org.eclipse.jetty.util.log.Logger; import org.eclipse.jetty.util.resource.Resource; /* ------------------------------------------------------------ */ @@ -41,6 +43,8 @@ public interface HttpContent /* ------------------------------------------------------------ */ public class ResourceAsHttpContent implements HttpContent { + private static final Logger LOG = Log.getLogger(ResourceAsHttpContent.class); + final Resource _resource; final Buffer _mimeType; final int _maxBuffer; @@ -80,18 +84,34 @@ public interface HttpContent /* ------------------------------------------------------------ */ public Buffer getIndirectBuffer() { + InputStream inputStream = null; try { - if (_resource.length()<=0 || _maxBuffer<_resource.length()) + if (_resource.length() <= 0 || _maxBuffer < _resource.length()) return null; ByteArrayBuffer buffer = new ByteArrayBuffer((int)_resource.length()); - buffer.readFrom(_resource.getInputStream(),(int)_resource.length()); + inputStream = _resource.getInputStream(); + buffer.readFrom(inputStream,(int)_resource.length()); return buffer; } - catch(IOException e) + catch (IOException e) { throw new RuntimeException(e); } + finally + { + if (inputStream != null) + { + try + { + inputStream.close(); + } + catch (IOException e) + { + LOG.warn("Couldn't close inputStream. Possible file handle leak",e); + } + } + } } /* ------------------------------------------------------------ */ |