janklab / slf4m-jankalog

Modified forks of FLOSS logging libraries to support SLF4M
Other
0 stars 0 forks source link

log4j 1.2: Hybrid Maven/Ant build stuff - antrun ant junit tests breaking - MinimumTestCase failed #21

Open apjanke opened 2 years ago

apjanke commented 2 years ago

The log4j 1.2.x Maven pom.xml delegates a bunch of its activity to ant using the Maven antrun plugin. I don't know why it does this; maybe mvn wasn't powerful enough back in 2007? Anyway, it's causing me trouble. Like, here's a test failure that's happening not in the Maven surefire plugin, but inside an ant task called from the antrun plugin, in mvn assembly:assembly:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.8:run (runAll) on project log4j: An Ant BuildException has occured: The following error occurred while executing this line:
[ERROR] /Users/janke/repos/slf4m-jankalog/src/opp/opp-munged/log4j-1.2.15/tests/build.xml:197: Test org.apache.log4j.MinimumTestCase failed
[ERROR] around Ant part ...<ant dir="tests" target="runAll">... @ 4:36 in /Users/janke/repos/slf4m-jankalog/src/opp/opp-munged/log4j-1.2.15/target/antrun/build-main.xml
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.8:run (runAll) on project log4j: An Ant BuildException has occured: The following error occurred while executing this line:
/Users/janke/repos/slf4m-jankalog/src/opp/opp-munged/log4j-1.2.15/tests/build.xml:197: Test org.apache.log4j.MinimumTestCase failed
around Ant part ...<ant dir="tests" target="runAll">... @ 4:36 in /Users/janke/repos/slf4m-jankalog/src/opp/opp-munged/log4j-1.2.15/target/antrun/build-main.xml
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:375)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:351)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)

I do not understand why this is happening, how to fix it, or how to get at ant's debug output here, without going out and fiddling with ant's build.xml.

The Maven antrun documentation discourages this hybrid approach, basically saying that antrun is for totally delegating the build to ant, but providing a Maven wrapper interface for it.

It is not the intention of this plugin to provide a means of polluting the POM, so it's encouraged to move all your Ant tasks to a build.xml file and just call it from the POM using Ant's task.

(Wait - log4j is an Apache project itself; why is it going against the apparent advice of the antrun plugin?) Or maybe I'm misinterpreting this sentence, and it actually means "hybrid use of Maven and Ant is fine, but don't pull your whole ant build.xml into the pom.xml and its XML document structure; keep them as separate files"?

Dunno if it'd be easier to fix this one issue inside ant, or try to pull the whole build in to Maven. I wish there were developer documentation in log4j about this design choice.

apjanke commented 2 years ago

Here's the underlying unit test failure, I think:

    [junit] Files [output/filtered] and [witness/simple] differ on line 26
    [junit] One reads:  [INFO - Messages should bear numbers 0 through 29.].
    [junit] Other reads:[FATAL - Message 25].

Now, that looks like actual incorrect behavior maybe. (Though why are the X in "output/X" and "witness/X" different?) Gonna have to figure this out before I do a release.

Here's the full stacktrace:


Minimum:
    [junit] Running org.apache.log4j.MinimumTestCase
    [junit] Testsuite: org.apache.log4j.MinimumTestCase
    [junit] Tests run: 1, Failures: 1, Errors: 0, Time elapsed: 0.064 sec
    [junit] Tests run: 1, Failures: 1, Errors: 0, Time elapsed: 0.064 sec
    [junit] ------------- Standard Output ---------------
    [junit] log4j: reset attribute= "false".
    [junit] log4j: Threshold ="null".
    [junit] log4j: Level value for root is  [OFF].
    [junit] log4j: root level set to OFF
    [junit] log4j: Class name: [org.apache.log4j.ConsoleAppender]
    [junit] log4j: Parsing layout of class: "org.apache.log4j.PatternLayout"
    [junit] log4j: Setting property [conversionPattern] to [%-5p %c{2} - %m%n].
    [junit] log4j: Adding appender named [D1] to category [root].
    [junit] log4j: setFile called: output/simple, false
    [junit] log4j: setFile ended
    [junit] Files [output/filtered] and [witness/simple] differ on line 26
    [junit] One reads:  [INFO - Messages should bear numbers 0 through 29.].
    [junit] Other reads:[FATAL - Message 25].
    [junit] ------------- ---------------- ---------------
    [junit]
    [junit] Testcase: simple took 0.059 sec
    [junit]     FAILED
    [junit] null
    [junit] junit.framework.AssertionFailedError
    [junit]     at org.apache.log4j.MinimumTestCase.simple(MinimumTestCase.java:79)
    [junit]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  7.880 s
