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; } /**