You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2014/12/30 14:24:11 UTC
karaf git commit: [KARAF-3346] Fix JMX exception at shutdown
Repository: karaf
Updated Branches:
refs/heads/karaf-2.x b43d91444 -> dbb390af9
[KARAF-3346] Fix JMX exception at shutdown
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/dbb390af
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/dbb390af
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/dbb390af
Branch: refs/heads/karaf-2.x
Commit: dbb390af9fe6929e552698556b381edd68b17147
Parents: b43d914
Author: Jean-Baptiste Onofré <jb...@apache.org>
Authored: Tue Dec 30 14:23:36 2014 +0100
Committer: Jean-Baptiste Onofré <jb...@apache.org>
Committed: Tue Dec 30 14:23:36 2014 +0100
----------------------------------------------------------------------
.../management/boot/KarafMBeanServerBuilder.java | 14 ++++++++++++++
1 file changed, 14 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/dbb390af/management/boot/src/main/java/org/apache/karaf/management/boot/KarafMBeanServerBuilder.java
----------------------------------------------------------------------
diff --git a/management/boot/src/main/java/org/apache/karaf/management/boot/KarafMBeanServerBuilder.java b/management/boot/src/main/java/org/apache/karaf/management/boot/KarafMBeanServerBuilder.java
index ad84235..9c5e014 100644
--- a/management/boot/src/main/java/org/apache/karaf/management/boot/KarafMBeanServerBuilder.java
+++ b/management/boot/src/main/java/org/apache/karaf/management/boot/KarafMBeanServerBuilder.java
@@ -62,6 +62,20 @@ public class KarafMBeanServerBuilder extends MBeanServerBuilder {
}
guard.invoke(proxy, method, args);
}
+ if (method.getName().equals("equals")
+ && method.getParameterTypes().length == 1
+ && method.getParameterTypes()[0] == Object.class) {
+ Object target = args[0];
+ if (target != null && Proxy.isProxyClass(target.getClass())) {
+ InvocationHandler handler = Proxy.getInvocationHandler(target);
+ if (handler instanceof MBeanInvocationHandler) {
+ args[0] = ((MBeanInvocationHandler) handler).wrapped;
+ }
+ }
+ } else if (method.getName().equals("finalize") && method.getParameterTypes().length == 0) {
+ // special case finalize, don't route through to delegate because that will get its own call
+ return null;
+ }
try {
return method.invoke(wrapped, args);
} catch (InvocationTargetException ite) {