diff --git a/Framework/DataHandling/src/UpdateInstrumentFromFile.cpp b/Framework/DataHandling/src/UpdateInstrumentFromFile.cpp index 1a160d0f626c744d00179179dcc18bf25f7a5ee4..d978320d63df2ee84087813b4af4894795511f4c 100644 --- a/Framework/DataHandling/src/UpdateInstrumentFromFile.cpp +++ b/Framework/DataHandling/src/UpdateInstrumentFromFile.cpp @@ -99,11 +99,16 @@ void UpdateInstrumentFromFile::exec() { if (NexusDescriptor::isReadable(filename)) { LoadISISNexus2 isisNexus; LoadEventNexus eventNexus; - boost::scoped_ptr<Kernel::NexusDescriptor> descriptor( - new Kernel::NexusDescriptor(filename)); + + // we open and close the HDF5 file. + // there is an issue with how HDF5 files are opened (only one at a time) + // swap the order of descriptors boost::scoped_ptr<Kernel::NexusHDF5Descriptor> descriptorNexusHDF5( new Kernel::NexusHDF5Descriptor(filename)); + boost::scoped_ptr<Kernel::NexusDescriptor> descriptor( + new Kernel::NexusDescriptor(filename)); + if (isisNexus.confidence(*descriptor) > 0 || eventNexus.confidence(*descriptorNexusHDF5) > 0) { auto &nxFile = descriptor->data();