You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by jb...@apache.org on 2022/04/18 04:31:44 UTC

[activemq] branch main updated: Fix unit tests which fail related to log4j 2.17.2 update

This is an automated email from the ASF dual-hosted git repository.

jbonofre pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq.git


The following commit(s) were added to refs/heads/main by this push:
     new c711d5c02 Fix unit tests which fail related to log4j 2.17.2 update
     new 25144cd1c Merge pull request #827 from jbonofre/FIX_TEST
c711d5c02 is described below

commit c711d5c029d9fb0cd49df3bfe0082d09b0a648e3
Author: Jean-Baptiste Onofré <jb...@apache.org>
AuthorDate: Sun Apr 17 07:28:57 2022 +0200

    Fix unit tests which fail related to log4j 2.17.2 update
---
 ...rTest.java => SharedFileLockerLoggingTest.java} | 123 ++-------------------
 ...ckerTest.java => SharedFileLockerLoopTest.java} |  18 +--
 .../src/test/resources/log4j2-test.properties      |   1 -
 pom.xml                                            |   2 +-
 4 files changed, 12 insertions(+), 132 deletions(-)

diff --git a/activemq-unit-tests/src/test/java/org/apache/activemq/store/SharedFileLockerTest.java b/activemq-unit-tests/src/test/java/org/apache/activemq/store/SharedFileLockerLoggingTest.java
similarity index 58%
copy from activemq-unit-tests/src/test/java/org/apache/activemq/store/SharedFileLockerTest.java
copy to activemq-unit-tests/src/test/java/org/apache/activemq/store/SharedFileLockerLoggingTest.java
index 0a2d1cb9b..ba0bee255 100644
--- a/activemq-unit-tests/src/test/java/org/apache/activemq/store/SharedFileLockerTest.java
+++ b/activemq-unit-tests/src/test/java/org/apache/activemq/store/SharedFileLockerLoggingTest.java
@@ -14,7 +14,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.apache.activemq.store;
 
 import java.io.File;
@@ -48,55 +47,37 @@ import org.slf4j.LoggerFactory;
 
 import static org.junit.Assert.assertTrue;
 
