Repository: sentry Updated Branches: refs/heads/master e38d8b017 -> 44ada78c3
SENTRY-2403: Incorrect naming in RollingFileWithoutDeleteAppender (Peter Somogyi, reviewed by Sergio Pena) Project: http://git-wip-us.apache.org/repos/asf/sentry/repo Commit: http://git-wip-us.apache.org/repos/asf/sentry/commit/44ada78c Tree: http://git-wip-us.apache.org/repos/asf/sentry/tree/44ada78c Diff: http://git-wip-us.apache.org/repos/asf/sentry/diff/44ada78c Branch: refs/heads/master Commit: 44ada78c356aa70c875357472a6711e80acc905a Parents: e38d8b0 Author: Sergio Pena <[email protected]> Authored: Tue Sep 18 09:32:54 2018 -0500 Committer: Sergio Pena <[email protected]> Committed: Tue Sep 18 09:32:54 2018 -0500 ---------------------------------------------------------------------- .../RollingFileWithoutDeleteAppender.java | 20 +++++++++++++++++--- .../TestRollingFileWithoutDeleteAppender.java | 19 +++++++++---------- 2 files changed, 26 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/sentry/blob/44ada78c/sentry-service/sentry-service-server/src/main/java/org/apache/sentry/provider/db/log/appender/RollingFileWithoutDeleteAppender.java ---------------------------------------------------------------------- diff --git a/sentry-service/sentry-service-server/src/main/java/org/apache/sentry/provider/db/log/appender/RollingFileWithoutDeleteAppender.java b/sentry-service/sentry-service-server/src/main/java/org/apache/sentry/provider/db/log/appender/RollingFileWithoutDeleteAppender.java index fd133f3..39ea9f7 100644 --- a/sentry-service/sentry-service-server/src/main/java/org/apache/sentry/provider/db/log/appender/RollingFileWithoutDeleteAppender.java +++ b/sentry-service/sentry-service-server/src/main/java/org/apache/sentry/provider/db/log/appender/RollingFileWithoutDeleteAppender.java @@ -48,7 +48,7 @@ public class RollingFileWithoutDeleteAppender extends FileAppender { /** * Instantiate a RollingFileAppender and open the file designated by - * <code>filename</code>. The opened filename will become the ouput + * <code>filename</code>. The opened filename will become the output * destination for this appender. * <p> * If the <code>append</code> parameter is true, the file will be appended to. @@ -86,7 +86,7 @@ public class RollingFileWithoutDeleteAppender extends FileAppender { * <code>File</code> is renamed <code>File.yyyyMMddHHmmss</code> and closed. A * new <code>File</code> is created to receive further log output. */ - // synchronization not necessary since doAppend is alreasy synched + // synchronization not necessary since doAppend is already synched public void rollOver() { if (qw != null) { long size = ((CountingQuietWriter) qw).getCount(); @@ -170,6 +170,20 @@ public class RollingFileWithoutDeleteAppender extends FileAppender { // Mangled file name. Append the current timestamp private static String getLogFileName(String oldFileName) { - return oldFileName + "." + Long.toString(System.currentTimeMillis()); + return getFileNameWithoutTimestamp(oldFileName) + "." + + Long.toString(System.currentTimeMillis()); + } + + /** + * Remove trailing timestamp from filename + * @param fileName original filename with or without trailing timestamp + * @return Filename without trailing timestamp + */ + private static String getFileNameWithoutTimestamp(String fileName) { + if (fileName.matches("^.*\\.\\d+$")) { + return fileName.substring(0, fileName.lastIndexOf('.')); + } else { + return fileName; + } } } http://git-wip-us.apache.org/repos/asf/sentry/blob/44ada78c/sentry-service/sentry-service-server/src/test/java/org/apache/sentry/provider/db/log/appender/TestRollingFileWithoutDeleteAppender.java ---------------------------------------------------------------------- diff --git a/sentry-service/sentry-service-server/src/test/java/org/apache/sentry/provider/db/log/appender/TestRollingFileWithoutDeleteAppender.java b/sentry-service/sentry-service-server/src/test/java/org/apache/sentry/provider/db/log/appender/TestRollingFileWithoutDeleteAppender.java index ca9062b..5db15a3 100644 --- a/sentry-service/sentry-service-server/src/test/java/org/apache/sentry/provider/db/log/appender/TestRollingFileWithoutDeleteAppender.java +++ b/sentry-service/sentry-service-server/src/test/java/org/apache/sentry/provider/db/log/appender/TestRollingFileWithoutDeleteAppender.java @@ -19,6 +19,7 @@ package org.apache.sentry.provider.db.log.appender; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.fail; import static org.junit.Assert.assertTrue; @@ -55,7 +56,7 @@ public class TestRollingFileWithoutDeleteAppender { for (int i = 0; i < 99; i++) { if (i < 10) { sentryLogger.debug("Hello---" + i); - } else if (i < 100) { + } else { sentryLogger.debug("Hello--" + i); } } @@ -63,7 +64,7 @@ public class TestRollingFileWithoutDeleteAppender { if (dataDir != null) { File[] files = dataDir.listFiles(); if (files != null) { - assertEquals(files.length, 10); + assertEquals(10, files.length); } else { fail("Excepted 10 log files."); } @@ -74,8 +75,7 @@ public class TestRollingFileWithoutDeleteAppender { } /*** - * Generate log enough to cause a single rollover. Verify the file name format - * @throws Throwable + * Generate log enough to cause rollovers. Verify the file name format */ @Test public void testFileNamePattern() throws Throwable { @@ -87,13 +87,12 @@ public class TestRollingFileWithoutDeleteAppender { appender.setMaximumFileSize(10); sentryLogger.addAppender(appender); sentryLogger.debug("123456789012345"); + sentryLogger.debug("123456789012345"); File[] files = dataDir.listFiles(); - if (files != null) { - assertEquals(files.length, 2); - assertTrue(files[0].getName().contains("auditLog.log.")); - assertTrue(files[1].getName().contains("auditLog.log.")); - } else { - fail("Excepted 2 log files."); + assertNotNull(files); + assertEquals(3, files.length); + for (int i = 0; i < 3; i++) { + assertTrue(files[i].getName().matches("auditLog\\.log\\.\\d+")); } }
