View Javadoc

1   package org.robsite.extension.rss;
2   
3   /***
4    * Utilities for temporarily setting the HTTP timeout.
5    * 
6    * @author brian_duff@sourceforge.net
7    * @version $Revision: 1.1.1.1 $
8    */
9   public final class HTTPUtil
10  {
11    private static String _oldConnectTimeout = null;
12    private static String _oldReadTimeout = null;
13  
14    /***
15     * This class cannot be instantiated.
16     */
17    private HTTPUtil() {}
18  
19    /***
20     * Set the HTTP timeout to the specified number of milliseconds.
21     * 
22     * @param timeout the timeout to use in milliseconds.
23     */
24    public static void setHTTPTimeout( int milliseconds )
25    {
26      _oldConnectTimeout = 
27        System.getProperty( "sun.net.client.defaultConnectTimeout" );
28      _oldReadTimeout =
29        System.getProperty( "sun.net.client.defaultReadTimeout" );
30    
31      System.setProperty( "sun.net.client.defaultConnectTimeout", 
32        String.valueOf( milliseconds ) );
33      System.setProperty( "sun.net.client.defaultReadTimeout",  
34        String.valueOf( milliseconds ) );
35    }
36    
37    /***
38     * Reset the HTTP timeout to its default value.
39     */
40    public static void resetHTTPTimeout()
41    {
42      if ( _oldConnectTimeout == null )
43      {
44        System.setProperty( "sun.net.client.defaultConnectTimeout", "-1" );
45      }
46      else
47      {  
48        System.setProperty( "sun.net.client.defaultConnectTimeout", 
49          _oldConnectTimeout );
50        _oldConnectTimeout = null;
51      }
52      
53      if ( _oldReadTimeout == null )
54      {
55        System.setProperty( "sun.net.client.defaultReadTimeout", "-1" );
56      }
57      else
58      {
59        System.setProperty( "sun.net.client.defaultReadTimeout",  
60          _oldReadTimeout );
61        _oldReadTimeout = null;
62      }
63    }
64  }