Print

Print


Author: [log in to unmask]
Date: Fri Mar 13 09:02:35 2015
New Revision: 2428

Log:
Override existing conditions manager if necessary when getting manager instance.

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 Mar 13 09:02:35 2015
@@ -133,6 +133,33 @@
             registerConditionsConverter(converter);
         }
         addConditionsListener(svtSetup);
+    }    
+       
+    /**
+     * Get the static instance of this class.
+     * @return The static instance of the manager.
+     */
+    public static DatabaseConditionsManager getInstance() {
+
+        logger.finer("getting conditions manager instance");
+        
+        // Is there no manager installed yet?
+        if (!ConditionsManager.isSetup() || !(ConditionsManager.defaultInstance() instanceof DatabaseConditionsManager)) {
+            logger.finer("creating new instance");
+            // Create a new instance if necessary, which will install it globally as the default.
+            new DatabaseConditionsManager();
+        }
+
+        // Get the instance back from the default conditions system and check that the type is correct now.
+        ConditionsManager manager = ConditionsManager.defaultInstance();
+        if (!(manager instanceof DatabaseConditionsManager)) {
+            logger.severe("default conditions manager has wrong type");
+            throw new RuntimeException("Default conditions manager has the wrong type: " + ConditionsManager.defaultInstance().getClass().getName());
+        }
+        
+        logger.finer("returning conditions manager instance");
+
+        return (DatabaseConditionsManager) manager;
     }
     
     /**
@@ -144,31 +171,6 @@
         logger.setLevel(level);
         logger.getHandlers()[0].setLevel(level);
         svtSetup.setLogLevel(level);
-    }
-    
-    /**
-     * Get the static instance of this class.
-     * @return The static instance of the manager.
-     */
-    public static DatabaseConditionsManager getInstance() {
-
-        logger.fine("setting up new conditions manager instance");
-        
-        // Is there no manager installed yet?
-        if (!ConditionsManager.isSetup()) {
-            // Create a new instance if necessary.
-            new DatabaseConditionsManager();
-        }
-
-        // Get the instance back from the default conditions system and check that the type is correct.
-        ConditionsManager manager = ConditionsManager.defaultInstance();
-        if (!(manager instanceof DatabaseConditionsManager)) {
-            throw new RuntimeException("The default ConditionsManager has the wrong type.");
-        }
-        
-        logger.fine("instance initialized succesfully");
-
-        return (DatabaseConditionsManager) manager;
     }
     
     /**