[LOG4J2-1506] Unregister JMX ignores log4j2.disable.jmx property. For JMX and GAE, catch (LinkageError and Exception) instead of Throwable.
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/baea9914 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/baea9914 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/baea9914 Branch: refs/heads/LOG4J2-1390 Commit: baea9914fa5aa32706e62bb52109df5837a9bcbd Parents: 83cd00e Author: Gary Gregory <[email protected]> Authored: Wed Sep 28 16:41:12 2016 -0700 Committer: Gary Gregory <[email protected]> Committed: Wed Sep 28 16:41:12 2016 -0700 ---------------------------------------------------------------------- .../java/org/apache/logging/log4j/core/LoggerContext.java | 9 +++++---- .../org/apache/logging/log4j/core/lookup/Interpolator.java | 8 ++++---- .../org/apache/logging/log4j/core/util/ReflectionUtil.java | 2 +- 3 files changed, 10 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/baea9914/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java index 104a921..7e13963 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java @@ -315,8 +315,9 @@ public class LoggerContext extends AbstractLifeCycle this.setStopping(); try { Server.unregisterLoggerContext(getName()); // LOG4J2-406, LOG4J2-500 - } catch (final Throwable t) { - LOGGER.error("Unable to unregister MBeans", t); + } catch (final LinkageError | Exception e) { + // LOG4J2-1506 Hello Android, GAE + LOGGER.error("Unable to unregister MBeans", e); } if (shutdownCallback != null) { shutdownCallback.cancel(); @@ -538,9 +539,9 @@ public class LoggerContext extends AbstractLifeCycle try { Server.reregisterMBeansAfterReconfigure(); - } catch (final Throwable t) { + } catch (final LinkageError | Exception e) { // LOG4J2-716: Android has no java.lang.management - LOGGER.error("Could not reconfigure JMX", t); + LOGGER.error("Could not reconfigure JMX", e); } // AsyncLoggers update their nanoClock when the configuration changes Log4jLogEvent.setNanoClock(configuration.getNanoClock()); http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/baea9914/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/Interpolator.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/Interpolator.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/Interpolator.java index b480fa0..ba50ca7 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/Interpolator.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/Interpolator.java @@ -100,8 +100,8 @@ public class Interpolator extends AbstractConfigurationAwareLookup { // [LOG4J2-703] We might be on Android lookups.put(LOOKUP_KEY_JNDI, Loader.newCheckedInstanceOf("org.apache.logging.log4j.core.lookup.JndiLookup", StrLookup.class)); - } catch (final Throwable t) { - handleError(LOOKUP_KEY_JNDI, t); + } catch (final LinkageError | Exception e) { + handleError(LOOKUP_KEY_JNDI, e); } // JMX input args try { @@ -109,8 +109,8 @@ public class Interpolator extends AbstractConfigurationAwareLookup { lookups.put(LOOKUP_KEY_JVMRUNARGS, Loader.newCheckedInstanceOf("org.apache.logging.log4j.core.lookup.JmxRuntimeInputArgumentsLookup", StrLookup.class)); - } catch (final Throwable t) { - handleError(LOOKUP_KEY_JVMRUNARGS, t); + } catch (final LinkageError | Exception e) { + handleError(LOOKUP_KEY_JVMRUNARGS, e); } lookups.put("date", new DateLookup()); lookups.put("ctx", new ContextMapLookup()); http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/baea9914/log4j-core/src/main/java/org/apache/logging/log4j/core/util/ReflectionUtil.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/ReflectionUtil.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/ReflectionUtil.java index 86f6c87..ffee439 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/ReflectionUtil.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/ReflectionUtil.java @@ -186,7 +186,7 @@ public final class ReflectionUtil { final Constructor<T> constructor = getDefaultConstructor(clazz); try { return constructor.newInstance(); - } catch (final NoClassDefFoundError | InstantiationException e) { + } catch (final LinkageError | InstantiationException e) { // LOG4J2-1051 // On platforms like Google App Engine and Android, some JRE classes are not supported: JMX, JNDI, etc. throw new IllegalArgumentException(e);
