logging-log4j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Remko Popma <remko.po...@gmail.com>
Subject Re: svn commit: r1611003 - in /logging/log4j/log4j2/trunk: log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java log4j-core/src/main/java/org/apache/logging/log4j/core/util/Environment.java src/changes/changes.xml
Date Wed, 16 Jul 2014 14:18:13 GMT
Hm... Good point. I will remove the Environment class and put a try/catch
Throwable around the Server.reregisterMBeansAfterReconfigure invocation.


On Wed, Jul 16, 2014 at 11:02 PM, Gary Gregory <garydgregory@gmail.com>
wrote:

> Yeah, big mystery. I'm not sure we should have code like "if !
> isAndroid()..." It might be better to // comment and catch
> errors/exceptions because who know how Android will change.
>
> Gary
>
>
> On Wed, Jul 16, 2014 at 9:58 AM, Remko Popma <remko.popma@gmail.com>
> wrote:
>
>> But beats me why the JNDI stuff would throw a VerifyError and the JMX
>> stuff only a NoClassDefFoundError...
>>
>>
>> On Wed, Jul 16, 2014 at 10:49 PM, Remko Popma <remko.popma@gmail.com>
>> wrote:
>>
>>> I did think about that but if you look at the stack trace it is able to
>>> load the Server class, so I think we're okay:
>>>
>>>     java.lang.NoClassDefFoundError: java.lang.management.ManagementFactory
>>>             at org.apache.logging.log4j.core.jmx.Server.reregisterMBeansAfterReconfigure(Server.java:118)
>>>             at org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:369)
>>>
>>>
>>>
>>>
>>> On Wed, Jul 16, 2014 at 10:41 PM, Gary Gregory <garydgregory@gmail.com>
>>> wrote:
>>>
>>>> I do not think this is going to work. See my fix for the JNDI lookup
>>>> loading.
>>>>
>>>> Because you have a hard reference in the LoggerContext class to our JMX
>>>> Server class, you still have a dependency on JMX. We need to refer to our
>>>> JMX Server class dynamically, using reflection for example.
>>>>
>>>> Gary
>>>>
>>>>
>>>> ---------- Forwarded message ----------
>>>> From: <rpopma@apache.org>
>>>> Date: Wed, Jul 16, 2014 at 9:31 AM
>>>> Subject: svn commit: r1611003 - in /logging/log4j/log4j2/trunk:
>>>> log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java
>>>> log4j-core/src/main/java/org/apache/logging/log4j/core/util/Environment.java
>>>> src/changes/changes.xml
>>>> To: commits@logging.apache.org
>>>>
>>>>
>>>> Author: rpopma
>>>> Date: Wed Jul 16 13:31:07 2014
>>>> New Revision: 1611003
>>>>
>>>> URL: http://svn.apache.org/r1611003
>>>> Log:
>>>> LOG4J2-716: automatically disable log4j JMX when detecting we are
>>>> running on Android
>>>>
>>>> Added:
>>>>
>>>> logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Environment.java
>>>>   (with props)
>>>> Modified:
>>>>
>>>> logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java
>>>>     logging/log4j/log4j2/trunk/src/changes/changes.xml
>>>>
>>>> Modified:
>>>> logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java
>>>> URL:
>>>> http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java?rev=1611003&r1=1611002&r2=1611003&view=diff
>>>>
>>>> ==============================================================================
>>>> ---
>>>> logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java
>>>> (original)
>>>> +++
>>>> logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java
>>>> Wed Jul 16 13:31:07 2014
>>>> @@ -41,6 +41,7 @@ import org.apache.logging.log4j.core.con
>>>>  import org.apache.logging.log4j.core.config.Reconfigurable;
>>>>  import org.apache.logging.log4j.core.jmx.Server;
>>>>  import org.apache.logging.log4j.core.util.Assert;
>>>> +import org.apache.logging.log4j.core.util.Environment;
>>>>  import org.apache.logging.log4j.core.util.NetUtils;
>>>>  import org.apache.logging.log4j.message.MessageFactory;
>>>>  import org.apache.logging.log4j.spi.AbstractLogger;
>>>> @@ -365,10 +366,12 @@ public class LoggerContext extends Abstr
>>>>
>>>>          firePropertyChangeEvent(new PropertyChangeEvent(this,
>>>> PROPERTY_CONFIG, prev, config));
>>>>
>>>> -        try {
>>>> -            Server.reregisterMBeansAfterReconfigure();
>>>> -        } catch (final Exception ex) {
>>>> -            LOGGER.error("Could not reconfigure JMX", ex);
>>>> +        if (!Environment.isAndroid()) { // LOG4J2-716: Android has no
>>>> java.lang.management
>>>> +            try {
>>>> +                Server.reregisterMBeansAfterReconfigure();
>>>> +            } catch (final Exception ex) {
>>>> +                LOGGER.error("Could not reconfigure JMX", ex);
>>>> +            }
>>>>          }
>>>>          return prev;
>>>>      }
>>>>
>>>> Added:
>>>> logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Environment.java
>>>> URL:
>>>> http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Environment.java?rev=1611003&view=auto
>>>>
>>>> ==============================================================================
>>>> ---
>>>> logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Environment.java
>>>> (added)
>>>> +++
>>>> logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Environment.java
>>>> Wed Jul 16 13:31:07 2014
>>>> @@ -0,0 +1,34 @@
>>>> +/*
>>>> + * Licensed to the Apache Software Foundation (ASF) under one or more
>>>> + * contributor license agreements. See the NOTICE file distributed with
>>>> + * this work for additional information regarding copyright ownership.
>>>> + * The ASF licenses this file to You under the Apache license, Version
>>>> 2.0
>>>> + * (the "License"); you may not use this file except in compliance with
>>>> + * the License. You may obtain a copy of the License at
>>>> + *
>>>> + *      http://www.apache.org/licenses/LICENSE-2.0
>>>> + *
>>>> + * Unless required by applicable law or agreed to in writing, software
>>>> + * distributed under the License is distributed on an "AS IS" BASIS,
>>>> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
>>>> implied.
>>>> + * See the license for the specific language governing permissions and
>>>> + * limitations under the license.
>>>> + */
>>>> +
>>>> +package org.apache.logging.log4j.core.util;
>>>> +
>>>> +/**
>>>> + * Runtime environment-related utility methods.
>>>> + */
>>>> +public final class Environment {
>>>> +    private Environment() {
>>>> +    }
>>>> +
>>>> +    /**
>>>> +     * Returns {@code true} if we are running on Android, {@code
>>>> false} otherwise
>>>> +     * @return {@code true} if system property
>>>> "java.specification.vendor" contains "android"
>>>> +     */
>>>> +    public static boolean isAndroid() {
>>>> +        return System.getProperty("java.specification.vendor",
>>>> "x").toLowerCase().contains("android");
>>>> +    }
>>>> +}
>>>>
>>>> Propchange:
>>>> logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Environment.java
>>>>
>>>> ------------------------------------------------------------------------------
>>>>     svn:eol-style = native
>>>>
>>>> Modified: logging/log4j/log4j2/trunk/src/changes/changes.xml
>>>> URL:
>>>> http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/src/changes/changes.xml?rev=1611003&r1=1611002&r2=1611003&view=diff
>>>>
>>>> ==============================================================================
>>>> --- logging/log4j/log4j2/trunk/src/changes/changes.xml (original)
>>>> +++ logging/log4j/log4j2/trunk/src/changes/changes.xml Wed Jul 16
>>>> 13:31:07 2014
>>>> @@ -22,6 +22,9 @@
>>>>    </properties>
>>>>    <body>
>>>>      <release version="?" date="2014-mm-dd" description="?">
>>>> +      <action issue="LOG4J2-716" dev="popmarem" type="fix">
>>>> +        Automatically disable log4j JMX when detecting we are running
>>>> on Android.
>>>> +      </action>
>>>>        <action issue="LOG4J2-657" dev="popmarem" type="fix"
>>>> due-to="Stefan Wehner">
>>>>          Fixed AbstractDatabaseManager to close connection on
>>>> writeInternal error.
>>>>        </action>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> E-Mail: garydgregory@gmail.com | ggregory@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: garydgregory@gmail.com | ggregory@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
>

Mime
View raw message