prevent exception when no default timeout is specified
[jalview.git] / src / jalview / bin / Cache.java
index bbb4909..0744cd9 100755 (executable)
@@ -25,16 +25,71 @@ import org.apache.log4j.*;
 
 /**
  * Stores and retrieves Jalview Application Properties
+ * Lists and fields within list entries are separated by '|' symbols unless otherwise stated
+ * (|) clauses are alternative values for a tag.
  * <br><br>Current properties include:
+ * <ul>
  * <br>logs.Axis.Level - one of the stringified Levels for log4j controlling the logging level for axis (used for web services)
- * <br>logs.Castor.Level - one of the stringified Levels for log4j controlling the logging level for castor (used for serialization)
- * <br>logs.Jalview.Level - Cache.log stringified level.
- * <br>DISCOVERY_START - Boolean - controls if discovery services are queried on startup
- * <br>DISCOVERY_URLS - comma separated list of Discovery Service endpoints.
- * <br>SCREEN_WIDTH,SCREEN_HEIGHT,SCREEN_Y=285,SCREEN_X=371,SHOW_FULLSCREEN
- * FONT_NAME,FONT_SIZE,FONT_STYLE,GAP_SYMBOL,LAST_DIRECTORY,USER_DEFINED_COLOUR
- * SHOW_FULL_ID,SHOW_IDENTITY,SHOW_QUALITY,SHOW_ANNOTATIONS,SHOW_CONSERVATION,
- * DEFAULT_COLOUR,DEFAULT_FILE_FORMAT,STARTUP_FILE,SHOW_STARTUP_FILE
+ * <br>
+ * </li><li>logs.Castor.Level - one of the stringified Levels for log4j controlling the logging level for castor (used for serialization)
+ * <br>
+ * </li><li>logs.Jalview.Level - Cache.log stringified level.
+ * <br>
+ * </li><li>DISCOVERY_START - Boolean - controls if discovery services are queried on startup
+ * </li><li>DISCOVERY_URLS - comma separated list of Discovery Service endpoints.
+ * </li><li>SCREEN_WIDTH
+ * </li><li>SCREEN_HEIGHT
+ * </li><li>SCREEN_Y=285
+ * </li><li>SCREEN_X=371
+ * </li><li>SHOW_FULLSCREEN boolean
+ * </li><li>FONT_NAME java font name for alignment text display
+ * </li><li>FONT_SIZE size of displayed alignment text
+ * </li><li>FONT_STYLE style of font displayed (sequence labels are always italic)
+ * </li><li>GAP_SYMBOL character to treat as gap symbol (usually -,.,' ')
+ * </li><li>LAST_DIRECTORY last directory for browsing alignment
+ * </li><li>USER_DEFINED_COLOURS list of user defined colour scheme files
+ * </li><li>SHOW_FULL_ID show id with '/start-end' numbers appended
+ * </li><li>SHOW_IDENTITY show percentage identity annotation
+ * </li><li>SHOW_QUALITY show alignment quality annotation
+ * </li><li>SHOW_ANNOTATIONS show alignment annotation rows
+ * </li><li>SHOW_CONSERVATION show alignment conservation annotation
+ * </li><li>CENTRE_COLUMN_LABELS centre the labels at each column in a displayed annotation row 
+ * </li><li>DEFAULT_COLOUR default colour scheme to apply for a new alignment
+ * </li><li>DEFAULT_FILE_FORMAT file format used to save 
+ * </li><li>STARTUP_FILE file loaded on startup (may be a fully qualified url)
+ * </li><li>SHOW_STARTUP_FILE flag to control loading of startup file
+ * </li><li>VERSION the version of the jalview build
+ * </li><li>BUILD_DATE date of this build
+ * </li><li>LATEST_VERSION the latest jalview version advertised on the www.jalview.org
+ * </li><li>PIR_MODELLER boolean indicating if PIR files are written with MODELLER descriptions
+ * </li><li>(FASTA,MSF,PILEUP,CLUSTAL,BLC,PIR,PFAM)_JVSUFFIX boolean for adding jv suffix to file
+ * </li><li>RECENT_URL list of recently retrieved URLs
+ * </li><li>RECENT_FILE list of recently opened files
+ * </li><li>USE_PROXY flag for whether a http proxy is to be used
+ * </li><li>PROXY_SERVER the proxy
+ * </li><li>PROXY_PORT
+ * </li><li>NOQUESTIONNAIRES true to prevent jalview from checking the questionnaire service
+ * </li><li>QUESTIONNAIRE last questionnaire:responder id string from questionnaire service
+ * </li><li>DAS_LOCAL_SOURCE list of local das sources
+ * </li><li>SHOW_OVERVIEW boolean for overview window display
+ * </li><li>ANTI_ALIAS boolean for smooth fonts
+ * </li><li>RIGHT_ALIGN_IDS boolean
+ * </li><li>AUTO_CALC_CONSENSUS boolean for automatic recalculation of consensus
+ * </li><li>PAD_GAPS boolean
+ * </li><li>ID_ITALICS boolean 
+ * </li><li>SHOW_JV_SUFFIX
+ * </li><li>WRAP_ALIGNMENT
+ * </li><li>EPS_RENDERING (Prompt each time|Lineart|Text) default for EPS rendering style check
+ * </li><li>SORT_ALIGNMENT (No sort|Id|Pairwise Identity)
+ * </li><li>SEQUENCE_LINKS list of name|URL pairs for opening a url with $SEQUENCE_ID$
+ * </li><li>DAS_REGISTRY_URL the registry to query
+ * </li><li>DEFAULT_BROWSER for unix
+ * </li><li>DAS_ACTIVE_SOURCE list of active sources
+ * </li><li>SHOW_MEMUSAGE boolean show memory usage and warning indicator on desktop (false) 
+ * </li><li> 
+ * </li>
+ * 
+ * </ul>
 
  * @author $author$
  * @version $Revision$
@@ -48,11 +103,12 @@ public class Cache
   /**
    * property giving log4j level for AXIS loggers
    */
