On Wed, Sep 28, 2016 at 10:23 AM, Gary Gregory <[email protected]>
wrote:

> On Wed, Sep 28, 2016 at 10:18 AM, Remko Popma <[email protected]>
> 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.
>

If no one objects, I make this change...

Gary


>
> Gary
>
>
>> Sent from my iPhone
>>
>> On 29 Sep 2016, at 2:08, Gary Gregory <[email protected]> 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: <[email protected]>
>> 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: [email protected]
>>
>>
>> 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 <[email protected]>
>> Authored: Thu Sep 29 01:23:39 2016 +0900
>> Committer: rpopma <[email protected]>
>> 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: [email protected] | [email protected]
>> 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: [email protected] | [email protected]
> 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: [email protected] | [email protected]
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

Reply via email to