If that test isn’t using the listener mechanism in LoggerContext, then it’ll sporadically fail to detect reconfigurations.
— Matt Sicker > On Jun 29, 2022, at 12:13, Ralph Goers <[email protected]> wrote: > > I believe I have seen this or a similar error in the past but I haven’t seen > it myself in quite a while. > > I’d bet it is a problem with the test. > > Ralph > >> On Jun 29, 2022, at 6:50 AM, Gary Gregory <[email protected]> wrote: >> >> I get a test failure: >> >> ERROR] Tests run: 21, Failures: 1, Errors: 0, Skipped: 0, Time >> elapsed: 121.852 s <<< FAILURE! - in >> org.apache.logging.log4j.core.config.TestConfigurator >> [ERROR] >> org.apache.logging.log4j.core.config.TestConfigurator.testReconfiguration >> Time elapsed: 15.035 s <<< FAILURE! >> java.lang.AssertionError: >> Configuration not reset >> Expected: is not >> sameInstance(<XmlConfiguration[location=/Users/garydgregory/Downloads/apache-log4j-2.18.0-src/log4j-core/target/test-classes/log4j2-config.xml]>) >> but: was >> <XmlConfiguration[location=/Users/garydgregory/Downloads/apache-log4j-2.18.0-src/log4j-core/target/test-classes/log4j2-config.xml]> >> at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20) >> at >> org.apache.logging.log4j.core.config.TestConfigurator.testReconfiguration(TestConfigurator.java:305) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> at java.lang.reflect.Method.invoke(Method.java:498) >> at >> org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725) >> at >> org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) >> at >> org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) >> at >> org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149) >> at >> org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140) >> at >> org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84) >> at >> org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115) >> at >> org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105) >> at >> org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) >> at >> org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) >> at >> org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) >> at >> org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) >> at >> org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104) >> at >> org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98) >> at >> org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:214) >> at >> org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) >> at >> org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:210) >> at >> org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135) >> at >> org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66) >> at >> org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151) >> at >> org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) >> at >> org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) >> at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) >> at >> org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) >> at >> org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) >> at >> org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) >> at >> org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) >> at java.util.ArrayList.forEach(ArrayList.java:1259) >> at >> org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) >> at >> org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) >> at >> org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) >> at >> org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) >> at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) >> at >> org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) >> at >> org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) >> at >> org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) >> at >> org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) >> at java.util.ArrayList.forEach(ArrayList.java:1259) >> at >> org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) >> at >> org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) >> at >> org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) >> at >> org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) >> at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) >> at >> org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) >> at >> org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) >> at >> org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) >> at >> org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) >> at >> org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) >> at >> org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) >> at >> org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) >> at >> org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108) >> at >> org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) >> at >> org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) >> at >> org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) >> at >> org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) >> at >> org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96) >> at >> org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:75) >> at >> org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:55) >> at >> org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:223) >> at >> org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:175) >> at >> org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:135) >> at >> org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:456) >> at >> org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:169) >> at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:595) >> at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:581) >> >> Running >> >> mvn clean verify >> >> on >> >> Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63) >> Maven home: /usr/local/Cellar/maven/3.8.6/libexec >> Java version: 1.8.0_322, vendor: Homebrew, runtime: >> /usr/local/Cellar/openjdk@8/1.8.0+322/libexec/openjdk.jdk/Contents/Home/jre >> Default locale: en_US, platform encoding: UTF-8 >> OS name: "mac os x", version: "12.4", arch: "x86_64", family: "mac" >> >> Anyone else? >> >> Gary >> >>> On Tue, Jun 28, 2022 at 8:00 PM Ralph Goers <[email protected]> >>> wrote: >>> >>> This is a vote to release Log4j 2.18.0, the next version of the Log4j 2 >>> project. >>> >>> Please download, test, and cast your votes on the log4j developers list. >>> [] +1, release the artifacts >>> [] -1, don't release because... >>> >>> The vote will remain open for 72 hours. All votes are welcome and we >>> encourage everyone to test the release, but only Logging PMC votes are >>> “officially” counted. As always, at least 3 +1 votes and more positive than >>> negative votes are required. >>> >>> Changes in this version include: >>> >>> >>> New Features >>> >>> • LOG4J2-3495: Add MutableThreadContextMapFilter. >>> • LOG4J2-3472: Add support for custom LMAX disruptor WaitStrategy >>> configuration. >>> • LOG4J2-3419: Add support for custom Log4j 1.x levels. >>> • LOG4J2-3440: Add support for adding and retrieving appenders in >>> Log4j 1.x bridge. >>> • LOG4J2-3362: Add support for Jakarta Mail API in the SMTP appender. >>> • LOG4J2-3483: Add support for Apache Extras' RollingFileAppender in >>> Log4j 1.x bridge. >>> • LOG4J2-3538: Add support for 24 colors in highlighting Thanks to >>> Pavel_K. >>> >>> Fixed Bugs >>> >>> • LOG4J2-3339: DirectWriteRolloverStrategy should use the current >>> time when creating files. >>> • LOG4J2-3534: Fix LevelRangeFilterBuilder to align with log4j1's >>> behavior. >>> • LOG4J2-3527: Don't use Paths.get() to avoid circular file systems. >>> • LOG4J2-3490: The DirectWriteRolloverStrategy was not detecting the >>> correct index to use during startup. >>> • LOG4J2-3432: SizeBasedTriggeringPolicy would fail to rename files >>> properly when integer pattern contained a leading zero. >>> • LOG4J2-3491: Async Loggers were including the location information >>> by default. Thanks to Avihai Marchiano. >>> • LOG4J2-1376: Allow enterprise id to be an OID fragment. >>> • LOG4J2-3493: ClassArbiter's newBuilder method referenced the wrong >>> class. Thanks to Dmytro Voloshyn. >>> • LOG4J2-3481: HttpWatcher did not pass credentials when polling. >>> • LOG4J2-3482: UrlConnectionFactory.createConnection now accepts an >>> AuthorizationProvider as a parameter. >>> • LOG4J2-3477: Add the missing context stack to JsonLayout template. >>> Thanks to filipc. >>> • LOG4J2-3393: Improve JsonTemplateLayout performance. >>> • LOG4J2-3424: Properties defined in configuration using a value >>> attribute (as opposed to element) are read correctly. >>> • LOG4J2-3413: Fix resolution of non-Log4j properties. >>> • LOG4J2-3423: JAR file containing Log4j configuration isn't closed. >>> Thanks to Radim Tlusty. >>> • LOG4J2-3425: Syslog appender lacks the SocketOptions setting. >>> Thanks to Jiří Smolík. >>> • : Improve validation and reporting of configuration errors. >>> • : Log4j 1.2 bridge should generate Log4j 2.x messages based on the >>> parameter runtime type. >>> • LOG4J2-3426: Log4j 1.2 bridge should not wrap components >>> unnecessarily. Thanks to Pooja Pandey. >>> • LOG4J2-3418: Fixes Spring Boot logging system registration in a >>> multi-application environment. >>> • LOG4J2-3040: Avoid ClassCastException in JeroMqManager with custom >>> LoggerContextFactory #791. Thanks to LF-Lin. >>> • : Fix minor typo #792. Thanks to LF-Lin. >>> • LOG4J2-3439: Fixes default SslConfiguration, when a custom keystore >>> is used. Thanks to Jayesh Netravali. >>> • LOG4J2-3447: Fixes appender concurrency problems in Log4j 1.x >>> bridge. Thanks to Pooja Pandey. >>> • LOG4J2-3452: Fix and test for race condition in FileUtils.mkdir(). >>> Thanks to Stefan Vodita. >>> • LOG4J2-3458: LocalizedMessage logs misleading errors on the console. >>> • LOG4J2-3359: Fixes the syslog appender in Log4j 1.x bridge, when >>> used with a custom layout. Thanks to Tukesh. >>> • LOG4J2-3359: log4j-1.2-api 2.17.2 throws NullPointerException while >>> removing appender with name as null. Thanks to Rajesh. >>> • LOG4J2-2872: Fix problem with non-uppercase custom levels. Thanks >>> to Alla Gofman. >>> • LOG4J2-3475: Add missing message parameterization in RegexFilter. >>> Thanks to Jeremy Lin. >>> • LOG4J2-3428: Update 3rd party dependencies for 2.18.0. >>> • LOG4J2-3531: Fix parsing error, when XInclude is disabled. Thanks >>> to Simo Nikula. >>> • LOG4J2-3537: Fixes problem with wrong ANSI escape code for bright >>> colors Thanks to Pavel_K. >>> >>> Changes >>> >>> • LOG4J2-3536: Upgrade the Flume Appender to Flume 1.10.0 >>> • LOG4J2-3516: Move perf tests to log4j-core-its >>> • LOG4J2-3506: Support Spring 2.6.x. >>> • LOG4J2-3473: Make the default disruptor WaitStrategy used by Async >>> Loggers garbage-free. >>> • LOG4J2-3476: Do not throw UnsupportedOperationException when JUL >>> ApiLogger::setLevel is called. >>> • LOG4J2-3427: Improves ServiceLoader support on servlet containers. >>> >>> >>> Tag: >>> a) for a new copy do "git clone >>> https://github.com/apache/logging-log4j2.git and then "git checkout >>> tags/log4j-2.18.0-rc1” or just "git clone -b log4j-2.18.0-rc1 >>> https://github.com/apache/logging-log4j2.git" >>> b) for an existing working copy to “git pull” and then “git checkout >>> tags/log4j-2.18.0-rc1” >>> >>> Web Site: https://logging.staged.apache.org/log4j/2.x/index.html. >>> >>> Maven Artifacts: >>> https://repository.apache.org/content/repositories/orgapachelogging-1086/ >>> >>> Distribution archives: https://dist.apache.org/repos/dist/dev/logging/log4j/ >>> >>> You may download all the Maven artifacts by executing: >>> wget -e robots=off --cut-dirs=7 -nH -r -p -np --no-check-certificate >>> https://repository.apache.org/content/repositories/orgapachelogging-1086/org/apache/logging/log4j/ >>> >>> Ralph >