-  public static final String AXISLOGLEVEL = "logs.Castor.level";
+  public static final String AXISLOGLEVEL = "logs.Axis.level";
   /**
    * property giving log4j level for Jalview Log
    */
   public static final String JALVIEWLOGLEVEL = "logs.Jalview.level";
+  public static final String DAS_LOCAL_SOURCE = "DAS_LOCAL_SOURCE";
 
   /**
    * Initialises the Jalview Application Log
@@ -84,6 +140,9 @@ public class Cache
       lcastor = Logger.getLogger("org.exolab.castor.xml");
       lcastor.setLevel(Level.toLevel(Cache.getDefault("logs.Castor.Level",
               Level.INFO.toString())));
+      //lcastor = Logger.getLogger("org.exolab.castor.xml.Marshaller");
+      //lcastor.setLevel(Level.toLevel(Cache.getDefault("logs.Castor.Level",
+      //        Level.INFO.toString())));
       jalview.bin.Cache.log.setLevel(Level.toLevel(Cache.getDefault(
           "logs.Jalview.level",
           Level.INFO.toString())));
@@ -179,9 +238,16 @@ public class Cache
       {
         public void run()
         {
+          String orgtimeout = System.getProperty("sun.net.client.defaultConnectTimeout");
+          if (orgtimeout==null)
+          {
+            orgtimeout="30";
+            System.out.println("# INFO: Setting default net timeout to "+orgtimeout+" seconds.");
+          }
           String jnlpVersion = null;
           try
           {
+            System.setProperty("sun.net.client.defaultConnectTimeout", "5000");
             java.net.URL url = new java.net.URL(
                 "http://www.jalview.org/webstart/jalview.jnlp");
             BufferedReader in = new BufferedReader(new InputStreamReader(url.
@@ -202,9 +268,11 @@ public class Cache
           }
           catch (Exception ex)
           {
+            System.out.println("Non-fatal exceptions when checking version at www.jalview.org :");
             System.out.println(ex);
             jnlpVersion = getProperty("VERSION");
           }
+          System.setProperty("sun.net.client.defaultConnectTimeout", orgtimeout);
 
           setProperty("LATEST_VERSION", jnlpVersion);
         }