diff --git a/Framework/API/src/FileLoaderRegistry.cpp b/Framework/API/src/FileLoaderRegistry.cpp index ffdd6ceb608bd828d225915d078fee4bff0a46b8..e667c6b5a69f650d3b9b238cd80a5a6131845841 100644 --- a/Framework/API/src/FileLoaderRegistry.cpp +++ b/Framework/API/src/FileLoaderRegistry.cpp @@ -6,6 +6,7 @@ // SPDX - License - Identifier: GPL - 3.0 + #include "MantidAPI/FileLoaderRegistry.h" #include "MantidAPI/IFileLoader.h" +#include "MantidKernel/NexusHDF5Descriptor.h" #include <Poco/File.h> @@ -104,7 +105,7 @@ const boost::shared_ptr<IAlgorithm> FileLoaderRegistryImpl::chooseLoader(const std::string &filename) const { using Kernel::FileDescriptor; using Kernel::NexusDescriptor; - + using Kernel::NexusHDF5Descriptor; m_log.debug() << "Trying to find loader for '" << filename << "'\n"; IAlgorithm_sptr bestLoader; @@ -112,8 +113,14 @@ FileLoaderRegistryImpl::chooseLoader(const std::string &filename) const { m_log.debug() << filename << " looks like a Nexus file. Checking registered Nexus loaders\n"; - bestLoader = searchForLoader<NexusDescriptor, IFileLoader<NexusDescriptor>>( - filename, m_names[Nexus], m_log); + bestLoader = + searchForLoader<NexusHDF5Descriptor, IFileLoader<NexusHDF5Descriptor>>( + filename, m_names[Nexus], m_log); + if (!bestLoader) { + bestLoader = + searchForLoader<NexusDescriptor, IFileLoader<NexusDescriptor>>( + filename, m_names[Nexus], m_log); + } } else { m_log.debug() << "Checking registered non-HDF loaders\n"; bestLoader = searchForLoader<FileDescriptor, IFileLoader<FileDescriptor>>(