Print

Print


Author: [log in to unmask]
Date: Sat Mar  7 13:27:02 2015
New Revision: 2341

Log:
Make SvtDetectorSetup fail more gracefully if there is no tracker in the geometry.  The setup code will just be skipped.  (Was causing null pointer exception in certain detector models without an SVT.)

Modified:
    java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtDetectorSetup.java

Modified: java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtDetectorSetup.java
 =============================================================================
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtDetectorSetup.java	(original)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtDetectorSetup.java	Sat Mar  7 13:27:02 2015
@@ -57,12 +57,17 @@
         if (enabled) {
             DatabaseConditionsManager manager = (DatabaseConditionsManager) event.getConditionsManager();
             Subdetector subdetector = manager.getDetectorObject().getSubdetector(svtName);
-            if (manager.isTestRun()) {
-                TestRunSvtConditions svtConditions = manager.getCachedConditions(TestRunSvtConditions.class, "test_run_svt_conditions").getCachedData();
-                loadTestRun(subdetector, svtConditions);
+            if (subdetector != null) {
+                if (manager.isTestRun()) {
+                    TestRunSvtConditions svtConditions = manager.getCachedConditions(TestRunSvtConditions.class, "test_run_svt_conditions").getCachedData();
+                    loadTestRun(subdetector, svtConditions);
+                } else {
+                    SvtConditions svtConditions = manager.getCachedConditions(SvtConditions.class, "svt_conditions").getCachedData();
+                    loadDefault(subdetector, svtConditions);
+                }
             } else {
-                SvtConditions svtConditions = manager.getCachedConditions(SvtConditions.class, "svt_conditions").getCachedData();
-                loadDefault(subdetector, svtConditions);
+                logger.warning("no SVT detector was found so SvtDetectorSetup was NOT activated");
+                enabled = false;
             }
         } else {
             logger.config("disabled");