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

Tibor Digana commented on SUREFIRE-1863:
----------------------------------------

[~peter..lawrey]

Is this issue the same with https://issues.apache.org/jira/browse/SUREFIRE-1815 
?

> Tests run in surefire can clear the thread interrupted flag silently when any 
> message is logged to the console.
> ---------------------------------------------------------------------------------------------------------------
>
>                 Key: SUREFIRE-1863
>                 URL: https://issues.apache.org/jira/browse/SUREFIRE-1863
>             Project: Maven Surefire
>          Issue Type: Bug
>          Components: Maven Surefire Plugin
>    Affects Versions: 3.0.0-M5
>            Reporter: Peter Lawrey
>            Assignee: Tibor Digana
>            Priority: Major
>
> Surefire-api clears the interrupted flag sometimes but not consistently in 
> any code which writes to the console.
> It is not expected that writing to the console would result in clearing the 
> interrupted flag nor is it easy to trace this is the cause when it does.
> The line of code causing this has a warning that it's result is ignored and 
> probably shouldn't be.
>  {{
> //noinspection ResultOfMethodCallIgnored
>  Thread.interrupted();
> }}
> The stack trace
> {{
>  Thread.interrupted() called
> at 
> org.apache.maven.surefire.booter.spi.LegacyMasterProcessChannelEncoder.encodeAndPrintEvent(LegacyMasterProcessChannelEncoder.java:310)
>  at 
> org.apache.maven.surefire.booter.spi.LegacyMasterProcessChannelEncoder.setOutErr(LegacyMasterProcessChannelEncoder.java:204)
>  at 
> org.apache.maven.surefire.booter.spi.LegacyMasterProcessChannelEncoder.stdOut(LegacyMasterProcessChannelEncoder.java:190)
>  at 
> org.apache.maven.surefire.api.booter.ForkingRunListener.writeTestOutput(ForkingRunListener.java:133)
>  at 
> org.apache.maven.surefire.api.report.ConsoleOutputCapture$ForwardingPrintStream.println(ConsoleOutputCapture.java:131)
>  at 
> net.openhft.chronicle.threads.DiskSpaceMonitor.pollDiskSpace(DiskSpaceMonitor.java:113)
> }}
> The last line of code calls System.out.println(abc);
>  
> Instead of discarding the interrupted flag, I suggest setting it again in a 
> finally block when exiting the sensitive code or it's not cleared 
> unexpectedly.
> If this is expected behaviour, I suggest producing a warning that it was 
> cleared so you work out why certain tests to detect the behaviour of an 
> interrupted thread, fail when run in surefire.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to