[INFO] Finished at: 2022-09-14T22:52:25-04:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.8:run (runAll) on project log4j: An Ant BuildException has occured: The following error occurred while executing this line:
[ERROR] /Users/janke/repos/slf4m-jankalog/src/opp/opp-munged/log4j-1.2.15/tests/build.xml:197: Test org.apache.log4j.MinimumTestCase failed
[ERROR] around Ant part ...<ant dir="tests" target="runAll">... @ 4:36 in /Users/janke/repos/slf4m-jankalog/src/opp/opp-munged/log4j-1.2.15/target/antrun/build-main.xml
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.8:run (runAll) on project log4j: An Ant BuildException has occured: The following error occurred while executing this line:
/Users/janke/repos/slf4m-jankalog/src/opp/opp-munged/log4j-1.2.15/tests/build.xml:197: Test org.apache.log4j.MinimumTestCase failed
around Ant part ...<ant dir="tests" target="runAll">... @ 4:36 in /Users/janke/repos/slf4m-jankalog/src/opp/opp-munged/log4j-1.2.15/target/antrun/build-main.xml
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:375)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:351)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:171)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:163)
    at org.apache.maven.lifecycle.internal.MojoExecutor.executeForkedExecutions (MojoExecutor.java:508)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:345)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:171)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:163)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:294)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
    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.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.apache.maven.plugin.MojoExecutionException: An Ant BuildException has occured: The following error occurred while executing this line:
/Users/janke/repos/slf4m-jankalog/src/opp/opp-munged/log4j-1.2.15/tests/build.xml:197: Test org.apache.log4j.MinimumTestCase failed
around Ant part ...<ant dir="tests" target="runAll">... @ 4:36 in /Users/janke/repos/slf4m-jankalog/src/opp/opp-munged/log4j-1.2.15/target/antrun/build-main.xml
    at org.apache.maven.plugin.antrun.AntRunMojo.execute (AntRunMojo.java:342)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:370)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:351)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:171)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:163)
    at org.apache.maven.lifecycle.internal.MojoExecutor.executeForkedExecutions (MojoExecutor.java:508)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:345)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:171)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:163)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:294)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
    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.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.apache.tools.ant.BuildException: The following error occurred while executing this line:
/Users/janke/repos/slf4m-jankalog/src/opp/opp-munged/log4j-1.2.15/tests/build.xml:197: Test org.apache.log4j.MinimumTestCase failed
    at org.apache.tools.ant.ProjectHelper.addLocationToBuildException (ProjectHelper.java:568)
    at org.apache.tools.ant.taskdefs.Ant.execute (Ant.java:443)
    at org.apache.tools.ant.UnknownElement.execute (UnknownElement.java:292)
    at sun.reflect.GeneratedMethodAccessor69.invoke (Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute (DispatchUtils.java:106)
    at org.apache.tools.ant.Task.perform (Task.java:348)
    at org.apache.tools.ant.Target.execute (Target.java:435)
    at org.apache.tools.ant.Target.performTasks (Target.java:456)
    at org.apache.tools.ant.Project.executeSortedTargets (Project.java:1393)
    at org.apache.tools.ant.Project.executeTarget (Project.java:1364)
    at org.apache.maven.plugin.antrun.AntRunMojo.execute (AntRunMojo.java:313)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:370)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:351)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:171)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:163)
    at org.apache.maven.lifecycle.internal.MojoExecutor.executeForkedExecutions (MojoExecutor.java:508)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:345)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:171)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:163)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:294)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
    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.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: org.apache.tools.ant.BuildException: Test org.apache.log4j.MinimumTestCase failed
    at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.actOnTestResult (JUnitTask.java:1840)
    at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute (JUnitTask.java:837)
    at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeOrQueue (JUnitTask.java:1785)
    at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute (JUnitTask.java:785)
    at org.apache.tools.ant.UnknownElement.execute (UnknownElement.java:292)
    at sun.reflect.GeneratedMethodAccessor69.invoke (Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute (DispatchUtils.java:106)
    at org.apache.tools.ant.Task.perform (Task.java:348)
    at org.apache.tools.ant.Target.execute (Target.java:435)
    at org.apache.tools.ant.Target.performTasks (Target.java:456)
    at org.apache.tools.ant.Project.executeSortedTargets (Project.java:1393)
    at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets (SingleCheckExecutor.java:38)
    at org.apache.tools.ant.Project.executeTargets (Project.java:1248)
    at org.apache.tools.ant.taskdefs.Ant.execute (Ant.java:441)
    at org.apache.tools.ant.UnknownElement.execute (UnknownElement.java:292)
    at sun.reflect.GeneratedMethodAccessor69.invoke (Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:498)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute (DispatchUtils.java:106)
    at org.apache.tools.ant.Task.perform (Task.java:348)
    at org.apache.tools.ant.Target.execute (Target.java:435)
    at org.apache.tools.ant.Target.performTasks (Target.java:456)
    at org.apache.tools.ant.Project.executeSortedTargets (Project.java:1393)
    at org.apache.tools.ant.Project.executeTarget (Project.java:1364)
    at org.apache.maven.plugin.antrun.AntRunMojo.execute (AntRunMojo.java:313)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:370)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:351)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:171)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:163)
    at org.apache.maven.lifecycle.internal.MojoExecutor.executeForkedExecutions (MojoExecutor.java:508)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:345)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:171)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:163)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:294)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
    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.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
[ERROR]