You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Tibor Digana (JIRA)" <ji...@apache.org> on 2016/08/22 11:10:20 UTC

[jira] [Comment Edited] (SUREFIRE-1265) reuseForks=false fails on jdk-9-ea builds

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

Tibor Digana edited comment on SUREFIRE-1265 at 8/22/16 11:10 AM:
------------------------------------------------------------------

[~mmusgrov]
I have to remove the milestone 2.19.2 from this issue because of this misunderstanding.
I think the surefire concept regarding {{getSuitesIterator()}} should change but not now since we do not have much time.
I last time made big change which introduced communication between java processes using commands and this has emitted issue {{SUREFIRE-1255}}. So I don't want to go straight ahead with another big change in parallel. First of all I want to fix {{SUREFIRE-1255}} and mark surefire as stable a then I would change the concept of {{getSuitesIterator()}}. The problem is that this method operates with classes and the reason we are doing so is that we are filtering out classes which are not real JUnit test classes. IMHO this mechanism should be part of {{SurefireProvider}} and the main process should only filter classes on file-name level. And then we need to somehow differentiate between class which is not really annotated as test and filtered tests using {{org.junit.runner.manipulation.Filter}} because even if both result in zero tests the behavior might be different.
I think we should send some command to the main process saying that this class is not a test and don't report it.
To reach the goal we would need to have the commands and fully stable, which means again no reason to continue with this issue unless commands are fully working on Mac.
There is another problem which needs to be solved - {{RunListener}} which is not stable and reported last time in two tickets.


was (Author: tibor17):
[~mmusgrov]
I have to remove the milestone 2.19.2 from this issue because of this misunderstanding.
I think the surefire concept regarding {{getSuitesIterator()}} should change but not now since we do not have much time.
I last time made big change which introduced communication between java processes using commands and this has emitted issue {{SUREFIRE-1255}}. So I don't want to go straight ahead with another big change in parallel. First of all I want to fix {{SUREFIRE-1255}} and mark surefire as stable a then I would change the concept of {{getSuitesIterator()}}. The problem is that this method operates with classes and the reason we are doing so is that we are filtering out classes which are not real JUnit test classes. IMHO this mechanism should be part of {{SurefireProvider}} and the main process should only filter classes on file-name level. And then we need to somehow differentiate between class which is not really annotated as test and filtered tests using {{org.junit.runner.manipulation.Filter}} because even if both result in zero tests the behavior might be different.
To reach the goal we would need to have the commands and fully stable, which means again no reason to continue with this issue unless commands are fully working on Mac.

> reuseForks=false fails on jdk-9-ea builds
> -----------------------------------------
>
>                 Key: SUREFIRE-1265
>                 URL: https://issues.apache.org/jira/browse/SUREFIRE-1265
>             Project: Maven Surefire
>          Issue Type: Bug
>          Components: Maven Surefire Plugin
>    Affects Versions: 2.19.1
>            Reporter: Michael Musgrove
>            Assignee: Tibor Digana
>              Labels: jigsaw
>         Attachments: j9test.tar
>
>
> When I run any surefire test (with reuseForks=false) that uses java.sql classes on recent jdk-9 ea builds it fails with:
> [ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test (default-test) on project maven-surefire-plugin-example: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.19.1:test failed: java.lang.NoClassDefFoundError: java/sql/SQLException: java.sql.SQLException -> [Help 1]
> If I run it with reuseForks=true it works fine.
> This problem was introduced in jdk build 9-ea+122 (http://download.java.net/java/jdk9/changes/jdk-9+122.html) when the jigsaw team addressed: 
>     d20279be77d9	8154189	Deprivilege java.sql and java.sql.rowset module



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)