You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2010/11/27 21:22:07 UTC
svn commit: r1039751 -
/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/ContextRelativeResource.java
Author: mgrigorov
Date: Sat Nov 27 20:22:07 2010
New Revision: 1039751
URL: http://svn.apache.org/viewvc?rev=1039751&view=rev
Log:
Close the streams after usage.
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/ContextRelativeResource.java
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/ContextRelativeResource.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/ContextRelativeResource.java?rev=1039751&r1=1039750&r2=1039751&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/ContextRelativeResource.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/ContextRelativeResource.java Sat Nov 27 20:22:07 2010
@@ -24,6 +24,8 @@ import org.apache.wicket.util.io.ByteArr
import org.apache.wicket.util.io.Streams;
import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
import org.apache.wicket.util.resource.WebExternalResourceStream;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Resource served from a file relative to the context root.
@@ -34,6 +36,8 @@ public class ContextRelativeResource ext
{
private static final long serialVersionUID = 1L;
+ private static final Logger log = LoggerFactory.getLogger(ContextRelativeResource.class);
+
private final String path;
/**
@@ -74,10 +78,11 @@ public class ContextRelativeResource ext
@Override
public void writeData(final Attributes attributes)
{
+ InputStream inputStream = null;
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
try
{
- InputStream inputStream = webExternalResourceStream.getInputStream();
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ inputStream = webExternalResourceStream.getInputStream();
Streams.copy(inputStream, baos);
attributes.getResponse().write(baos.toByteArray());
}
@@ -89,6 +94,36 @@ public class ContextRelativeResource ext
{
throw new WicketRuntimeException(iox);
}
+ finally
+ {
+ try
+ {
+ Streams.close(inputStream);
+ }
+ catch (IOException iox)
+ {
+ if (log.isDebugEnabled())
+ {
+ log.debug(
+ "An error occurred while closing the input stream to the external resource",
+ iox);
+ }
+ }
+
+ try
+ {
+ Streams.close(baos);
+ }
+ catch (IOException iox)
+ {
+ if (log.isDebugEnabled())
+ {
+ log.debug(
+ "An error occurred while closing the temporary output stream",
+ iox);
+ }
+ }
+ }
}
});
}