From b9ab94a80c0c5de5587fffe0bfa679075bdb26bf Mon Sep 17 00:00:00 2001 From: Federico Montesino Pouzols <federico.montesino-pouzols@stfc.ac.uk> Date: Mon, 16 Feb 2015 10:42:42 +0000 Subject: [PATCH] fix 1076308, exception and only if proton_log really used, re #10602 --- .../Framework/DataHandling/src/LoadNexusLogs.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Code/Mantid/Framework/DataHandling/src/LoadNexusLogs.cpp b/Code/Mantid/Framework/DataHandling/src/LoadNexusLogs.cpp index 37f2e213141..ebbde7d28c0 100644 --- a/Code/Mantid/Framework/DataHandling/src/LoadNexusLogs.cpp +++ b/Code/Mantid/Framework/DataHandling/src/LoadNexusLogs.cpp @@ -133,9 +133,6 @@ void LoadNexusLogs::exec() { // the code below will allow current SANS2D files to load if (workspace->mutableRun().hasProperty("proton_log")) { std::vector<int> event_frame_number; - Kernel::TimeSeriesProperty<double> *plog = - dynamic_cast<Kernel::TimeSeriesProperty<double> *>( - workspace->mutableRun().getProperty("proton_log")); this->getLogger().notice() << "Using old ISIS proton_log and event_frame_number indirection..." << std::endl; @@ -167,15 +164,19 @@ void LoadNexusLogs::exec() { file.openPath("/" + entry_name); if (!event_frame_number.empty()) // ISIS indirection - see above comments { + Kernel::TimeSeriesProperty<double> *plog = + dynamic_cast<Kernel::TimeSeriesProperty<double> *>( + workspace->mutableRun().getProperty("proton_log")); + if (!plog) + throw std::runtime_error("Could not cast (interpret) proton_log as a time " + "series property. Cannot continue."); Kernel::TimeSeriesProperty<double> *pcharge = new Kernel::TimeSeriesProperty<double>("proton_charge"); std::vector<double> pval; std::vector<Mantid::Kernel::DateAndTime> ptime; pval.reserve(event_frame_number.size()); ptime.reserve(event_frame_number.size()); - std::vector<Mantid::Kernel::DateAndTime> plogt; - if (plog) - plogt = plog->timesAsVector(); + std::vector<Mantid::Kernel::DateAndTime> plogt = plog->timesAsVector(); std::vector<double> plogv = plog->valuesAsVector(); for (size_t i = 0; i < event_frame_number.size(); ++i) { ptime.push_back(plogt[event_frame_number[i]]); -- GitLab