throw new PluginInstantiationException("Cannot load plugin class!",e);
throw new PluginInstantiationException("Cannot load plugin class: " + e.toString(), e);
    public static Object getNamedPlugin(Class intfc, String name)         throws PluginInstantiationException    {        try        {            String iname = intfc.getName();            configureNamedPlugin(iname);            String key = iname + SEP + name;            String cname = (String)namedPluginClasses.get(key);            if (cname == null)                log.warn("Cannot find named plugin for interface="+iname+", name=\""+name+"\"");            else            {                Class pluginClass = Class.forName(cname);                if (cacheMe(pluginClass))                {                    String nkey = pluginClass.getName() + SEP + name;                    Object cached = namedInstanceCache.get(nkey);                    if (cached == null)                    {                        cached = pluginClass.newInstance();                        if (cached instanceof SelfNamedPlugin)                            ((SelfNamedPlugin)cached).setPluginInstanceName(name);                        namedInstanceCache.put(nkey, cached);                    }                    return cached;                }                else                {                    Object result = pluginClass.newInstance();                    if (result instanceof SelfNamedPlugin)                        ((SelfNamedPlugin)result).setPluginInstanceName(name);                }            }        }        catch (ClassNotFoundException e)        {            throw new PluginInstantiationException("Cannot load plugin class!",e);        }        catch (InstantiationException e)        {            throw new PluginInstantiationException(e);        }        catch (IllegalAccessException e)        {            throw new PluginInstantiationException(e);        }        return null;    }