diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/PluginTaskProvider.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/PluginTaskProvider.java index 59cca68c18b9197576e2d2ed2cc9773a808acff8..28537f048966ba11376462d0a468d7355d4d02e1 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/PluginTaskProvider.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/PluginTaskProvider.java @@ -50,12 +50,12 @@ public class PluginTaskProvider<P> /** creates an instance of the plugin with the given key */ public P createPluginInstance(String pluginKey, File storeRoot) { - return factories.tryGet(pluginKey).createPluginInstance(storeRoot); + return getFactory(pluginKey).createPluginInstance(storeRoot); } public DatastoreServiceDescription getPluginDescription(String pluginKey) { - return factories.tryGet(pluginKey).getPluginDescription(); + return getFactory(pluginKey).getPluginDescription(); } public List<DatastoreServiceDescription> getPluginDescriptions() @@ -87,4 +87,14 @@ public class PluginTaskProvider<P> } } + private AbstractPluginTaskFactory<P> getFactory(String pluginKey) + { + AbstractPluginTaskFactory<P> factory = factories.tryGet(pluginKey); + if (factory == null) + { + throw new IllegalArgumentException("No plugin registered for key '" + pluginKey + "'."); + } + return factory; + } } +