You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jc...@apache.org on 2007/04/18 10:06:24 UTC
svn commit: r529907 -
/incubator/wicket/branches/wicket-1.2.x/wicket/src/main/java/wicket/util/resource/UrlResourceStream.java
Author: jcompagner
Date: Wed Apr 18 01:06:19 2007
New Revision: 529907
URL: http://svn.apache.org/viewvc?view=rev&rev=529907
Log:
File handle leak backport: WICKET-438
Modified:
incubator/wicket/branches/wicket-1.2.x/wicket/src/main/java/wicket/util/resource/UrlResourceStream.java
Modified: incubator/wicket/branches/wicket-1.2.x/wicket/src/main/java/wicket/util/resource/UrlResourceStream.java
URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.2.x/wicket/src/main/java/wicket/util/resource/UrlResourceStream.java?view=diff&rev=529907&r1=529906&r2=529907
==============================================================================
--- incubator/wicket/branches/wicket-1.2.x/wicket/src/main/java/wicket/util/resource/UrlResourceStream.java (original)
+++ incubator/wicket/branches/wicket-1.2.x/wicket/src/main/java/wicket/util/resource/UrlResourceStream.java Wed Apr 18 01:06:19 2007
@@ -21,6 +21,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
+import java.net.JarURLConnection;
import java.net.URI;
import java.net.URL;
import java.net.URLConnection;
@@ -230,15 +231,35 @@
else
{
URLConnection urlConnection = null;
+ boolean close = false;
try
{
urlConnection = url.openConnection();
-
+ long lastModified = this.lastModified;
+ if (urlConnection instanceof JarURLConnection)
+ {
+ JarURLConnection jarUrlConnection = (JarURLConnection)urlConnection;
+ URL jarFileUrl = jarUrlConnection.getJarFileURL();
+ URLConnection jarFileConnection = jarFileUrl.openConnection();
+ try
+ {
+ lastModified = jarFileConnection.getLastModified();
+ }
+ finally
+ {
+ jarFileConnection.getInputStream().close();
+ }
+ }
+ else
+ {
+ close = true;
+ lastModified = urlConnection.getLastModified();
+ }
// update the last modified time.
- long lastModified = urlConnection.getLastModified();
if (lastModified != this.lastModified)
{
this.lastModified = lastModified;
+ close = true;
this.contentLength = urlConnection.getContentLength();
}
}
@@ -255,7 +276,7 @@
{
((HttpURLConnection)urlConnection).disconnect();
}
- else
+ else if (close)
{
try
{