On Wed, Sep 28, 2016 at 10:18 AM, Remko Popma <remko.po...@gmail.com> wrote:
> While I agree with you on the principle that catching Throwable is rarely > a good idea, I argue that this is one of the exceptions to the rule: > > We want to unregister a LoggerContext, but if this fails we want to > continue since failing to unregister a JMX MBean should not prevent Log4j > from working. > We want to capture and ignore any error here, including unanticipated > ones. > Why not narrow it down and catch LinkageError? I do not see how catching OutOfMemoryError or any VirtualMachineError is a good idea here. Gary > Sent from my iPhone > > On 29 Sep 2016, at 2:08, Gary Gregory <garydgreg...@gmail.com> wrote: > > -1: It's rarely a good idea to catch Throwable. I doubt you want to catch > OutOfMemoryError for example. Just say what you want to catch in a > mutli-catch. In this case, catch NoClassDefFoundError and Exception. > > In fact, since we need to deal with Android and Google App Engine > restrictions in a few places, we should document this someplace and try to > provide some common way to deal with this. > > Gary > > ---------- Forwarded message ---------- > From: <rpo...@apache.org> > Date: Wed, Sep 28, 2016 at 9:23 AM > Subject: logging-log4j2 git commit: LOG4J2-1506 patch by Johannes Schleger > to catch Throwable instead of Exception > To: comm...@logging.apache.org > > > Repository: logging-log4j2 > Updated Branches: > refs/heads/master 404d47502 -> 18c1f9f86 > > > LOG4J2-1506 patch by Johannes Schleger to catch Throwable instead of > Exception > > > Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo > Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit > /18c1f9f8 > Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/18c1f9f8 > Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/18c1f9f8 > > Branch: refs/heads/master > Commit: 18c1f9f8635349d84a7a57aaaaae41a1d3b72f92 > Parents: 404d475 > Author: rpopma <rpo...@apache.org> > Authored: Thu Sep 29 01:23:39 2016 +0900 > Committer: rpopma <rpo...@apache.org> > Committed: Thu Sep 29 01:23:39 2016 +0900 > > ---------------------------------------------------------------------- > .../main/java/org/apache/logging/log4j/core/LoggerContext.java | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > ---------------------------------------------------------------------- > > > http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/1 > 8c1f9f8/log4j-core/src/main/java/org/apache/logging/log4j/co > re/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/Log > gerContext.java > index 1f99941..104a921 100644 > --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/Log > gerContext.java > +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/Log > gerContext.java > @@ -315,8 +315,8 @@ public class LoggerContext extends AbstractLifeCycle > this.setStopping(); > try { > Server.unregisterLoggerContext(getName()); // > LOG4J2-406, LOG4J2-500 > - } catch (final Exception ex) { > - LOGGER.error("Unable to unregister MBeans", ex); > + } catch (final Throwable t) { > + LOGGER.error("Unable to unregister MBeans", t); > } > if (shutdownCallback != null) { > shutdownCallback.cancel(); > > > > > -- > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org > Java Persistence with Hibernate, Second Edition > <http://www.manning.com/bauer3/> > JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> > Spring Batch in Action <http://www.manning.com/templier/> > Blog: http://garygregory.wordpress.com > Home: http://garygregory.com/ > Tweet! http://twitter.com/GaryGregory > > -- E-Mail: garydgreg...@gmail.com | ggreg...@apache.org Java Persistence with Hibernate, Second Edition <http://www.manning.com/bauer3/> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> Spring Batch in Action <http://www.manning.com/templier/> Blog: http://garygregory.wordpress.com Home: http://garygregory.com/ Tweet! http://twitter.com/GaryGregory