Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse McConnell2012-02-22 20:42:39 +0000
committerJesse McConnell2012-02-22 20:42:39 +0000
commit0731cbe64dd623c16a722758742683f031371538 (patch)
treec3aa7575bb3eaea6b6d579276252f87a29627a0b /jetty-http/src
parent409522bc6419af433854c5633c980f0888de46f4 (diff)
parent8de385992e3c1821b826c132f9e8d2b171b1b56e (diff)
downloadorg.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.java26
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);
+ }
+ }
+ }
}
/* ------------------------------------------------------------ */

Back to the top