From a9ee6f7b979f1225340b53ccfaa4e68934acfe39 Mon Sep 17 00:00:00 2001
From: felmer <felmer>
Date: Tue, 26 Jan 2010 15:37:44 +0000
Subject: [PATCH] SE-191 throw useful exception if plugin not found

SVN: 14461
---
 .../server/plugins/tasks/PluginTaskProvider.java   | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

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 59cca68c18b..28537f04896 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;
+    }
 }
+
-- 
GitLab