You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@velocity.apache.org by nb...@apache.org on 2008/08/21 02:33:34 UTC

svn commit: r687524 - /velocity/engine/trunk/src/java/org/apache/velocity/runtime/resource/loader/URLResourceLoader.java

Author: nbubna
Date: Wed Aug 20 17:33:34 2008
New Revision: 687524

URL: http://svn.apache.org/viewvc?rev=687524&view=rev
Log:
VELOCITY-585 allow a timeout to be set for URLResourceLoader

Modified:
    velocity/engine/trunk/src/java/org/apache/velocity/runtime/resource/loader/URLResourceLoader.java

Modified: velocity/engine/trunk/src/java/org/apache/velocity/runtime/resource/loader/URLResourceLoader.java
URL: http://svn.apache.org/viewvc/velocity/engine/trunk/src/java/org/apache/velocity/runtime/resource/loader/URLResourceLoader.java?rev=687524&r1=687523&r2=687524&view=diff
==============================================================================
--- velocity/engine/trunk/src/java/org/apache/velocity/runtime/resource/loader/URLResourceLoader.java (original)
+++ velocity/engine/trunk/src/java/org/apache/velocity/runtime/resource/loader/URLResourceLoader.java Wed Aug 20 17:33:34 2008
@@ -41,6 +41,7 @@
 {
     private String[] roots = null;
     protected HashMap templateRoots = null;
+    private int timeout = -1;
 
     /**
      * @see org.apache.velocity.runtime.resource.loader.ResourceLoader#init(org.apache.commons.collections.ExtendedProperties)
@@ -50,7 +51,6 @@
         log.trace("URLResourceLoader : initialization starting.");
 
         roots = configuration.getStringArray("root");
-
         if (log.isDebugEnabled())
         {
             for (int i=0; i < roots.length; i++)
@@ -59,6 +59,12 @@
             }
         }
 
+        timeout = configuration.getInt("timeout", -1);
+        if (timeout > 0)
+        {
+            log.debug("URLResourceLoader : timeout set to "+timeout);
+        }
+
         // init the template paths map
         templateRoots = new HashMap();
 
@@ -89,7 +95,13 @@
             try
             {
                 URL u = new URL(roots[i] + name);
-                inputStream = u.openStream();
+                URLConnection conn = u.openConnection();
+                if (timeout > 0)
+                {
+                    conn.setConnectTimeout(10000);
+                    conn.setReadTimeout(10000);
+                }
+                inputStream = conn.getInputStream();
 
                 if (inputStream != null)
                 {
@@ -166,6 +178,11 @@
             // get a connection to the URL
             URL u = new URL(root + name);
             URLConnection conn = u.openConnection();
+            if (timeout > 0)
+            {
+                conn.setConnectTimeout(timeout);
+                conn.setReadTimeout(timeout);
+            }
             return conn.getLastModified();
         }
         catch (IOException ioe)