You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ma...@apache.org on 2008/08/08 12:32:13 UTC
svn commit: r683934 - in /myfaces/trinidad/trunk_1.2.x:
trinidad-api/src/main/java/org/apache/myfaces/trinidad/resource/
trinidad-api/src/main/java/org/apache/myfaces/trinidad/webapp/
trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/shar...
Author: matzew
Date: Fri Aug 8 03:32:12 2008
New Revision: 683934
URL: http://svn.apache.org/viewvc?rev=683934&view=rev
Log:
TRINIDAD-73 - trinidad-impl.jar file is left open during execution
Thanks to Thomas Jacob for his patches.
I converted them to current 1.2 trunk and applied them.
Modified:
myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/resource/AggregatingResourceLoader.java
myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/resource/CachingResourceLoader.java
myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/resource/ProxyResourceLoader.java
myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/webapp/ResourceServlet.java
myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/share/io/URLInputStreamProvider.java
Modified: myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/resource/AggregatingResourceLoader.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/resource/AggregatingResourceLoader.java?rev=683934&r1=683933&r2=683934&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/resource/AggregatingResourceLoader.java (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/resource/AggregatingResourceLoader.java Fri Aug 8 03:32:12 2008
@@ -31,6 +31,7 @@
import java.util.NoSuchElementException;
import org.apache.myfaces.trinidad.logging.TrinidadLogger;
+import org.apache.myfaces.trinidad.util.URLUtils;
/**
* A resource loader implementation which combines multiple resources
@@ -290,7 +291,17 @@
for (int i=0, len = _connections.length; i < len; i++)
{
- long lastModified = _connections[i].getLastModified();
+ long lastModified;
+ try
+ {
+ lastModified = URLUtils.getLastModified(_connections[i]);
+ }
+ catch (IOException exception)
+ {
+ maxLastModified = -1;
+ break;
+ }
+
if (lastModified < 0)
{
maxLastModified = lastModified;
Modified: myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/resource/CachingResourceLoader.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/resource/CachingResourceLoader.java?rev=683934&r1=683933&r2=683934&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/resource/CachingResourceLoader.java (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/resource/CachingResourceLoader.java Fri Aug 8 03:32:12 2008
@@ -20,19 +20,17 @@
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
-import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
-import java.net.UnknownServiceException;
import java.net.URLConnection;
import java.net.URLStreamHandler;
import java.util.Map;
import java.util.HashMap;
-
+import org.apache.myfaces.trinidad.util.URLUtils;
/**
* Base class for resource loaders. Resource loaders can lookup resources
@@ -109,7 +107,7 @@
protected InputStream getInputStream(
URLConnection conn) throws IOException
{
- long lastModified = _getLastModified(_delegate);
+ long lastModified = URLUtils.getLastModified(_delegate);
if (_contents == null || _contentsModified < lastModified)
{
@@ -129,7 +127,7 @@
in.close();
}
_contents = out.toByteArray();
- _contentsModified = conn.getLastModified();
+ _contentsModified = URLUtils.getLastModified(conn);
}
return new ByteArrayInputStream(_contents);
@@ -182,7 +180,14 @@
@Override
public long getLastModified()
{
- return _conn.getLastModified();
+ try
+ {
+ return URLUtils.getLastModified(_conn);
+ }
+ catch (IOException exception)
+ {
+ return -1;
+ }
}
@Override
@@ -202,31 +207,4 @@
private final URLStreamHandlerImpl _handler;
}
- static private long _getLastModified(URL url) throws IOException
- {
- if ("file".equals(url.getProtocol()))
- {
- String externalForm = url.toExternalForm();
- // Remove the "file:"
- File file = new File(externalForm.substring(5));
-
- return file.lastModified();
- }
- else
- {
- URLConnection connection = url.openConnection();
- long modified = connection.getLastModified();
- try
- {
- InputStream is = connection.getInputStream();
- if (is != null)
- is.close();
- }
- catch (UnknownServiceException use)
- {
- }
-
- return modified;
- }
- }
-}
+}
\ No newline at end of file
Modified: myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/resource/ProxyResourceLoader.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/resource/ProxyResourceLoader.java?rev=683934&r1=683933&r2=683934&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/resource/ProxyResourceLoader.java (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/resource/ProxyResourceLoader.java Fri Aug 8 03:32:12 2008
@@ -29,6 +29,8 @@
import java.io.OutputStream;
import java.security.Permission;
+import org.apache.myfaces.trinidad.util.URLUtils;
+
/**
* A resource loader implementation that proxies another
* resource loader, controlling the URLConnection.
@@ -224,7 +226,14 @@
@Override
public long getLastModified()
{
- return getURLConnection().getLastModified();
+ try
+ {
+ return URLUtils.getLastModified(getURLConnection());
+ }
+ catch (IOException exception)
+ {
+ return -1;
+ }
}
@Override
Modified: myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/webapp/ResourceServlet.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/webapp/ResourceServlet.java?rev=683934&r1=683933&r2=683934&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/webapp/ResourceServlet.java (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/webapp/ResourceServlet.java Fri Aug 8 03:32:12 2008
@@ -29,7 +29,6 @@
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.net.SocketException;
-import java.net.UnknownServiceException;
import java.net.URL;
import java.net.URLConnection;
import java.util.HashMap;
@@ -56,6 +55,7 @@
import org.apache.myfaces.trinidad.resource.DirectoryResourceLoader;
import org.apache.myfaces.trinidad.resource.ResourceLoader;
import org.apache.myfaces.trinidad.resource.ServletContextResourceLoader;
+import org.apache.myfaces.trinidad.util.URLUtils;
/**
* A Servlet which serves up web application resources (images, style sheets,
@@ -243,23 +243,7 @@
if (url == null)
return super.getLastModified(request);
- URLConnection connection = url.openConnection();
- connection.setDoInput(false);
- connection.setDoOutput(false);
-
- long lastModified = connection.getLastModified();
- // Make sure the connection is closed
- try
- {
- InputStream is = connection.getInputStream();
- if (is != null)
- is.close();
- }
- catch (UnknownServiceException use)
- {
- }
-
- return lastModified;
+ return URLUtils.getLastModified(url);
}
catch (IOException e)
{
@@ -448,7 +432,16 @@
if (contentLength >= 0)
response.setContentLength(contentLength);
- long lastModified = connection.getLastModified();
+ long lastModified;
+ try
+ {
+ lastModified = URLUtils.getLastModified(connection);
+ }
+ catch (IOException exception)
+ {
+ lastModified = -1;
+ }
+
if (lastModified >= 0)
response.setDateHeader("Last-Modified", lastModified);
Modified: myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/share/io/URLInputStreamProvider.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/share/io/URLInputStreamProvider.java?rev=683934&r1=683933&r2=683934&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/share/io/URLInputStreamProvider.java (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/share/io/URLInputStreamProvider.java Fri Aug 8 03:32:12 2008
@@ -25,7 +25,7 @@
import java.net.URL;
import java.net.URLConnection;
-import org.apache.myfaces.trinidadinternal.util.URLUtils;
+import org.apache.myfaces.trinidad.util.URLUtils;
/**
* An InputStreamProvider for opening URLs.
@@ -49,8 +49,8 @@
{
// Get the inputstream from the connection to avoid duplicate calls
// to URL.openConnection
+ _lastModifiedTime = URLUtils.getLastModified(_url);
URLConnection connection = _url.openConnection();
- _lastModifiedTime = connection.getLastModified();
// In theory, should not need to close
InputStream base = connection.getInputStream();