ObjectProducer () { try { if (providerClass != null) { ConfigurableProvider provider = instantiateConfigurableProvider(); return provider == null ? new ObjectProducer() : new ProviderProducer(provider); } else if (instanceClass != null) { return new ClassProducer(componentManager, instanceClass, pluginDescriptor); } else if (implementationClass != null) { return new ClassProducer(componentManager, implementationClass, pluginDescriptor); } else { throw new PluginException("configurable class name is not set", pluginDescriptor == null ? null : pluginDescriptor.getPluginId()); } } catch (ProcessCanceledException e) { throw e; } catch (AssertionError | Exception | LinkageError error) { LOG.error(new PluginException(error, pluginDescriptor == null ? null : pluginDescriptor.getPluginId())); } return new ObjectProducer(); }