No, they are not. They are related to the commit I did for LOG4J2-1906 a week 
ago. I am trying to add more diagnostics so I can figure out why it 
occasionally fails. Note that this is a new test that would have failed every 
time it ran prior to that fix.

Ralph

> On Dec 9, 2018, at 3:05 PM, Gary Gregory <garydgreg...@gmail.com> wrote:
> 
> Hi,
> 
> I think the Jenkins build failures are related to this commit :-(
> 
> Gary
> 
> ---------- Forwarded message ---------
> From: <rgo...@apache.org>
> Date: Sun, Dec 9, 2018 at 10:23 AM
> Subject: [logging-log4j2] branch release-2.x updated: Enhance direct write
> test. Add new OnStartup test
> To: comm...@logging.apache.org <comm...@logging.apache.org>
> 
> 
> This is an automated email from the ASF dual-hosted git repository.
> 
> rgoers pushed a commit to branch release-2.x
> in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
> 
> 
> The following commit(s) were added to refs/heads/release-2.x by this push:
>     new 3a6f602  Enhance direct write test. Add new OnStartup test
> 3a6f602 is described below
> 
> commit 3a6f6022130b1eee6100c633b988cd8cb091580c
> Author: Ralph Goers <rgo...@apache.org>
> AuthorDate: Sun Dec 9 10:22:19 2018 -0700
> 
>    Enhance direct write test. Add new OnStartup test
> ---
> .../core/appender/rolling/RollingFileManager.java  |   1 +
> .../RollingAppenderDirectWrite1906Test.java        |  11 +-
> .../rolling/RollingAppenderOnStartup2Test.java     | 120
> +++++++++++++++++++++
> .../src/test/resources/log4j-rollOnStartup.json    |  41 +++++++
> 4 files changed, 169 insertions(+), 4 deletions(-)
> 
> diff --git
> a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
> b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
> index 8a9e980..4060a90 100644
> ---
> a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
> +++
> b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
> @@ -669,6 +669,7 @@ public class RollingFileManager extends FileManager {
>                 final BasicFileAttributes attrs =
> Files.readAttributes(path, BasicFileAttributes.class);
>                 final FileTime fileTime = attrs.creationTime();
>                 if (fileTime.compareTo(EPOCH) > 0) {
> +                    LOGGER.debug("Returning file creation time for {}",
> file.getAbsolutePath());
>                     return fileTime.toMillis();
>                 }
>                 LOGGER.info("Unable to obtain file creation time for " +
> file.getAbsolutePath());
> diff --git
> a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingAppenderDirectWrite1906Test.java
> b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingAppenderDirectWrite1906Test.java
> index c58c0ad..9417c40 100644
> ---
> a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingAppenderDirectWrite1906Test.java
> +++
> b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingAppenderDirectWrite1906Test.java
> @@ -92,11 +92,14 @@ public class RollingAppenderDirectWrite1906Test {
> 
>     }
> 
> -    private String logFileNameError(final String expected, final String
> actual) {
> +    private String logFileNameError(String expected, String actual) {
>         final List<StatusData> statusData =
> StatusLogger.getLogger().getStatusData();
> -        for (final StatusData statusItem : statusData) {
> -            System.err.println(statusItem.getFormattedStatus());
> +        final StringBuilder sb = new StringBuilder();
> +        for (StatusData statusItem : statusData) {
> +            sb.append(statusItem.getFormattedStatus());
> +            sb.append("\n");
>         }
> -        return "Incorrect file name. Expected: " + expected + " Actual: "
> + actual;
> +        sb.append("Incorrect file name. Expected:
> ").append(expected).append(" Actual: ").append(actual);
> +        return sb.toString();
>     }
> }
> diff --git
> a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingAppenderOnStartup2Test.java
> b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingAppenderOnStartup2Test.java
> new file mode 100644
> index 0000000..681a81b
> --- /dev/null
> +++
> b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/RollingAppenderOnStartup2Test.java
> @@ -0,0 +1,120 @@
> +/*
> + * 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.appender.rolling;
> +
> +import java.io.ByteArrayInputStream;
> +import java.io.InputStream;
> +import java.nio.file.DirectoryStream;
> +import java.nio.file.Files;
> +import java.nio.file.Path;
> +import java.nio.file.Paths;
> +import java.nio.file.StandardCopyOption;
> +import java.nio.file.attribute.BasicFileAttributeView;
> +import java.nio.file.attribute.FileTime;
> +import java.util.Arrays;
> +import java.util.Collection;
> +
> +import org.apache.logging.log4j.LogManager;
> +import org.apache.logging.log4j.Logger;
> +import org.apache.logging.log4j.core.config.Configuration;
> +import org.apache.logging.log4j.core.config.DefaultConfiguration;
> +import org.apache.logging.log4j.core.util.datetime.FastDateFormat;
> +import org.apache.logging.log4j.junit.LoggerContextRule;
> +import org.junit.AfterClass;
> +import org.junit.Assert;
> +import org.junit.Before;
> +import org.junit.BeforeClass;
> +import org.junit.Rule;
> +import org.junit.Test;
> +import org.junit.runner.RunWith;
> +import org.junit.runners.Parameterized;
> +
> +import static org.junit.Assert.assertEquals;
> +import static org.junit.Assert.assertTrue;
> +
> +/**
> + *
> + */
> +public class RollingAppenderOnStartup2Test {
> +
> +    private static final String DIR = "target/rollOnStartup";
> +    private static final String TARGET_FILE = DIR + "/orchestrator.log";
> +    private static final FastDateFormat formatter =
> FastDateFormat.getInstance("MM-dd-yy-HH-mm-ss");
> +    private static final String ROLLED_FILE_PREFIX = DIR +
> "/orchestrator-";
> +    private static final String ROLLED_FILE_SUFFIX = "-1.log.gz";
> +    private static final String TEST_DATA = "Hello world!";
> +
> +    @BeforeClass
> +    public static void beforeClass() throws Exception {
> +        if (Files.exists(Paths.get("target/rollOnStartup"))) {
> +            try (DirectoryStream<Path> directoryStream =
> Files.newDirectoryStream(Paths.get(DIR))) {
> +                for (final Path path : directoryStream) {
> +                    Files.delete(path);
> +                }
> +                Files.delete(Paths.get(DIR));
> +            }
> +        }
> +        //System.setProperty("log4j2.debug", "true");
> +        //System.setProperty("log4j2.StatusLogger.level", "trace");
> +        final Configuration configuration = new DefaultConfiguration();
> +        final Path target = Paths.get(TARGET_FILE);
> +        Assert.assertFalse(Files.exists(target));
> +        target.toFile().getParentFile().mkdirs();
> +        final long timeStamp = System.currentTimeMillis() - (1000 * 60 *
> 60 * 24);
> +        final String expectedDate = formatter.format(timeStamp);
> +        final String rolledFileName = ROLLED_FILE_PREFIX + expectedDate +
> ROLLED_FILE_SUFFIX;
> +        final Path rolled = Paths.get(rolledFileName);
> +        final long copied;
> +        try (final InputStream is = new
> ByteArrayInputStream(TEST_DATA.getBytes("UTF-8"))) {
> +            copied = Files.copy(is, target,
> StandardCopyOption.REPLACE_EXISTING);
> +        }
> +        final long size = Files.size(target);
> +        assertTrue(size > 0);
> +        assertEquals(copied, size);
> +        final FileTime fileTime = FileTime.fromMillis(timeStamp);
> +        final BasicFileAttributeView attrs =
> Files.getFileAttributeView(target, BasicFileAttributeView.class);
> +        attrs.setTimes(fileTime, fileTime, fileTime);
> +        System.setProperty("log4j.configurationFile",
> "log4j-rollOnStartup.json");
> +    }
> +
> +    @AfterClass
> +    public static void afterClass() throws Exception {
> +        long size = 0;
> +        /* try (DirectoryStream<Path> directoryStream =
> Files.newDirectoryStream(Paths.get(DIR))) {
> +            for (final Path path : directoryStream) {
> +                if (size == 0) {
> +                    size = Files.size(path);
> +                } else {
> +                    final long fileSize = Files.size(path);
> +                    assertTrue("Expected size: " + size + " Size of " +
> path.getFileName() + ": " + fileSize,
> +                        size == fileSize);
> +                }
> +                Files.delete(path);
> +            }
> +            Files.delete(Paths.get("target/rollOnStartup"));
> +        } */
> +    }
> +
> +    @Test
> +    public void testAppender() throws Exception {
> +        Logger logger =
> LogManager.getLogger(RollingAppenderOnStartup2Test.class);
> +        for (int i = 0; i < 10; ++i) {
> +            logger.debug("This is test message number " + i);
> +        }
> +
> +    }
> +}
> diff --git a/log4j-core/src/test/resources/log4j-rollOnStartup.json
> b/log4j-core/src/test/resources/log4j-rollOnStartup.json
> new file mode 100644
> index 0000000..85e9203
> --- /dev/null
> +++ b/log4j-core/src/test/resources/log4j-rollOnStartup.json
> @@ -0,0 +1,41 @@
> +{
> +  "configuration": { "status": "debug",
> +    "appenders": {
> +      "Console": {
> +        "name": "Console",
> +        "PatternLayout": {
> +          "pattern": "%d{yyyy-MM-dd'T'HH:mm:ss.SSS} [%c{2}] [%t]%n[%p] :
> %m%n"
> +        }
> +      },
> +      "RollingFile": {
> +        "name": "RollingFile",
> +        "fileName": "target/rollOnStartup/orchestrator.log",
> +        "filePattern":
> "target/RollOnStartup/orchestrator-%d{MM-dd-yy-HH-mm-ss}-%i.log.gz",
> +        "append": false,
> +        "PatternLayout": {
> +          "pattern": "%d{yyyy-MM-dd'T'HH:mm:ss.SSS} [%c{2}] [%t]%n[%p] :
> %m%n"
> +        },
> +        "Policies": {
> +          "OnStartupTriggeringPolicy": {
> +            "minSize" : 0
> +          },
> +          "SizeBasedTriggeringPolicy": {
> +            "size": "50 MB"
> +          }
> +        },
> +        "DefaultRolloverStrategy": {
> +          "max": "10"
> +        }
> +      }
> +    },
> +    "loggers": {
> +      "root": {
> +        "level": "info",
> +        "AppenderRef": [
> +          {"ref": "RollingFile", "level": "INFO"},
> +          {"ref": "Console", "level": "ERROR"}
> +        ]
> +      }
> +    }
> +  }
> +}
> \ No newline at end of file


Reply via email to