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

Reply via email to