From: Michael Vorburger Date: Thu, 16 Mar 2017 15:47:37 +0000 (+0100) Subject: Bug 6564: Fix UndeclaredThrowableException from Proxy X-Git-Tag: release/carbon~162 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=ac47367a705737a325c79947af1d00da66a6b0c5 Bug 6564: Fix UndeclaredThrowableException from Proxy from LegacyEntityOwnershipServiceProviderModule also see http://stackoverflow.com/questions/3715298/dynamic-proxy-and-checked-exceptions and e.g. https://amitstechblog.wordpress.com/2011/07/24/java-proxies-and-undeclaredthrowableexception/ Change-Id: I64d0789d1c136796610c4939337185173f90cd0a Signed-off-by: Michael Vorburger --- diff --git a/opendaylight/md-sal/sal-dom-config/src/main/java/org/opendaylight/controller/config/yang/config/legacy_entity_ownership_service_provider/LegacyEntityOwnershipServiceProviderModule.java b/opendaylight/md-sal/sal-dom-config/src/main/java/org/opendaylight/controller/config/yang/config/legacy_entity_ownership_service_provider/LegacyEntityOwnershipServiceProviderModule.java index e2585ac97b..5fe9ff99de 100644 --- a/opendaylight/md-sal/sal-dom-config/src/main/java/org/opendaylight/controller/config/yang/config/legacy_entity_ownership_service_provider/LegacyEntityOwnershipServiceProviderModule.java +++ b/opendaylight/md-sal/sal-dom-config/src/main/java/org/opendaylight/controller/config/yang/config/legacy_entity_ownership_service_provider/LegacyEntityOwnershipServiceProviderModule.java @@ -9,6 +9,7 @@ package org.opendaylight.controller.config.yang.config.legacy_entity_ownership_s import com.google.common.reflect.AbstractInvocationHandler; import com.google.common.reflect.Reflection; +import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import org.opendaylight.controller.config.api.DependencyResolver; import org.opendaylight.controller.config.api.ModuleIdentifier; @@ -50,7 +51,14 @@ public class LegacyEntityOwnershipServiceProviderModule extends AbstractLegacyEn tracker.close(); return null; } else { - return method.invoke(service, args); + try { + return method.invoke(service, args); + } catch (InvocationTargetException e) { + // https://bugs.opendaylight.org/show_bug.cgi?id=6564 + // http://stackoverflow.com/a/10719613/421602 + // https://amitstechblog.wordpress.com/2011/07/24/java-proxies-and-undeclaredthrowableexception/ + throw e.getCause(); + } } } });