Print

Print


Author: [log in to unmask]
Date: Fri Jan 23 18:36:55 2015
New Revision: 1982

Log:
Changed comments and other minor updates.

Modified:
    java/trunk/conditions/src/main/java/org/hps/conditions/database/DatabaseConditionsManager.java

Modified: java/trunk/conditions/src/main/java/org/hps/conditions/database/DatabaseConditionsManager.java
 =============================================================================
--- java/trunk/conditions/src/main/java/org/hps/conditions/database/DatabaseConditionsManager.java	(original)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/database/DatabaseConditionsManager.java	Fri Jan 23 18:36:55 2015
@@ -115,8 +115,8 @@
     protected boolean cacheAllConditions = false;
     protected boolean isTestRun = false;
     
-    // Default login timeout of 5 seconds.
     static {
+        // Default login timeout of 5 seconds.
         DriverManager.setLoginTimeout(5);
     }
     
@@ -174,7 +174,7 @@
             }
             
             if (!loggedConnectionParameters) {
-                // Print out detailed info to the log on first connection.
+                // Print out detailed info to the log on first connection within the job.
                 logger.info("opening connection to " + connectionParameters.getConnectionString());
                 logger.info("host " + connectionParameters.getHostname());
                 logger.info("port " + connectionParameters.getPort());
@@ -327,7 +327,10 @@
             } else if (runNumber > TEST_RUN_MAX_RUN) {
                 // Run numbers greater than max of Test Run assumed to be Eng Run (for now!).
                 setXmlConfig(DatabaseConditionsManager.ENGRUN_CONFIG);
-            } 
+            } else if (runNumber == 0) {
+                // Use the default configuration because the run number is basically meaningless.
+                setXmlConfig(DatabaseConditionsManager.DEFAULT_CONFIG);
+            }
         }
 
         registerConverters();
@@ -338,7 +341,7 @@
         // Open the database connection.
         openConnection();
         
-        // Call the super class's setDetector method to construct the detector object.
+        // Call the super class's setDetector method to construct the detector object and activate listeners.
         super.setDetector(detectorName, runNumber);
                         
         // Should all conditions sets be cached?
@@ -366,7 +369,7 @@
     }
 
     /**
-     * 
+     * Register the conditions converters with the manager.
      */
     private void registerConverters() {
         if (svtConverter != null) {
@@ -701,7 +704,11 @@
         TableMetaData tableMetaData = collection.getTableMetaData();
         if (tableMetaData == null) {            
             tableMetaData = tableRegistry.findByCollectionType(collection.getClass()); 
-            logger.fine("using default table meta data with table " + tableMetaData.getTableName() + " for collection of type " + collection.getClass().getCanonicalName());            
+            if (tableMetaData == null) {
+                // This is a fatal error because no meta data is available for the type.
+                throw new ConditionsObjectException("Failed to find meta data for type: " + collection.getClass());
+            }
+            logger.fine("using default table meta data " + tableMetaData.getTableName() + " for type " + collection.getClass());            
         }
         if (collection.getCollectionId() == -1) {
             try {
@@ -710,14 +717,12 @@
                 throw new RuntimeException(e);
             }
         }
+        // FIXME: If collection ID is already set this should be an error!
+        
         logger.info("inserting collection with ID " + collection.getCollectionId() 
                 + " and key " + tableMetaData.getKey() + " into table " + tableMetaData.getTableName());
 
-        boolean openedConnection = false;
-        if (!isConnected()) {
-            openConnection();
-            openedConnection = true;
-        }
+        boolean openedConnection = openConnection();
         
         PreparedStatement preparedStatement = null;
         
@@ -756,7 +761,7 @@
         } catch (Exception e) {
         }
                
-        closeConnection(openedConnection);        
+        closeConnection(openedConnection);
     }
     
     /**
@@ -845,6 +850,7 @@
             } 
         } catch (UnknownHostException e) {
             // This will actually print a warning if the JLAB server is unreachable.
+            // There is always a warning when running outside JLAB, so suppress it for now.
             //logger.log(Level.WARNING, e.getMessage(), e);
         } catch (IOException e) {
             logger.severe(e.getMessage());
@@ -881,7 +887,7 @@
     
     /**
      * Setup the database connection from a file specified by a Java system
-     * property setting. This is possibly overridden by subsequent, direct API calls to
+     * property setting. This could be overridden by subsequent API calls to
      * {@link #setConnectionProperties(File)} or {@link #setConnectionResource(String)}.
      */
     private void setupConnectionFromSystemProperty() {