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 2006/12/03 01:29:43 UTC

svn commit: r481673 - /incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/util/resource/UrlResourceStream.java

Author: jcompagner
Date: Sat Dec  2 16:29:42 2006
New Revision: 481673

URL: http://svn.apache.org/viewvc?view=rev&rev=481673
Log:
get the last modified date from the jar file if it is a JarUrlConnections.
This to prevent file open issues.

Modified:
    incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/util/resource/UrlResourceStream.java

Modified: incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/util/resource/UrlResourceStream.java
URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/util/resource/UrlResourceStream.java?view=diff&rev=481673&r1=481672&r2=481673
==============================================================================
--- incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/util/resource/UrlResourceStream.java (original)
+++ incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/util/resource/UrlResourceStream.java Sat Dec  2 16:29:42 2006
@@ -20,6 +20,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;
@@ -229,15 +230,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();
 				}
 			}
@@ -254,7 +275,7 @@
 					{
 						((HttpURLConnection)urlConnection).disconnect();
 					}
-					else
+					else if (close)
 					{
 						try
 						{