diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/extension/ExtensionLoader.java b/dubbo-common/src/main/java/org/apache/dubbo/common/extension/ExtensionLoader.java index 31f72e669e7..49a7bdbde24 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/common/extension/ExtensionLoader.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/common/extension/ExtensionLoader.java @@ -346,12 +346,8 @@ public boolean hasExtension(String name) { if (name == null || name.length() == 0) { throw new IllegalArgumentException("Extension name == null"); } - try { - this.getExtensionClass(name); - return true; - } catch (Throwable t) { - return false; - } + Class c = this.getExtensionClass(name); + return c != null; } public Set getSupportedExtensions() { @@ -565,11 +561,7 @@ private Class getExtensionClass(String name) { if (name == null) { throw new IllegalArgumentException("Extension name == null"); } - Class clazz = getExtensionClasses().get(name); - if (clazz == null) { - throw new IllegalStateException("No such extension \"" + name + "\" for " + type.getName() + "!"); - } - return clazz; + return getExtensionClasses().get(name); } private Map> getExtensionClasses() {