Sure, pick one.

Gary

On Tue, Apr 12, 2016 at 12:01 PM, Matt Sicker <[email protected]> wrote:

> It would be nice to standardize on a single line ending format at some
> point, but it would be such a huge commit.
>
> On 12 April 2016 at 13:51, Gary Gregory <[email protected]> wrote:
>
>> I'm so annoyed and apologize for this all lines changed commit. I only
>> renamed a variable.
>>
>> Gary
>>
>> ---------- Forwarded message ----------
>> From: <[email protected]>
>> Date: Tue, Apr 12, 2016 at 11:47 AM
>> Subject: logging-log4j2 git commit: I always use "Millis" as the post fix
>> to avoid any confusion.
>> To: [email protected]
>>
>>
>> Repository: logging-log4j2
>> Updated Branches:
>>   refs/heads/master c55ace781 -> eb32b2f77
>>
>>
>> I always use "Millis" as the post fix to avoid any confusion.
>>
>> Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
>> Commit:
>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/eb32b2f7
>> Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/eb32b2f7
>> Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/eb32b2f7
>>
>> Branch: refs/heads/master
>> Commit: eb32b2f77634609a98c9940fac8e28b7e0d20f38
>> Parents: c55ace7
>> Author: ggregory <[email protected]>
>> Authored: Tue Apr 12 11:47:03 2016 -0700
>> Committer: ggregory <[email protected]>
>> Committed: Tue Apr 12 11:47:03 2016 -0700
>>
>> ----------------------------------------------------------------------
>>  .../logging/log4j/core/async/DisruptorUtil.java | 296 +++++++++----------
>>  1 file changed, 148 insertions(+), 148 deletions(-)
>> ----------------------------------------------------------------------
>>
>>
>>
>> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/eb32b2f7/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DisruptorUtil.java
>> ----------------------------------------------------------------------
>> diff --git
>> a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DisruptorUtil.java
>> b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DisruptorUtil.java
>> index 4faa174..3ce30f0 100644
>> ---
>> a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DisruptorUtil.java
>> +++
>> b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DisruptorUtil.java
>> @@ -1,148 +1,148 @@
>> -/*
>> - * 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.async;
>> -
>> -import java.util.concurrent.Callable;
>> -import java.util.concurrent.ExecutorService;
>> -import java.util.concurrent.Future;
>> -import java.util.concurrent.TimeUnit;
>> -
>> -import com.lmax.disruptor.*;
>> -import org.apache.logging.log4j.Logger;
>> -import org.apache.logging.log4j.core.util.Constants;
>> -import org.apache.logging.log4j.core.util.Integers;
>> -import org.apache.logging.log4j.status.StatusLogger;
>> -import org.apache.logging.log4j.util.LoaderUtil;
>> -import org.apache.logging.log4j.util.PropertiesUtil;
>> -
>> -/**
>> - * Utility methods for getting Disruptor related configuration.
>> - */
>> -final class DisruptorUtil {
>> -    private static final Logger LOGGER = StatusLogger.getLogger();
>> -    private static final int RINGBUFFER_MIN_SIZE = 128;
>> -    private static final int RINGBUFFER_DEFAULT_SIZE = 256 * 1024;
>> -    private static final int RINGBUFFER_NO_GC_DEFAULT_SIZE = 4 * 1024;
>> -
>> -    private DisruptorUtil() {
>> -    }
>> -
>> -    static long getTimeout(final String propertyName, final long
>> defaultTimeout) {
>> -        return
>> PropertiesUtil.getProperties().getLongProperty(propertyName,
>> defaultTimeout);
>> -    }
>> -
>> -    static WaitStrategy createWaitStrategy(final String propertyName) {
>> -        final String key = propertyName.startsWith("AsyncLogger.")
>> -                ? "AsyncLogger.Timeout"
>> -                : "AsyncLoggerConfig.Timeout";
>> -        final long timeout = DisruptorUtil.getTimeout(key, 10L);
>> -        return createWaitStrategy(propertyName, timeout);
>> -    }
>> -
>> -    static WaitStrategy createWaitStrategy(final String propertyName,
>> final long timeoutMs) {
>> -        final String strategy =
>> PropertiesUtil.getProperties().getStringProperty(propertyName);
>> -        if (strategy != null) {
>> -            LOGGER.trace("property {}={}", propertyName, strategy);
>> -            if ("Sleep".equalsIgnoreCase(strategy)) {
>> -                return new SleepingWaitStrategy();
>> -            } else if ("Yield".equalsIgnoreCase(strategy)) {
>> -                return new YieldingWaitStrategy();
>> -            } else if ("Block".equalsIgnoreCase(strategy)) {
>> -                return new BlockingWaitStrategy();
>> -            } else if ("BusySpin".equalsIgnoreCase(strategy)) {
>> -                return new BusySpinWaitStrategy();
>> -            } else if ("Timeout".equalsIgnoreCase(strategy)) {
>> -                return new TimeoutBlockingWaitStrategy(timeoutMs,
>> TimeUnit.MILLISECONDS);
>> -            }
>> -        }
>> -        return new TimeoutBlockingWaitStrategy(timeoutMs,
>> TimeUnit.MILLISECONDS);
>> -    }
>> -
>> -    static int calculateRingBufferSize(final String propertyName) {
>> -        int ringBufferSize = Constants.ENABLE_THREADLOCALS ?
>> RINGBUFFER_NO_GC_DEFAULT_SIZE : RINGBUFFER_DEFAULT_SIZE;
>> -        final String userPreferredRBSize =
>> PropertiesUtil.getProperties().getStringProperty(propertyName,
>> -                String.valueOf(ringBufferSize));
>> -        try {
>> -            int size = Integer.parseInt(userPreferredRBSize);
>> -            if (size < RINGBUFFER_MIN_SIZE) {
>> -                size = RINGBUFFER_MIN_SIZE;
>> -                LOGGER.warn("Invalid RingBufferSize {}, using minimum
>> size {}.", userPreferredRBSize,
>> -                        RINGBUFFER_MIN_SIZE);
>> -            }
>> -            ringBufferSize = size;
>> -        } catch (final Exception ex) {
>> -            LOGGER.warn("Invalid RingBufferSize {}, using default size
>> {}.", userPreferredRBSize, ringBufferSize);
>> -        }
>> -        return Integers.ceilingNextPowerOfTwo(ringBufferSize);
>> -    }
>> -
>> -    static ExceptionHandler<RingBufferLogEvent>
>> getAsyncLoggerExceptionHandler() {
>> -        final String cls =
>> PropertiesUtil.getProperties().getStringProperty("AsyncLogger.ExceptionHandler");
>> -        if (cls == null) {
>> -            return new DefaultAsyncLoggerExceptionHandler();
>> -        }
>> -        try {
>> -            @SuppressWarnings("unchecked")
>> -            final Class<? extends ExceptionHandler<RingBufferLogEvent>>
>> klass =
>> -                (Class<? extends ExceptionHandler<RingBufferLogEvent>>)
>> LoaderUtil.loadClass(cls);
>> -            return klass.newInstance();
>> -        } catch (final Exception ignored) {
>> -            LOGGER.debug("Invalid AsyncLogger.ExceptionHandler value:
>> error creating {}: ", cls, ignored);
>> -            return new DefaultAsyncLoggerExceptionHandler();
>> -        }
>> -    }
>> -
>> -    static
>> ExceptionHandler<AsyncLoggerConfigDisruptor.Log4jEventWrapper>
>> getAsyncLoggerConfigExceptionHandler() {
>> -        final String cls =
>> PropertiesUtil.getProperties().getStringProperty("AsyncLoggerConfig.ExceptionHandler");
>> -        if (cls == null) {
>> -            return new DefaultAsyncLoggerConfigExceptionHandler();
>> -        }
>> -        try {
>> -            @SuppressWarnings("unchecked")
>> -            final Class<? extends
>> ExceptionHandler<AsyncLoggerConfigDisruptor.Log4jEventWrapper>> klass =
>> -                    (Class<? extends
>> ExceptionHandler<AsyncLoggerConfigDisruptor.Log4jEventWrapper>>)
>> LoaderUtil.loadClass(cls);
>> -            return klass.newInstance();
>> -        } catch (final Exception ignored) {
>> -            LOGGER.debug("Invalid AsyncLoggerConfig.ExceptionHandler
>> value: error creating {}: ", cls, ignored);
>> -            return new DefaultAsyncLoggerConfigExceptionHandler();
>> -        }
>> -    }
>> -
>> -    /**
>> -     * Returns the thread ID of the background appender thread. This
>> allows us to detect Logger.log() calls initiated
>> -     * from the appender thread, which may cause deadlock when the
>> RingBuffer is full. (LOG4J2-471)
>> -     *
>> -     * @param executor runs the appender thread
>> -     * @return the thread ID of the background appender thread
>> -     */
>> -    public static long getExecutorThreadId(final ExecutorService
>> executor) {
>> -        Future<Long> result = executor.submit(new Callable<Long>() {
>> -            @Override
>> -            public Long call() {
>> -                return Thread.currentThread().getId();
>> -            }
>> -        });
>> -        try {
>> -            return result.get();
>> -        } catch (final Exception ex) {
>> -            final String msg = "Could not obtain executor thread Id. "
>> -                    + "Giving up to avoid the risk of application
>> deadlock.";
>> -            throw new IllegalStateException(msg, ex);
>> -        }
>> -    }
>> -}
>> +/*
>> + * 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.async;
>> +
>> +import java.util.concurrent.Callable;
>> +import java.util.concurrent.ExecutorService;
>> +import java.util.concurrent.Future;
>> +import java.util.concurrent.TimeUnit;
>> +
>> +import com.lmax.disruptor.*;
>> +import org.apache.logging.log4j.Logger;
>> +import org.apache.logging.log4j.core.util.Constants;
>> +import org.apache.logging.log4j.core.util.Integers;
>> +import org.apache.logging.log4j.status.StatusLogger;
>> +import org.apache.logging.log4j.util.LoaderUtil;
>> +import org.apache.logging.log4j.util.PropertiesUtil;
>> +
>> +/**
>> + * Utility methods for getting Disruptor related configuration.
>> + */
>> +final class DisruptorUtil {
>> +    private static final Logger LOGGER = StatusLogger.getLogger();
>> +    private static final int RINGBUFFER_MIN_SIZE = 128;
>> +    private static final int RINGBUFFER_DEFAULT_SIZE = 256 * 1024;
>> +    private static final int RINGBUFFER_NO_GC_DEFAULT_SIZE = 4 * 1024;
>> +
>> +    private DisruptorUtil() {
>> +    }
>> +
>> +    static long getTimeout(final String propertyName, final long
>> defaultTimeout) {
>> +        return
>> PropertiesUtil.getProperties().getLongProperty(propertyName,
>> defaultTimeout);
>> +    }
>> +
>> +    static WaitStrategy createWaitStrategy(final String propertyName) {
>> +        final String key = propertyName.startsWith("AsyncLogger.")
>> +                ? "AsyncLogger.Timeout"
>> +                : "AsyncLoggerConfig.Timeout";
>> +        final long timeout = DisruptorUtil.getTimeout(key, 10L);
>> +        return createWaitStrategy(propertyName, timeout);
>> +    }
>> +
>> +    static WaitStrategy createWaitStrategy(final String propertyName,
>> final long timeoutMillis) {
>> +        final String strategy =
>> PropertiesUtil.getProperties().getStringProperty(propertyName);
>> +        if (strategy != null) {
>> +            LOGGER.trace("property {}={}", propertyName, strategy);
>> +            if ("Sleep".equalsIgnoreCase(strategy)) {
>> +                return new SleepingWaitStrategy();
>> +            } else if ("Yield".equalsIgnoreCase(strategy)) {
>> +                return new YieldingWaitStrategy();
>> +            } else if ("Block".equalsIgnoreCase(strategy)) {
>> +                return new BlockingWaitStrategy();
>> +            } else if ("BusySpin".equalsIgnoreCase(strategy)) {
>> +                return new BusySpinWaitStrategy();
>> +            } else if ("Timeout".equalsIgnoreCase(strategy)) {
>> +                return new TimeoutBlockingWaitStrategy(timeoutMillis,
>> TimeUnit.MILLISECONDS);
>> +            }
>> +        }
>> +        return new TimeoutBlockingWaitStrategy(timeoutMillis,
>> TimeUnit.MILLISECONDS);
>> +    }
>> +
>> +    static int calculateRingBufferSize(final String propertyName) {
>> +        int ringBufferSize = Constants.ENABLE_THREADLOCALS ?
>> RINGBUFFER_NO_GC_DEFAULT_SIZE : RINGBUFFER_DEFAULT_SIZE;
>> +        final String userPreferredRBSize =
>> PropertiesUtil.getProperties().getStringProperty(propertyName,
>> +                String.valueOf(ringBufferSize));
>> +        try {
>> +            int size = Integer.parseInt(userPreferredRBSize);
>> +            if (size < RINGBUFFER_MIN_SIZE) {
>> +                size = RINGBUFFER_MIN_SIZE;
>> +                LOGGER.warn("Invalid RingBufferSize {}, using minimum
>> size {}.", userPreferredRBSize,
>> +                        RINGBUFFER_MIN_SIZE);
>> +            }
>> +            ringBufferSize = size;
>> +        } catch (final Exception ex) {
>> +            LOGGER.warn("Invalid RingBufferSize {}, using default size
>> {}.", userPreferredRBSize, ringBufferSize);
>> +        }
>> +        return Integers.ceilingNextPowerOfTwo(ringBufferSize);
>> +    }
>> +
>> +    static ExceptionHandler<RingBufferLogEvent>
>> getAsyncLoggerExceptionHandler() {
>> +        final String cls =
>> PropertiesUtil.getProperties().getStringProperty("AsyncLogger.ExceptionHandler");
>> +        if (cls == null) {
>> +            return new DefaultAsyncLoggerExceptionHandler();
>> +        }
>> +        try {
>> +            @SuppressWarnings("unchecked")
>> +            final Class<? extends ExceptionHandler<RingBufferLogEvent>>
>> klass =
>> +                (Class<? extends ExceptionHandler<RingBufferLogEvent>>)
>> LoaderUtil.loadClass(cls);
>> +            return klass.newInstance();
>> +        } catch (final Exception ignored) {
>> +            LOGGER.debug("Invalid AsyncLogger.ExceptionHandler value:
>> error creating {}: ", cls, ignored);
>> +            return new DefaultAsyncLoggerExceptionHandler();
>> +        }
>> +    }
>> +
>> +    static
>> ExceptionHandler<AsyncLoggerConfigDisruptor.Log4jEventWrapper>
>> getAsyncLoggerConfigExceptionHandler() {
>> +        final String cls =
>> PropertiesUtil.getProperties().getStringProperty("AsyncLoggerConfig.ExceptionHandler");
>> +        if (cls == null) {
>> +            return new DefaultAsyncLoggerConfigExceptionHandler();
>> +        }
>> +        try {
>> +            @SuppressWarnings("unchecked")
>> +            final Class<? extends
>> ExceptionHandler<AsyncLoggerConfigDisruptor.Log4jEventWrapper>> klass =
>> +                    (Class<? extends
>> ExceptionHandler<AsyncLoggerConfigDisruptor.Log4jEventWrapper>>)
>> LoaderUtil.loadClass(cls);
>> +            return klass.newInstance();
>> +        } catch (final Exception ignored) {
>> +            LOGGER.debug("Invalid AsyncLoggerConfig.ExceptionHandler
>> value: error creating {}: ", cls, ignored);
>> +            return new DefaultAsyncLoggerConfigExceptionHandler();
>> +        }
>> +    }
>> +
>> +    /**
>> +     * Returns the thread ID of the background appender thread. This
>> allows us to detect Logger.log() calls initiated
>> +     * from the appender thread, which may cause deadlock when the
>> RingBuffer is full. (LOG4J2-471)
>> +     *
>> +     * @param executor runs the appender thread
>> +     * @return the thread ID of the background appender thread
>> +     */
>> +    public static long getExecutorThreadId(final ExecutorService
>> executor) {
>> +        Future<Long> result = executor.submit(new Callable<Long>() {
>> +            @Override
>> +            public Long call() {
>> +                return Thread.currentThread().getId();
>> +            }
>> +        });
>> +        try {
>> +            return result.get();
>> +        } catch (final Exception ex) {
>> +            final String msg = "Could not obtain executor thread Id. "
>> +                    + "Giving up to avoid the risk of application
>> deadlock.";
>> +            throw new IllegalStateException(msg, ex);
>> +        }
>> +    }
>> +}
>>
>>
>>
>>
>> --
>> 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
>>
>
>
>
> --
> Matt Sicker <[email protected]>
>



-- 
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