[ 
https://issues.apache.org/jira/browse/SUREFIRE-1659?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16864660#comment-16864660
 ] 

Tibor Digana commented on SUREFIRE-1659:
----------------------------------------

[~Srdo]
[~rkraneis]
I think this is caused by eager initialization of {{Launcher}} in Surefire 
class {{JUnitPlatformProvider}}.
You can contribute in Surefire project at GitHub and fix it in a new pulrequest.
Try to encapsulate {{launcher}}, {{filters}} and {{configurationParameters}} 
and initialize lazily in a new private method. The method {{invoke( Object 
forkTestSet )}} should call {{startCapture( ( ConsoleOutputReceiver ) 
runListener )}} first and then lazy initialization.

> Log4j logger in TestExecutionListener corrupts Surefire's STDOUT.
> -----------------------------------------------------------------
>
>                 Key: SUREFIRE-1659
>                 URL: https://issues.apache.org/jira/browse/SUREFIRE-1659
>             Project: Maven Surefire
>          Issue Type: Bug
>    Affects Versions: 3.0.0-M3
>            Reporter: Stig Rohde Døssing
>            Priority: Major
>         Attachments: surefire-stdout-corrupt.zip
>
>
> I have a project that registers a JUnit 5 TestExecutionListener. The 
> TestExecutionListener contains an SLF4j Logger, using Log4j2 as the 
> underlying library. There is a log4j2.xml on the classpath, logging to 
> console, and Surefire is set up to redirect output.
> Running the tests gives the following result.
> {quote}
> [WARNING] Corrupted STDOUT by directly writing to native stream in forked JVM 
> 1. See FAQ web page and the dump file ...
> {quote}
> I've attached a minimal reproduction.
> Doing either of the following eliminates the error:
> * Not having the log4j2.xml on the classpath
> * Not having the Logger in the TestExecutionListener



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to