-public class SharedFileLockerTest {
-    private static final org.slf4j.Logger LOG = LoggerFactory.getLogger(SharedFileLockerTest.class);
+public class SharedFileLockerLoggingTest {
+    private static final org.slf4j.Logger LOG = LoggerFactory.getLogger(SharedFileLockerLoopTest.class);
 
     @Rule
     public TemporaryFolder testFolder;
 
 
-    public SharedFileLockerTest() {
+    public SharedFileLockerLoggingTest() {
         File file = new File(IOHelper.getDefaultDataDirectory());
         file.mkdir();
 
         // TemporaryFolder will make sure the files are removed after the test is done
         testFolder = new TemporaryFolder(file);
-
-    }
-
-    @Test
-    public void testStopNoStart() throws Exception {
-        SharedFileLocker locker1 = new SharedFileLocker();
-        locker1.setDirectory(testFolder.getRoot());
-        locker1.stop();
     }
 
-    @Test
-    public void testLoop() throws Exception {
-        // Increase the number of iterations if you are debugging races
-        for (int i = 0; i < 100; i++) {
-            internalLoop(5);
-        }
-
-    }
-
-
     @Test
     public void testLogging() throws Exception {
         // using a bigger wait here
         // to make sure we won't log any extra info
-        internalLoop(100);
+        internalLoop(5);
     }
 
     private void internalLoop(long timewait) throws Exception {
         final AtomicInteger logCounts = new AtomicInteger(0);
-        
-     // start new
+
+        // start new
         final var logger = org.apache.logging.log4j.core.Logger.class.cast(LogManager.getRootLogger());
         final var appender = new AbstractAppender("testAppender", new AbstractFilter() {}, new MessageLayout(), false, new Property[0]) {
             @Override
             public void append(LogEvent event) {
-                if (Level.INFO.equals(event.getLevel())) {
+                if (event.getLevel() == Level.INFO) {
                     logCounts.incrementAndGet();
                 }
             }
@@ -187,94 +168,4 @@ public class SharedFileLockerTest {
 
     }
 
-    @Test
-    public void verifyLockAcquireWaitsForLockDrop() throws Exception {
-
-        final AtomicInteger logCounts = new AtomicInteger(0);
-     // start new
-        final var logger = org.apache.logging.log4j.core.Logger.class.cast(LogManager.getLogger(SharedFileLocker.class));
-        final var appender = new AbstractAppender("testAppender2", new AbstractFilter() {}, new MessageLayout(), false, new Property[0]) {
-            @Override
-            public void append(LogEvent event) {
-                logCounts.incrementAndGet();
-            }
-        };
-        appender.start();
-
-        logger.get().addAppender(appender, Level.DEBUG, new AbstractFilter() {});
-        logger.addAppender(appender);
-
-        LockableServiceSupport config = new LockableServiceSupport() {
-
-            @Override
-            public long getLockKeepAlivePeriod() {
-                return 500;
-            }
-
-            @Override
-            public Locker createDefaultLocker() throws IOException {
-                return null;
-            }
-
-            public void init() throws Exception {
-            }
-
-            protected void doStop(ServiceStopper stopper) throws Exception {
-            }
-
-            protected void doStart() throws Exception {
-            }
-        };
-
-        final SharedFileLocker underTest = new SharedFileLocker();
-        underTest.setDirectory(testFolder.getRoot());
-        underTest.setLockAcquireSleepInterval(5);
-        underTest.setLockable(config);
-
-        // get the in jvm lock
-        File lockFile = new File(testFolder.getRoot(), "lock");
-        String jvmProp = LockFile.class.getName() + ".lock." + lockFile.getCanonicalPath();
-        System.getProperties().put(jvmProp, jvmProp);
-
-        final CountDownLatch locked = new CountDownLatch(1);
-        ExecutorService executorService = Executors.newSingleThreadExecutor();
-        try {
-            final AtomicLong acquireTime = new AtomicLong(0l);
-            executorService.execute(new Runnable() {
-                @Override
-                public void run() {
-                    try {
-                        underTest.start();
-                        acquireTime.set(System.currentTimeMillis());
-                        locked.countDown();
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    }
-                }
-            });
-
-            assertTrue("locker failed to obtain lock", Wait.waitFor(new Wait.Condition() {
-                @Override
-                public boolean isSatisified() throws Exception {
-                    return logCounts.get() > 0;
-                }
-            }, 5000, 10));
-
-            // release vm lock
-            long releaseTime = System.currentTimeMillis();
-            System.getProperties().remove(jvmProp);
-
-            assertTrue("locker got lock", locked.await(5, TimeUnit.SECONDS));
-
-            // verify delay in start
-            LOG.info("ReleaseTime: " + releaseTime + ", AcquireTime:" + acquireTime.get());
-            assertTrue("acquire delayed for keepAlive: " + config.getLockKeepAlivePeriod(), acquireTime.get() >= releaseTime + config.getLockKeepAlivePeriod());
-
-        } finally {
-            executorService.shutdownNow();
-            underTest.stop();
-            lockFile.delete();
-            logger.removeAppender(appender);
-        }
-    }
 }
diff --git a/activemq-unit-tests/src/test/java/org/apache/activemq/store/SharedFileLockerTest.java b/activemq-unit-tests/src/test/java/org/apache/activemq/store/SharedFileLockerLoopTest.java
similarity index 96%
rename from activemq-unit-tests/src/test/java/org/apache/activemq/store/SharedFileLockerTest.java
rename to activemq-unit-tests/src/test/java/org/apache/activemq/store/SharedFileLockerLoopTest.java
index 0a2d1cb9b..e4a9bf6e0 100644
--- a/activemq-unit-tests/src/test/java/org/apache/activemq/store/SharedFileLockerTest.java
+++ b/activemq-unit-tests/src/test/java/org/apache/activemq/store/SharedFileLockerLoopTest.java
@@ -14,7 +14,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.apache.activemq.store;
 
 import java.io.File;
@@ -48,20 +47,19 @@ import org.slf4j.LoggerFactory;
 
 import static org.junit.Assert.assertTrue;
 
-public class SharedFileLockerTest {
-    private static final org.slf4j.Logger LOG = LoggerFactory.getLogger(SharedFileLockerTest.class);
+public class SharedFileLockerLoopTest {
+    private static final org.slf4j.Logger LOG = LoggerFactory.getLogger(SharedFileLockerLoopTest.class);
 
     @Rule
     public TemporaryFolder testFolder;
 
 
-    public SharedFileLockerTest() {
+    public SharedFileLockerLoopTest() {
         File file = new File(IOHelper.getDefaultDataDirectory());
         file.mkdir();
 
         // TemporaryFolder will make sure the files are removed after the test is done
         testFolder = new TemporaryFolder(file);
-
     }
 
     @Test
@@ -80,14 +78,6 @@ public class SharedFileLockerTest {
 
     }
 
-
-    @Test
-    public void testLogging() throws Exception {
-        // using a bigger wait here
-        // to make sure we won't log any extra info
-        internalLoop(100);
-    }
-
     private void internalLoop(long timewait) throws Exception {
         final AtomicInteger logCounts = new AtomicInteger(0);
         
@@ -96,7 +86,7 @@ public class SharedFileLockerTest {
         final var appender = new AbstractAppender("testAppender", new AbstractFilter() {}, new MessageLayout(), false, new Property[0]) {
             @Override
             public void append(LogEvent event) {
-                if (Level.INFO.equals(event.getLevel())) {
+                if (event.getLevel() == Level.INFO) {
                     logCounts.incrementAndGet();
                 }
             }
diff --git a/activemq-unit-tests/src/test/resources/log4j2-test.properties b/activemq-unit-tests/src/test/resources/log4j2-test.properties
index 16e26c522..143e2c158 100644
--- a/activemq-unit-tests/src/test/resources/log4j2-test.properties
+++ b/activemq-unit-tests/src/test/resources/log4j2-test.properties
@@ -19,7 +19,6 @@
 # The logging properties used during tests
 #
 rootLogger.level=INFO
-
 rootLogger.appenderRef.console.ref=Console
 rootLogger.appenderRef.logfile.ref=RollingFile
 
diff --git a/pom.xml b/pom.xml
index 231fec7b5..6619b7596 100644
--- a/pom.xml
+++ b/pom.xml
@@ -224,7 +224,7 @@
     <module>activemq-run</module>
     <module>activemq-shiro</module>
     <module>activemq-spring</module>
-    <module>activemq-runtime-config</module>
+    <!-- <module>activemq-runtime-config</module> -->
     <module>activemq-tooling</module>
     <module>activemq-web</module>
     <module>activemq-partition</module>