[ 
https://issues.apache.org/jira/browse/SUREFIRE-1614?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Enrico Olivelli updated SUREFIRE-1614:
--------------------------------------
    Fix Version/s: 2.22.2

> JUnit Runner that writes to System.out corrupts Surefire's STDOUT when using 
> JUnit's Vintage Engine
> ---------------------------------------------------------------------------------------------------
>
>                 Key: SUREFIRE-1614
>                 URL: https://issues.apache.org/jira/browse/SUREFIRE-1614
>             Project: Maven Surefire
>          Issue Type: Bug
>          Components: JUnit 5.x support
>    Affects Versions: 2.22.1, 3.0.0-M2
>            Reporter: Andy Wilkinson
>            Assignee: Christian Stein
>            Priority: Major
>             Fix For: 3.0.0-M3, 2.22.2
>
>         Attachments: surefire-stream-corruption-bug.zip
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> When JUnit Jupiter's Vintage Engine is used to run tests written using the 
> JUnit 4 API, output to the console from a {{TestRunner}} results in 
> Surefire's STDOUT being corrupted:
> {noformat}
> [WARNING] Corrupted STDOUT by directly writing to native stream in forked JVM 
> 1. See FAQ web page and the dump file […]{noformat}
> Note that the test runner is simply calling {{System.out}}. This is to 
> simulate the real world setup where the runner performs some logging that 
> ultimately results in a console appender calling {{System.out}}. The same 
> arrangement does not cause a problem when run using JUnit 4. An initial 
> investigation suggests that the Vintage Engine calls the custom 
> {{TestRunner}} earlier and, it would appear, at a time when Surefire cannot 
> tolerate output to {{System.out}}.
> I have attached a minimal project that reproduces the problem. Running 
> {{./mvnw -Pjunit5 test}} will reproduce the corruption. Running {{./mvnw 
> -Pjunit4 test}} will not.



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

Reply via email to