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