From 11bcb9f59f6fb5873ea9870d8d9be0285eb643f2 Mon Sep 17 00:00:00 2001 From: kohsuke Date: Mon, 25 Oct 2010 18:59:35 +0000 Subject: [PATCH] Fixed a bug where non-existent optional dependencies can result in a cascading load failure. git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@36213 71c3de6d-444a-0410-be80-ed276b4c234a --- core/src/main/java/hudson/ExtensionFinder.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/src/main/java/hudson/ExtensionFinder.java b/core/src/main/java/hudson/ExtensionFinder.java index cc73ed2b5a..948db8dfc2 100644 --- a/core/src/main/java/hudson/ExtensionFinder.java +++ b/core/src/main/java/hudson/ExtensionFinder.java @@ -157,6 +157,11 @@ public abstract class ExtensionFinder implements ExtensionPoint { if(instance!=null) result.add(new ExtensionComponent(type.cast(instance),item.annotation())); } + } catch (LinkageError e) { + // sometimes the instantiation fails in an indirect classloading failure, + // which results in a LinkageError + LOGGER.log(item.annotation().optional() ? Level.FINE : Level.WARNING, + "Failed to load "+item.className(), e); } catch (InstantiationException e) { LOGGER.log(item.annotation().optional() ? Level.FINE : Level.WARNING, "Failed to load "+item.className(), e);