Re: [3/3] maven-surefire git commit: Revert "[SUREFIRE-1473] upgrade commons-lang3 to avoid NPE on jdk10"

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: [3/3] maven-surefire git commit: Revert "[SUREFIRE-1473] upgrade commons-lang3 to avoid NPE on jdk10"

olamy
locally

 mvn clean install
-Djdk.home=/Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home
-Djacoco.skip=true

Caused by: java.lang.ClassNotFoundException:
org.apache.commons.lang3.SystemUtils

at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466)

at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:566)

at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)

at
org.apache.maven.surefire.shadefire.booter.IsolatedClassLoader.loadClass(IsolatedClassLoader.java:97)

... 44 more

Caused by: java.lang.ClassNotFoundException:
org.apache.commons.lang3.SystemUtils

at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466)

at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:566)

at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)

at
org.apache.maven.surefire.shadefire.booter.IsolatedClassLoader.loadClass(IsolatedClassLoader.java:97)




On 18 February 2018 at 13:44, Tibor Digana <[hidden email]> wrote:

> The Jenkins CI was shutdown for several hours. So the HEAD was not taken.
> I can trigger the build manually.
>
> Cheers
> Tibor
>
> On Sun, Feb 18, 2018 at 4:39 AM, Tibor Digana <[hidden email]>
> wrote:
>
> > I will explain again everything.
> > Do not worry, please.
> >
> > The build won't fail if you use -Djdk.home=/path/to/jdk. We don't have to
> > force the users to change JDK if they are fine with 1.6.
> > The library commons-lang3:3.7 was especially needed during our testing
> but
> > not in the main code, therefore Java 1.6 is still fine for this plugin
> > because the "os.version" is not read from this library.
> > It is also written in README.md on how to build the project. It is also
> > safe for release plugin.
> > The Jenkins CI passed: https://builds.apache.org/job/
> > maven-wip/job/maven-surefire/job/SUREFIRE-1463/
> > The information in master is old one - not related to current HEAD on
> > master.
> > The reason is that the libraries can still use javac compiler with
> > "-source 1.6" but the integration tests are important, not the compiler.
> > Did you see this job?
> > https://builds.apache.org/job/maven-wip/job/maven-surefire/
> > job/SUREFIRE-1463/
> >
> > Cheers
> > Tibor
> >
> >
> > On Sun, Feb 18, 2018 at 4:24 AM, Olivier Lamy <[hidden email]> wrote:
> >
> >> and now master fail again with jdk10...
> >> Why are you reverting my changes?
> >> As said in an email I wanted to have something working with jdk10.
> >> So please first discuss on the email thread if you are not happy with my
> >> changes...
> >>
> >>
> >> On 18 February 2018 at 10:36, <[hidden email]> wrote:
> >>
> >> > Revert "[SUREFIRE-1473] upgrade commons-lang3 to avoid NPE on jdk10"
> >> >
> >> > This reverts commit 8bcf1f14a8697ef3359d7598fbd8062a687f2d5a.
> >> >
> >> >
> >> > Project: http://git-wip-us.apache.org/repos/asf/maven-surefire/repo
> >> > Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/
> >> > commit/5e732c6b
> >> > Tree: http://git-wip-us.apache.org/repos/asf/maven-surefire/tree/5
> >> e732c6b
> >> > Diff: http://git-wip-us.apache.org/repos/asf/maven-surefire/diff/5
> >> e732c6b
> >> >
> >> > Branch: refs/heads/master
> >> > Commit: 5e732c6b2a87026ac56032cc8b2b7e8e92e6aa7e
> >> > Parents: 3c41c55
> >> > Author: Tibor17 <[hidden email]>
> >> > Authored: Sun Feb 18 00:13:42 2018 +0100
> >> > Committer: Tibor17 <[hidden email]>
> >> > Committed: Sun Feb 18 00:13:42 2018 +0100
> >> >
> >> > ------------------------------------------------------------
> ----------
> >> >  pom.xml | 2 +-
> >> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >> > ------------------------------------------------------------
> ----------
> >> >
> >> >
> >> > http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/
> >> > 5e732c6b/pom.xml
> >> > ------------------------------------------------------------
> ----------
> >> > diff --git a/pom.xml b/pom.xml
> >> > index 2bcb0d7..3592b31 100644
> >> > --- a/pom.xml
> >> > +++ b/pom.xml
> >> > @@ -89,7 +89,7 @@
> >> >      <mavenVersion>2.2.1</mavenVersion>
> >> >      <!-- <shadedVersion>2.12.4</shadedVersion> commented out due to
> >> > https://issues.apache.org/jira/browse/MRELEASE-799 -->
> >> >      <mavenPluginPluginVersion>3.5</mavenPluginPluginVersion>
> >> > -    <commonsLang3Version>3.7</commonsLang3Version>
> >> > +    <commonsLang3Version>3.5</commonsLang3Version>
> >> >      <commonsIoVersion>2.5</commonsIoVersion>
> >> >      <mavenSharedUtilsVersion>0.9</mavenSharedUtilsVersion>
> >> >      <powermockVersion>2.0.0-beta.5</powermockVersion>
> >> >
> >> >
> >>
> >>
> >> --
> >> Olivier Lamy
> >> http://twitter.com/olamy | http://linkedin.com/in/olamy
> >>
> >
> >
>



--
Olivier Lamy
http://twitter.com/olamy | http://linkedin.com/in/olamy
Reply | Threaded
Open this post in threaded view
|

Re: [3/3] maven-surefire git commit: Revert "[SUREFIRE-1473] upgrade commons-lang3 to avoid NPE on jdk10"

Tibor Digana
commons-lang3:3.7 is used in internal tests only, because some tests are
only related to Java 9+, but it has nothing to do with plugin itself.
The plugin shades (re-packages) to another package with lang3:3.5.
The PpidChecker is using it but it does not use the field IS_JAVA_9. It
uses IS_OS_UNIX etc but not the Java Version etc.

We should both extract the jar files where the commons-lang3 was inlined
and repackaged by maven-shade-plugin and check min/max java version.

I run several tests with Java 10 and everything was successful.
I used in-plugin execution, forked mode on Surefire and still positive
result.

Let's check the bytecode now.


On Sun, Feb 18, 2018 at 12:54 PM, Olivier Lamy <[hidden email]> wrote:

> There is definitely something I don't understand with this configuration:
> <plugin>
>   <artifactId>maven-surefire-plugin</artifactId>
>   <dependencies>
>     <dependency>
>       <groupId>org.apache.maven.surefire</groupId>
>       <artifactId>surefire-shadefire</artifactId>
>       <version>2.12.4</version> <!-- ${shadedVersion}, but resolved due to
> https://issues.apache.org/jira/browse/MRELEASE-799 -->
>     </dependency>
>     <dependency>
>       <!-- todo remove in version 3.0. Hack only forces to download it into
> an empty local repo. -->
>       <groupId>org.apache.commons</groupId>
>       <artifactId>commons-lang3</artifactId>
>       <version>3.7</version>
>     </dependency>
>   </dependencies>
>   <configuration>
>     <includes>
>       <include>**/JUnit4SuiteTest.java</include>
>     </includes>
>     <!--todo in version 3.0 remove old commons-lang3 and use 3.7+ -->
>     <classpathDependencyExcludes>
>       <classpathDependencyExclude>org.apache.commons:commons-lang3</
> classpathDependencyExclude>
>     </classpathDependencyExcludes>
>     <additionalClasspathElements>
>       <additionalClasspathElement>${maven.repo.local}/org/apache/
> commons/commons-lang3/3.7/commons-lang3-3.7.jar</
> additionalClasspathElement>
>     </additionalClasspathElements>
>   </configuration>
>
>
> you don't need this hack to force download (commons-lang3 is a project
> dependency so it will be downloaded.
> Then you use classpathDependencyExcludes and additionalClasspathElements
> for the same artifact
>  AFICS PpidChecker or SystemUtils use it.
> Please can you explain?
>
>
>
> On 18 February 2018 at 13:58, Olivier Lamy <[hidden email]> wrote:
>
> > locally
> >
> >  mvn clean install -Djdk.home=/Library/Java/JavaVirtualMachines/jdk-10.
> jdk/Contents/Home
> > -Djacoco.skip=true
> >
> > Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang3.
> > SystemUtils
> >
> > at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466)
> >
> > at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:566)
> >
> > at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
> >
> > at org.apache.maven.surefire.shadefire.booter.
> > IsolatedClassLoader.loadClass(IsolatedClassLoader.java:97)
> >
> > ... 44 more
> >
> > Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang3.
> > SystemUtils
> >
> > at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466)
> >
> > at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:566)
> >
> > at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
> >
> > at org.apache.maven.surefire.shadefire.booter.
> > IsolatedClassLoader.loadClass(IsolatedClassLoader.java:97)
> >
> >
> >
> >
> > On 18 February 2018 at 13:44, Tibor Digana <[hidden email]>
> wrote:
> >
> >> The Jenkins CI was shutdown for several hours. So the HEAD was not
> taken.
> >> I can trigger the build manually.
> >>
> >> Cheers
> >> Tibor
> >>
> >> On Sun, Feb 18, 2018 at 4:39 AM, Tibor Digana <[hidden email]>
> >> wrote:
> >>
> >> > I will explain again everything.
> >> > Do not worry, please.
> >> >
> >> > The build won't fail if you use -Djdk.home=/path/to/jdk. We don't have
> >> to
> >> > force the users to change JDK if they are fine with 1.6.
> >> > The library commons-lang3:3.7 was especially needed during our testing
> >> but
> >> > not in the main code, therefore Java 1.6 is still fine for this plugin
> >> > because the "os.version" is not read from this library.
> >> > It is also written in README.md on how to build the project. It is
> also
> >> > safe for release plugin.
> >> > The Jenkins CI passed: https://builds.apache.org/job/
> >> > maven-wip/job/maven-surefire/job/SUREFIRE-1463/
> >> > The information in master is old one - not related to current HEAD on
> >> > master.
> >> > The reason is that the libraries can still use javac compiler with
> >> > "-source 1.6" but the integration tests are important, not the
> compiler.
> >> > Did you see this job?
> >> > https://builds.apache.org/job/maven-wip/job/maven-surefire/
> >> > job/SUREFIRE-1463/
> >> >
> >> > Cheers
> >> > Tibor
> >> >
> >> >
> >> > On Sun, Feb 18, 2018 at 4:24 AM, Olivier Lamy <[hidden email]>
> wrote:
> >> >
> >> >> and now master fail again with jdk10...
> >> >> Why are you reverting my changes?
> >> >> As said in an email I wanted to have something working with jdk10.
> >> >> So please first discuss on the email thread if you are not happy with
> >> my
> >> >> changes...
> >> >>
> >> >>
> >> >> On 18 February 2018 at 10:36, <[hidden email]> wrote:
> >> >>
> >> >> > Revert "[SUREFIRE-1473] upgrade commons-lang3 to avoid NPE on
> jdk10"
> >> >> >
> >> >> > This reverts commit 8bcf1f14a8697ef3359d7598fbd8062a687f2d5a.
> >> >> >
> >> >> >
> >> >> > Project: http://git-wip-us.apache.org/
> repos/asf/maven-surefire/repo
> >> >> > Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/
> >> >> > commit/5e732c6b
> >> >> > Tree: http://git-wip-us.apache.org/repos/asf/maven-surefire/tree/5
> >> >> e732c6b
> >> >> > Diff: http://git-wip-us.apache.org/repos/asf/maven-surefire/diff/5
> >> >> e732c6b
> >> >> >
> >> >> > Branch: refs/heads/master
> >> >> > Commit: 5e732c6b2a87026ac56032cc8b2b7e8e92e6aa7e
> >> >> > Parents: 3c41c55
> >> >> > Author: Tibor17 <[hidden email]>
> >> >> > Authored: Sun Feb 18 00:13:42 2018 +0100
> >> >> > Committer: Tibor17 <[hidden email]>
> >> >> > Committed: Sun Feb 18 00:13:42 2018 +0100
> >> >> >
> >> >> > ------------------------------------------------------------
> >> ----------
> >> >> >  pom.xml | 2 +-
> >> >> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >> >> > ------------------------------------------------------------
> >> ----------
> >> >> >
> >> >> >
> >> >> > http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/
> >> >> > 5e732c6b/pom.xml
> >> >> > ------------------------------------------------------------
> >> ----------
> >> >> > diff --git a/pom.xml b/pom.xml
> >> >> > index 2bcb0d7..3592b31 100644
> >> >> > --- a/pom.xml
> >> >> > +++ b/pom.xml
> >> >> > @@ -89,7 +89,7 @@
> >> >> >      <mavenVersion>2.2.1</mavenVersion>
> >> >> >      <!-- <shadedVersion>2.12.4</shadedVersion> commented out due
> to
> >> >> > https://issues.apache.org/jira/browse/MRELEASE-799 -->
> >> >> >      <mavenPluginPluginVersion>3.5</mavenPluginPluginVersion>
> >> >> > -    <commonsLang3Version>3.7</commonsLang3Version>
> >> >> > +    <commonsLang3Version>3.5</commonsLang3Version>
> >> >> >      <commonsIoVersion>2.5</commonsIoVersion>
> >> >> >      <mavenSharedUtilsVersion>0.9</mavenSharedUtilsVersion>
> >> >> >      <powermockVersion>2.0.0-beta.5</powermockVersion>
> >> >> >
> >> >> >
> >> >>
> >> >>
> >> >> --
> >> >> Olivier Lamy
> >> >> http://twitter.com/olamy | http://linkedin.com/in/olamy
> >> >>
> >> >
> >> >
> >>
> >
> >
> >
> > --
> > Olivier Lamy
> > http://twitter.com/olamy | http://linkedin.com/in/olamy
> >
>
>
>
> --
> Olivier Lamy
> http://twitter.com/olamy | http://linkedin.com/in/olamy
>
Reply | Threaded
Open this post in threaded view
|

Re: [3/3] maven-surefire git commit: Revert "[SUREFIRE-1473] upgrade commons-lang3 to avoid NPE on jdk10"

Tibor Digana
We must have something different.
For instance this is my java -version:

openjdk version "10-ea" 2018-03-20
OpenJDK Runtime Environment 18.3 (build 10-ea+39)
OpenJDK 64-Bit Server VM 18.3 (build 10-ea+39, mixed mode)

The unit test prints Java Home like this:

D:\Program Files\Java\jdk10
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed:
14.982 s - in BTest

@Test
public void test() throws InterruptedException {
    System.out.println(System.getProperty("java.home"));
    TimeUnit.SECONDS.sleep(15L);
}

I tried with several configurations and changed all of them:

<plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.21.0</version>
    <configuration>
        <!--<forkMode>perthread</forkMode>-->
        <forkCount>1</forkCount>
        <reuseForks>true</reuseForks>

        <threadCount>5</threadCount>
        <perCoreThreadCount>false</perCoreThreadCount>
    </configuration>
</plugin>





On Sun, Feb 18, 2018 at 1:46 PM, Tibor Digana <[hidden email]>
wrote:

> commons-lang3:3.7 is used in internal tests only, because some tests are
> only related to Java 9+, but it has nothing to do with plugin itself.
> The plugin shades (re-packages) to another package with lang3:3.5.
> The PpidChecker is using it but it does not use the field IS_JAVA_9. It
> uses IS_OS_UNIX etc but not the Java Version etc.
>
> We should both extract the jar files where the commons-lang3 was inlined
> and repackaged by maven-shade-plugin and check min/max java version.
>
> I run several tests with Java 10 and everything was successful.
> I used in-plugin execution, forked mode on Surefire and still positive
> result.
>
> Let's check the bytecode now.
>
>
> On Sun, Feb 18, 2018 at 12:54 PM, Olivier Lamy <[hidden email]> wrote:
>
>> There is definitely something I don't understand with this configuration:
>> <plugin>
>>   <artifactId>maven-surefire-plugin</artifactId>
>>   <dependencies>
>>     <dependency>
>>       <groupId>org.apache.maven.surefire</groupId>
>>       <artifactId>surefire-shadefire</artifactId>
>>       <version>2.12.4</version> <!-- ${shadedVersion}, but resolved due to
>> https://issues.apache.org/jira/browse/MRELEASE-799 -->
>>     </dependency>
>>     <dependency>
>>       <!-- todo remove in version 3.0. Hack only forces to download it
>> into
>> an empty local repo. -->
>>       <groupId>org.apache.commons</groupId>
>>       <artifactId>commons-lang3</artifactId>
>>       <version>3.7</version>
>>     </dependency>
>>   </dependencies>
>>   <configuration>
>>     <includes>
>>       <include>**/JUnit4SuiteTest.java</include>
>>     </includes>
>>     <!--todo in version 3.0 remove old commons-lang3 and use 3.7+ -->
>>     <classpathDependencyExcludes>
>>       <classpathDependencyExclude>org.apache.commons:commons-lang3</
>> classpathDependencyExclude>
>>     </classpathDependencyExcludes>
>>     <additionalClasspathElements>
>>       <additionalClasspathElement>${maven.repo.local}/org/apache/
>> commons/commons-lang3/3.7/commons-lang3-3.7.jar</additionalC
>> lasspathElement>
>>     </additionalClasspathElements>
>>   </configuration>
>>
>>
>> you don't need this hack to force download (commons-lang3 is a project
>> dependency so it will be downloaded.
>> Then you use classpathDependencyExcludes and additionalClasspathElements
>> for the same artifact
>>  AFICS PpidChecker or SystemUtils use it.
>> Please can you explain?
>>
>>
>>
>> On 18 February 2018 at 13:58, Olivier Lamy <[hidden email]> wrote:
>>
>> > locally
>> >
>> >  mvn clean install -Djdk.home=/Library/Java/JavaV
>> irtualMachines/jdk-10.jdk/Contents/Home
>> > -Djacoco.skip=true
>> >
>> > Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang3.
>> > SystemUtils
>> >
>> > at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466)
>> >
>> > at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:566)
>> >
>> > at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
>> >
>> > at org.apache.maven.surefire.shadefire.booter.
>> > IsolatedClassLoader.loadClass(IsolatedClassLoader.java:97)
>> >
>> > ... 44 more
>> >
>> > Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang3.
>> > SystemUtils
>> >
>> > at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466)
>> >
>> > at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:566)
>> >
>> > at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
>> >
>> > at org.apache.maven.surefire.shadefire.booter.
>> > IsolatedClassLoader.loadClass(IsolatedClassLoader.java:97)
>> >
>> >
>> >
>> >
>> > On 18 February 2018 at 13:44, Tibor Digana <[hidden email]>
>> wrote:
>> >
>> >> The Jenkins CI was shutdown for several hours. So the HEAD was not
>> taken.
>> >> I can trigger the build manually.
>> >>
>> >> Cheers
>> >> Tibor
>> >>
>> >> On Sun, Feb 18, 2018 at 4:39 AM, Tibor Digana <[hidden email]>
>> >> wrote:
>> >>
>> >> > I will explain again everything.
>> >> > Do not worry, please.
>> >> >
>> >> > The build won't fail if you use -Djdk.home=/path/to/jdk. We don't
>> have
>> >> to
>> >> > force the users to change JDK if they are fine with 1.6.
>> >> > The library commons-lang3:3.7 was especially needed during our
>> testing
>> >> but
>> >> > not in the main code, therefore Java 1.6 is still fine for this
>> plugin
>> >> > because the "os.version" is not read from this library.
>> >> > It is also written in README.md on how to build the project. It is
>> also
>> >> > safe for release plugin.
>> >> > The Jenkins CI passed: https://builds.apache.org/job/
>> >> > maven-wip/job/maven-surefire/job/SUREFIRE-1463/
>> >> > The information in master is old one - not related to current HEAD on
>> >> > master.
>> >> > The reason is that the libraries can still use javac compiler with
>> >> > "-source 1.6" but the integration tests are important, not the
>> compiler.
>> >> > Did you see this job?
>> >> > https://builds.apache.org/job/maven-wip/job/maven-surefire/
>> >> > job/SUREFIRE-1463/
>> >> >
>> >> > Cheers
>> >> > Tibor
>> >> >
>> >> >
>> >> > On Sun, Feb 18, 2018 at 4:24 AM, Olivier Lamy <[hidden email]>
>> wrote:
>> >> >
>> >> >> and now master fail again with jdk10...
>> >> >> Why are you reverting my changes?
>> >> >> As said in an email I wanted to have something working with jdk10.
>> >> >> So please first discuss on the email thread if you are not happy
>> with
>> >> my
>> >> >> changes...
>> >> >>
>> >> >>
>> >> >> On 18 February 2018 at 10:36, <[hidden email]> wrote:
>> >> >>
>> >> >> > Revert "[SUREFIRE-1473] upgrade commons-lang3 to avoid NPE on
>> jdk10"
>> >> >> >
>> >> >> > This reverts commit 8bcf1f14a8697ef3359d7598fbd8062a687f2d5a.
>> >> >> >
>> >> >> >
>> >> >> > Project: http://git-wip-us.apache.org/r
>> epos/asf/maven-surefire/repo
>> >> >> > Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/
>> >> >> > commit/5e732c6b
>> >> >> > Tree: http://git-wip-us.apache.org/r
>> epos/asf/maven-surefire/tree/5
>> >> >> e732c6b
>> >> >> > Diff: http://git-wip-us.apache.org/r
>> epos/asf/maven-surefire/diff/5
>> >> >> e732c6b
>> >> >> >
>> >> >> > Branch: refs/heads/master
>> >> >> > Commit: 5e732c6b2a87026ac56032cc8b2b7e8e92e6aa7e
>> >> >> > Parents: 3c41c55
>> >> >> > Author: Tibor17 <[hidden email]>
>> >> >> > Authored: Sun Feb 18 00:13:42 2018 +0100
>> >> >> > Committer: Tibor17 <[hidden email]>
>> >> >> > Committed: Sun Feb 18 00:13:42 2018 +0100
>> >> >> >
>> >> >> > ------------------------------------------------------------
>> >> ----------
>> >> >> >  pom.xml | 2 +-
>> >> >> >  1 file changed, 1 insertion(+), 1 deletion(-)
>> >> >> > ------------------------------------------------------------
>> >> ----------
>> >> >> >
>> >> >> >
>> >> >> > http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/
>> >> >> > 5e732c6b/pom.xml
>> >> >> > ------------------------------------------------------------
>> >> ----------
>> >> >> > diff --git a/pom.xml b/pom.xml
>> >> >> > index 2bcb0d7..3592b31 100644
>> >> >> > --- a/pom.xml
>> >> >> > +++ b/pom.xml
>> >> >> > @@ -89,7 +89,7 @@
>> >> >> >      <mavenVersion>2.2.1</mavenVersion>
>> >> >> >      <!-- <shadedVersion>2.12.4</shadedVersion> commented out
>> due to
>> >> >> > https://issues.apache.org/jira/browse/MRELEASE-799 -->
>> >> >> >      <mavenPluginPluginVersion>3.5</mavenPluginPluginVersion>
>> >> >> > -    <commonsLang3Version>3.7</commonsLang3Version>
>> >> >> > +    <commonsLang3Version>3.5</commonsLang3Version>
>> >> >> >      <commonsIoVersion>2.5</commonsIoVersion>
>> >> >> >      <mavenSharedUtilsVersion>0.9</mavenSharedUtilsVersion>
>> >> >> >      <powermockVersion>2.0.0-beta.5</powermockVersion>
>> >> >> >
>> >> >> >
>> >> >>
>> >> >>
>> >> >> --
>> >> >> Olivier Lamy
>> >> >> http://twitter.com/olamy | http://linkedin.com/in/olamy
>> >> >>
>> >> >
>> >> >
>> >>
>> >
>> >
>> >
>> > --
>> > Olivier Lamy
>> > http://twitter.com/olamy | http://linkedin.com/in/olamy
>> >
>>
>>
>>
>> --
>> Olivier Lamy
>> http://twitter.com/olamy | http://linkedin.com/in/olamy
>>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: [3/3] maven-surefire git commit: Revert "[SUREFIRE-1473] upgrade commons-lang3 to avoid NPE on jdk10"

Tibor Digana
In reply to this post by olamy
Can you tell me how and where you reproduced this stacktrace?

Regarding the hack in *surefire-booter* I understand what happened and why
today the hack is not needed and why it does not cause any problem if I
remove it from the POM.
This happened because two related issues were fixed in November and January.
The hack was one of the solutions but the really good solution was done
later in src/test/java and the hack in POM was not removed.
https://issues.apache.org/jira/browse/SUREFIRE-1439
https://issues.apache.org/jira/browse/SUREFIRE-1463

Our entire problem was with this method:
*org.apache.commons.lang3.SystemUtils.isJavaVersionAtLeast()*
It threw NPE. Now we do not use it and we use JAVA_RECENT.atLeast( JAVA_9 )
instead.

After I have removed the obsolete hack in the POM, the tests in
*surefire-booter* still passed.

By looking at your stacktrace I think this is class loader issue but I do
not know the causes.
Can you test it again and print longer stacktrace with every cause?

Offtopic: master failed on different problem and not the java version
issue. The integration test, Surefire1295AttributeJvmCrashesToTestsIT,
which failed is using native library and it is not very stable. After it
has finished I will download the logs from surefire-its/target. Usually the
logs do not contain expected message. It is not related to JDK 9/10 because
this test was not stable before with Java 7/8.



On Sun, Feb 18, 2018 at 4:58 AM, Olivier Lamy <[hidden email]> wrote:

> locally
>
>  mvn clean install
> -Djdk.home=/Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home
> -Djacoco.skip=true
>
> Caused by: java.lang.ClassNotFoundException:
> org.apache.commons.lang3.SystemUtils
>
> at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466)
>
> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:566)
>
> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
>
> at
> org.apache.maven.surefire.shadefire.booter.IsolatedClassLoader.loadClass(
> IsolatedClassLoader.java:97)
>
> ... 44 more
>
> Caused by: java.lang.ClassNotFoundException:
> org.apache.commons.lang3.SystemUtils
>
> at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466)
>
> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:566)
>
> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
>
> at
> org.apache.maven.surefire.shadefire.booter.IsolatedClassLoader.loadClass(
> IsolatedClassLoader.java:97)
>
>
>
>
> On 18 February 2018 at 13:44, Tibor Digana <[hidden email]> wrote:
>
> > The Jenkins CI was shutdown for several hours. So the HEAD was not taken.
> > I can trigger the build manually.
> >
> > Cheers
> > Tibor
> >
> > On Sun, Feb 18, 2018 at 4:39 AM, Tibor Digana <[hidden email]>
> > wrote:
> >
> > > I will explain again everything.
> > > Do not worry, please.
> > >
> > > The build won't fail if you use -Djdk.home=/path/to/jdk. We don't have
> to
> > > force the users to change JDK if they are fine with 1.6.
> > > The library commons-lang3:3.7 was especially needed during our testing
> > but
> > > not in the main code, therefore Java 1.6 is still fine for this plugin
> > > because the "os.version" is not read from this library.
> > > It is also written in README.md on how to build the project. It is also
> > > safe for release plugin.
> > > The Jenkins CI passed: https://builds.apache.org/job/
> > > maven-wip/job/maven-surefire/job/SUREFIRE-1463/
> > > The information in master is old one - not related to current HEAD on
> > > master.
> > > The reason is that the libraries can still use javac compiler with
> > > "-source 1.6" but the integration tests are important, not the
> compiler.
> > > Did you see this job?
> > > https://builds.apache.org/job/maven-wip/job/maven-surefire/
> > > job/SUREFIRE-1463/
> > >
> > > Cheers
> > > Tibor
> > >
> > >
> > > On Sun, Feb 18, 2018 at 4:24 AM, Olivier Lamy <[hidden email]>
> wrote:
> > >
> > >> and now master fail again with jdk10...
> > >> Why are you reverting my changes?
> > >> As said in an email I wanted to have something working with jdk10.
> > >> So please first discuss on the email thread if you are not happy with
> my
> > >> changes...
> > >>
> > >>
> > >> On 18 February 2018 at 10:36, <[hidden email]> wrote:
> > >>
> > >> > Revert "[SUREFIRE-1473] upgrade commons-lang3 to avoid NPE on jdk10"
> > >> >
> > >> > This reverts commit 8bcf1f14a8697ef3359d7598fbd8062a687f2d5a.
> > >> >
> > >> >
> > >> > Project: http://git-wip-us.apache.org/repos/asf/maven-surefire/repo
> > >> > Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/
> > >> > commit/5e732c6b
> > >> > Tree: http://git-wip-us.apache.org/repos/asf/maven-surefire/tree/5
> > >> e732c6b
> > >> > Diff: http://git-wip-us.apache.org/repos/asf/maven-surefire/diff/5
> > >> e732c6b
> > >> >
> > >> > Branch: refs/heads/master
> > >> > Commit: 5e732c6b2a87026ac56032cc8b2b7e8e92e6aa7e
> > >> > Parents: 3c41c55
> > >> > Author: Tibor17 <[hidden email]>
> > >> > Authored: Sun Feb 18 00:13:42 2018 +0100
> > >> > Committer: Tibor17 <[hidden email]>
> > >> > Committed: Sun Feb 18 00:13:42 2018 +0100
> > >> >
> > >> > ------------------------------------------------------------
> > ----------
> > >> >  pom.xml | 2 +-
> > >> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > >> > ------------------------------------------------------------
> > ----------
> > >> >
> > >> >
> > >> > http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/
> > >> > 5e732c6b/pom.xml
> > >> > ------------------------------------------------------------
> > ----------
> > >> > diff --git a/pom.xml b/pom.xml
> > >> > index 2bcb0d7..3592b31 100644
> > >> > --- a/pom.xml
> > >> > +++ b/pom.xml
> > >> > @@ -89,7 +89,7 @@
> > >> >      <mavenVersion>2.2.1</mavenVersion>
> > >> >      <!-- <shadedVersion>2.12.4</shadedVersion> commented out due
> to
> > >> > https://issues.apache.org/jira/browse/MRELEASE-799 -->
> > >> >      <mavenPluginPluginVersion>3.5</mavenPluginPluginVersion>
> > >> > -    <commonsLang3Version>3.7</commonsLang3Version>
> > >> > +    <commonsLang3Version>3.5</commonsLang3Version>
> > >> >      <commonsIoVersion>2.5</commonsIoVersion>
> > >> >      <mavenSharedUtilsVersion>0.9</mavenSharedUtilsVersion>
> > >> >      <powermockVersion>2.0.0-beta.5</powermockVersion>
> > >> >
> > >> >
> > >>
> > >>
> > >> --
> > >> Olivier Lamy
> > >> http://twitter.com/olamy | http://linkedin.com/in/olamy
> > >>
> > >
> > >
> >
>
>
>
> --
> Olivier Lamy
> http://twitter.com/olamy | http://linkedin.com/in/olamy
>
Reply | Threaded
Open this post in threaded view
|

Re: [3/3] maven-surefire git commit: Revert "[SUREFIRE-1473] upgrade commons-lang3 to avoid NPE on jdk10"

olamy
well maybe ignore this test until it's fixed...
Anyway there are some flaky tests which machine dependant and this prevent
the build to continue on a ci machine I use
https://jenkins.webtide.net/job/sandbox/

java.lang.AssertionError: expected:<10000.0> but was:<11335.0>
at org.junit.Assert.fail(Assert.java:88)
at org.junit.Assert.failNotEquals(Assert.java:834)
at org.junit.Assert.assertEquals(Assert.java:575)
at org.junit.Assert.assertEquals(Assert.java:700)
at
org.apache.maven.surefire.junitcore.pc.ParallelComputerUtilTest.withoutShutdown(ParallelComputerUtilTest.java:984)

Could we use a range rather than a strict value for this test? (depends on
used machine but not sure we can rely on a strict timing)

To answer your question I easily reproduce the failure with master locally
with jdk10

 /Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home/bin/java
-version

java version "10-ea" 2018-03-20

Java(TM) SE Runtime Environment 18.3 (build 10-ea+42)

Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10-ea+42, mixed mode)


mvn -v

*Apache Maven 3.5.3-SNAPSHOT (99e66229aca82e12292d0e481d8e71158cc52ca4;
2018-02-08T09:39:06+10:00)*

Maven home: /Users/olamy/softs/maven/trunk

Java version: 1.8.0_121, vendor: Oracle Corporation

Java home:
/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre

Default locale: en_AU, platform encoding: UTF-8

OS name: "mac os x", version: "10.13.3", arch: "x86_64", family: "mac"


failure

java.lang.NoClassDefFoundError: org/apache/commons/lang3/SystemUtils

at org.apache.maven.surefire.booter.PpidChecker.canUse(PpidChecker.java:74)

at
org.apache.maven.surefire.booter.PpidCheckerTest.shouldNotFindSuchPID(PpidCheckerTest.java:100)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)

at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.base/java.lang.reflect.Method.invoke(Method.java:564)

at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)

at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)

at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)

at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)

at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)

at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)

at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)

at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)

at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)

at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)

at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)

at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)

at org.junit.runners.ParentRunner.run(ParentRunner.java:363)

at org.junit.runners.Suite.runChild(Suite.java:128)

at org.junit.runners.Suite.runChild(Suite.java:27)

at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)

at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)

at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)

at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)

at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)

at org.junit.runners.ParentRunner.run(ParentRunner.java:363)

at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:38)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)

at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.base/java.lang.reflect.Method.invoke(Method.java:564)

at
org.apache.maven.surefire.shadefire.junit.JUnitTestSet.execute(JUnitTestSet.java:95)

at
org.apache.maven.surefire.shadefire.junit.JUnit3Provider.executeTestSet(JUnit3Provider.java:121)

at
org.apache.maven.surefire.shadefire.junit.JUnit3Provider.invoke(JUnit3Provider.java:98)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)

at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.base/java.lang.reflect.Method.invoke(Method.java:564)

at
org.apache.maven.surefire.shadefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)

at
org.apache.maven.surefire.shadefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)

at
org.apache.maven.surefire.shadefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)

at
org.apache.maven.surefire.shadefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:103)

at
org.apache.maven.surefire.shadefire.booter.ForkedBooter.main(ForkedBooter.java:74)

Caused by: java.lang.ClassNotFoundException:
org.apache.commons.lang3.SystemUtils

at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466)

at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:566)

at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)

at
org.apache.maven.surefire.shadefire.booter.IsolatedClassLoader.loadClass(IsolatedClassLoader.java:97)

... 44 more

Caused by: java.lang.ClassNotFoundException:
org.apache.commons.lang3.SystemUtils

at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466)

at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:566)

at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)

at
org.apache.maven.surefire.shadefire.booter.IsolatedClassLoader.loadClass(IsolatedClassLoader.java:97)

... 44 more







On 19 February 2018 at 04:27, Tibor Digana <[hidden email]> wrote:

> Regarding the unstable integration test,
> Surefire1295AttributeJvmCrashesToTestsIT, I opened a discussion:
> https://github.com/michaeltandy/crashjvm/issues/1
> Not related to Java 9/10. It was unstable test before as well.
>
> On Sun, Feb 18, 2018 at 4:39 PM, Tibor Digana <[hidden email]>
> wrote:
>
> > Can you tell me how and where you reproduced this stacktrace?
> >
> > Regarding the hack in *surefire-booter* I understand what happened and
> > why today the hack is not needed and why it does not cause any problem
> if I
> > remove it from the POM.
> > This happened because two related issues were fixed in November and
> > January.
> > The hack was one of the solutions but the really good solution was done
> > later in src/test/java and the hack in POM was not removed.
> > https://issues.apache.org/jira/browse/SUREFIRE-1439
> > https://issues.apache.org/jira/browse/SUREFIRE-1463
> >
> > Our entire problem was with this method:
> > *org.apache.commons.lang3.SystemUtils.isJavaVersionAtLeast()*
> > It threw NPE. Now we do not use it and we use JAVA_RECENT.atLeast( JAVA_9
> > ) instead.
> >
> > After I have removed the obsolete hack in the POM, the tests in
> > *surefire-booter* still passed.
> >
> > By looking at your stacktrace I think this is class loader issue but I do
> > not know the causes.
> > Can you test it again and print longer stacktrace with every cause?
> >
> > Offtopic: master failed on different problem and not the java version
> > issue. The integration test, Surefire1295AttributeJvmCrashesToTestsIT,
> > which failed is using native library and it is not very stable. After it
> > has finished I will download the logs from surefire-its/target. Usually
> the
> > logs do not contain expected message. It is not related to JDK 9/10
> because
> > this test was not stable before with Java 7/8.
> >
> >
> >
> > On Sun, Feb 18, 2018 at 4:58 AM, Olivier Lamy <[hidden email]> wrote:
> >
> >> locally
> >>
> >>  mvn clean install
> >> -Djdk.home=/Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home
> >> -Djacoco.skip=true
> >>
> >> Caused by: java.lang.ClassNotFoundException:
> >> org.apache.commons.lang3.SystemUtils
> >>
> >> at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466)
> >>
> >> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:566)
> >>
> >> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
> >>
> >> at
> >> org.apache.maven.surefire.shadefire.booter.IsolatedClassLoad
> >> er.loadClass(IsolatedClassLoader.java:97)
> >>
> >> ... 44 more
> >>
> >> Caused by: java.lang.ClassNotFoundException:
> >> org.apache.commons.lang3.SystemUtils
> >>
> >> at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466)
> >>
> >> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:566)
> >>
> >> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
> >>
> >> at
> >> org.apache.maven.surefire.shadefire.booter.IsolatedClassLoad
> >> er.loadClass(IsolatedClassLoader.java:97)
> >>
> >>
> >>
> >>
> >> On 18 February 2018 at 13:44, Tibor Digana <[hidden email]>
> >> wrote:
> >>
> >> > The Jenkins CI was shutdown for several hours. So the HEAD was not
> >> taken.
> >> > I can trigger the build manually.
> >> >
> >> > Cheers
> >> > Tibor
> >> >
> >> > On Sun, Feb 18, 2018 at 4:39 AM, Tibor Digana <[hidden email]
> >
> >> > wrote:
> >> >
> >> > > I will explain again everything.
> >> > > Do not worry, please.
> >> > >
> >> > > The build won't fail if you use -Djdk.home=/path/to/jdk. We don't
> >> have to
> >> > > force the users to change JDK if they are fine with 1.6.
> >> > > The library commons-lang3:3.7 was especially needed during our
> testing
> >> > but
> >> > > not in the main code, therefore Java 1.6 is still fine for this
> plugin
> >> > > because the "os.version" is not read from this library.
> >> > > It is also written in README.md on how to build the project. It is
> >> also
> >> > > safe for release plugin.
> >> > > The Jenkins CI passed: https://builds.apache.org/job/
> >> > > maven-wip/job/maven-surefire/job/SUREFIRE-1463/
> >> > > The information in master is old one - not related to current HEAD
> on
> >> > > master.
> >> > > The reason is that the libraries can still use javac compiler with
> >> > > "-source 1.6" but the integration tests are important, not the
> >> compiler.
> >> > > Did you see this job?
> >> > > https://builds.apache.org/job/maven-wip/job/maven-surefire/
> >> > > job/SUREFIRE-1463/
> >> > >
> >> > > Cheers
> >> > > Tibor
> >> > >
> >> > >
> >> > > On Sun, Feb 18, 2018 at 4:24 AM, Olivier Lamy <[hidden email]>
> >> wrote:
> >> > >
> >> > >> and now master fail again with jdk10...
> >> > >> Why are you reverting my changes?
> >> > >> As said in an email I wanted to have something working with jdk10.
> >> > >> So please first discuss on the email thread if you are not happy
> >> with my
> >> > >> changes...
> >> > >>
> >> > >>
> >> > >> On 18 February 2018 at 10:36, <[hidden email]> wrote:
> >> > >>
> >> > >> > Revert "[SUREFIRE-1473] upgrade commons-lang3 to avoid NPE on
> >> jdk10"
> >> > >> >
> >> > >> > This reverts commit 8bcf1f14a8697ef3359d7598fbd8062a687f2d5a.
> >> > >> >
> >> > >> >
> >> > >> > Project: http://git-wip-us.apache.org/r
> >> epos/asf/maven-surefire/repo
> >> > >> > Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/
> >> > >> > commit/5e732c6b
> >> > >> > Tree: http://git-wip-us.apache.org/
> repos/asf/maven-surefire/tree/5
> >> > >> e732c6b
> >> > >> > Diff: http://git-wip-us.apache.org/
> repos/asf/maven-surefire/diff/5
> >> > >> e732c6b
> >> > >> >
> >> > >> > Branch: refs/heads/master
> >> > >> > Commit: 5e732c6b2a87026ac56032cc8b2b7e8e92e6aa7e
> >> > >> > Parents: 3c41c55
> >> > >> > Author: Tibor17 <[hidden email]>
> >> > >> > Authored: Sun Feb 18 00:13:42 2018 +0100
> >> > >> > Committer: Tibor17 <[hidden email]>
> >> > >> > Committed: Sun Feb 18 00:13:42 2018 +0100
> >> > >> >
> >> > >> > ------------------------------------------------------------
> >> > ----------
> >> > >> >  pom.xml | 2 +-
> >> > >> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >> > >> > ------------------------------------------------------------
> >> > ----------
> >> > >> >
> >> > >> >
> >> > >> > http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/
> >> > >> > 5e732c6b/pom.xml
> >> > >> > ------------------------------------------------------------
> >> > ----------
> >> > >> > diff --git a/pom.xml b/pom.xml
> >> > >> > index 2bcb0d7..3592b31 100644
> >> > >> > --- a/pom.xml
> >> > >> > +++ b/pom.xml
> >> > >> > @@ -89,7 +89,7 @@
> >> > >> >      <mavenVersion>2.2.1</mavenVersion>
> >> > >> >      <!-- <shadedVersion>2.12.4</shadedVersion> commented out
> due
> >> to
> >> > >> > https://issues.apache.org/jira/browse/MRELEASE-799 -->
> >> > >> >      <mavenPluginPluginVersion>3.5</mavenPluginPluginVersion>
> >> > >> > -    <commonsLang3Version>3.7</commonsLang3Version>
> >> > >> > +    <commonsLang3Version>3.5</commonsLang3Version>
> >> > >> >      <commonsIoVersion>2.5</commonsIoVersion>
> >> > >> >      <mavenSharedUtilsVersion>0.9</mavenSharedUtilsVersion>
> >> > >> >      <powermockVersion>2.0.0-beta.5</powermockVersion>
> >> > >> >
> >> > >> >
> >> > >>
> >> > >>
> >> > >> --
> >> > >> Olivier Lamy
> >> > >> http://twitter.com/olamy | http://linkedin.com/in/olamy
> >> > >>
> >> > >
> >> > >
> >> >
> >>
> >>
> >>
> >> --
> >> Olivier Lamy
> >> http://twitter.com/olamy | http://linkedin.com/in/olamy
> >>
> >
> >
>



--
Olivier Lamy
http://twitter.com/olamy | http://linkedin.com/in/olamy
Reply | Threaded
Open this post in threaded view
|

Re: [3/3] maven-surefire git commit: Revert "[SUREFIRE-1473] upgrade commons-lang3 to avoid NPE on jdk10"

olamy
ping.
You reverted my commit but this doesn't work!
As I don't want to turn as a "it doesn't work on my machine" I tried with
different machines and even provide you some links to different jenkins
freestyle build but nothing happened.
https://builds.apache.org/view/M-R/view/Maven/job/maven-surefire-fs/2/console

or
https://jenkins.webtide.net/job/sandbox/job/surefire-master-jdk8/4/console
seems to work with your Jenkinsfile and using withMaven but definitely
doesn't work locally or using jenkins freestyle (no time to debug the
reason but something evil maybe :-) )
So I really want to move forward and having a surefire ready to be used
with jdk10.
first jdk10 RC has been released and it doesn't work with Maven so we need
to do something.
What is the problem to use commons-lang3 3.7 and make surefire as 1.7
minimum.
I asked on the mailing list and didn't have any negative response so I did
the upgrade and you reverted it.
You reverted my commits without any explanations so maybe you have good
reasons but please explain!



On 19 February 2018 at 18:39, Olivier Lamy <[hidden email]> wrote:

> I setup a very simple freestyle build on ASF Jenkins and got the same
> error as I have locally:
> https://builds.apache.org/view/M-R/view/Maven/job/maven-
> surefire-fs/1/console
>
> On 19 February 2018 at 08:22, Olivier Lamy <[hidden email]> wrote:
>
>> well maybe ignore this test until it's fixed...
>> Anyway there are some flaky tests which machine dependant and this
>> prevent the build to continue on a ci machine I use
>> https://jenkins.webtide.net/job/sandbox/
>>
>> java.lang.AssertionError: expected:<10000.0> but was:<11335.0>
>> at org.junit.Assert.fail(Assert.java:88)
>> at org.junit.Assert.failNotEquals(Assert.java:834)
>> at org.junit.Assert.assertEquals(Assert.java:575)
>> at org.junit.Assert.assertEquals(Assert.java:700)
>> at org.apache.maven.surefire.junitcore.pc.ParallelComputerUtilT
>> est.withoutShutdown(ParallelComputerUtilTest.java:984)
>>
>> Could we use a range rather than a strict value for this test? (depends
>> on used machine but not sure we can rely on a strict timing)
>>
>> To answer your question I easily reproduce the failure with master
>> locally with jdk10
>>
>>  /Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home/bin/java
>> -version
>>
>> java version "10-ea" 2018-03-20
>>
>> Java(TM) SE Runtime Environment 18.3 (build 10-ea+42)
>>
>> Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10-ea+42, mixed mode)
>>
>>
>> mvn -v
>>
>> *Apache Maven 3.5.3-SNAPSHOT (99e66229aca82e12292d0e481d8e71158cc52ca4;
>> 2018-02-08T09:39:06+10:00)*
>>
>> Maven home: /Users/olamy/softs/maven/trunk
>>
>> Java version: 1.8.0_121, vendor: Oracle Corporation
>>
>> Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/
>> Home/jre
>>
>> Default locale: en_AU, platform encoding: UTF-8
>>
>> OS name: "mac os x", version: "10.13.3", arch: "x86_64", family: "mac"
>>
>>
>> failure
>>
>> java.lang.NoClassDefFoundError: org/apache/commons/lang3/SystemUtils
>>
>> at org.apache.maven.surefire.booter.PpidChecker.canUse(PpidChec
>> ker.java:74)
>>
>> at org.apache.maven.surefire.booter.PpidCheckerTest.shouldNotFi
>> ndSuchPID(PpidCheckerTest.java:100)
>>
>> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
>> Method)
>>
>> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invo
>> ke(NativeMethodAccessorImpl.java:62)
>>
>> at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.
>> invoke(DelegatingMethodAccessorImpl.java:43)
>>
>> at java.base/java.lang.reflect.Method.invoke(Method.java:564)
>>
>> at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(
>> FrameworkMethod.java:50)
>>
>> at org.junit.internal.runners.model.ReflectiveCallable.run(Refl
>> ectiveCallable.java:12)
>>
>> at org.junit.runners.model.FrameworkMethod.invokeExplosively(Fr
>> ameworkMethod.java:47)
>>
>> at org.junit.internal.runners.statements.InvokeMethod.evaluate(
>> InvokeMethod.java:17)
>>
>> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
>>
>> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit
>> 4ClassRunner.java:78)
>>
>> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit
>> 4ClassRunner.java:57)
>>
>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>>
>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>>
>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>>
>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>>
>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>>
>> at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>>
>> at org.junit.runners.Suite.runChild(Suite.java:128)
>>
>> at org.junit.runners.Suite.runChild(Suite.java:27)
>>
>> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
>>
>> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
>>
>> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
>>
>> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
>>
>> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
>>
>> at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
>>
>> at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:38)
>>
>> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
>> Method)
>>
>> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invo
>> ke(NativeMethodAccessorImpl.java:62)
>>
>> at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.
>> invoke(DelegatingMethodAccessorImpl.java:43)
>>
>> at java.base/java.lang.reflect.Method.invoke(Method.java:564)
>>
>> at org.apache.maven.surefire.shadefire.junit.JUnitTestSet.execu
>> te(JUnitTestSet.java:95)
>>
>> at org.apache.maven.surefire.shadefire.junit.JUnit3Provider.
>> executeTestSet(JUnit3Provider.java:121)
>>
>> at org.apache.maven.surefire.shadefire.junit.JUnit3Provider.
>> invoke(JUnit3Provider.java:98)
>>
>> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
>> Method)
>>
>> at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invo
>> ke(NativeMethodAccessorImpl.java:62)
>>
>> at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.
>> invoke(DelegatingMethodAccessorImpl.java:43)
>>
>> at java.base/java.lang.reflect.Method.invoke(Method.java:564)
>>
>> at org.apache.maven.surefire.shadefire.util.ReflectionUtils.inv
>> okeMethodWithArray(ReflectionUtils.java:189)
>>
>> at org.apache.maven.surefire.shadefire.booter.ProviderFactory$
>> ProviderProxy.invoke(ProviderFactory.java:165)
>>
>> at org.apache.maven.surefire.shadefire.booter.ProviderFactory.i
>> nvokeProvider(ProviderFactory.java:85)
>>
>> at org.apache.maven.surefire.shadefire.booter.ForkedBooter.runS
>> uitesInProcess(ForkedBooter.java:103)
>>
>> at org.apache.maven.surefire.shadefire.booter.ForkedBooter.main
>> (ForkedBooter.java:74)
>>
>> Caused by: java.lang.ClassNotFoundException:
>> org.apache.commons.lang3.SystemUtils
>>
>> at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466)
>>
>> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:566)
>>
>> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
>>
>> at org.apache.maven.surefire.shadefire.booter.IsolatedClassLoad
>> er.loadClass(IsolatedClassLoader.java:97)
>>
>> ... 44 more
>>
>> Caused by: java.lang.ClassNotFoundException:
>> org.apache.commons.lang3.SystemUtils
>>
>> at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466)
>>
>> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:566)
>>
>> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
>>
>> at org.apache.maven.surefire.shadefire.booter.IsolatedClassLoad
>> er.loadClass(IsolatedClassLoader.java:97)
>>
>> ... 44 more
>>
>>
>>
>>
>>
>>
>>
>> On 19 February 2018 at 04:27, Tibor Digana <[hidden email]>
>> wrote:
>>
>>> Regarding the unstable integration test,
>>> Surefire1295AttributeJvmCrashesToTestsIT, I opened a discussion:
>>> https://github.com/michaeltandy/crashjvm/issues/1
>>> Not related to Java 9/10. It was unstable test before as well.
>>>
>>> On Sun, Feb 18, 2018 at 4:39 PM, Tibor Digana <[hidden email]>
>>> wrote:
>>>
>>> > Can you tell me how and where you reproduced this stacktrace?
>>> >
>>> > Regarding the hack in *surefire-booter* I understand what happened and
>>> > why today the hack is not needed and why it does not cause any problem
>>> if I
>>> > remove it from the POM.
>>> > This happened because two related issues were fixed in November and
>>> > January.
>>> > The hack was one of the solutions but the really good solution was done
>>> > later in src/test/java and the hack in POM was not removed.
>>> > https://issues.apache.org/jira/browse/SUREFIRE-1439
>>> > https://issues.apache.org/jira/browse/SUREFIRE-1463
>>> >
>>> > Our entire problem was with this method:
>>> > *org.apache.commons.lang3.SystemUtils.isJavaVersionAtLeast()*
>>> > It threw NPE. Now we do not use it and we use JAVA_RECENT.atLeast(
>>> JAVA_9
>>> > ) instead.
>>> >
>>> > After I have removed the obsolete hack in the POM, the tests in
>>> > *surefire-booter* still passed.
>>> >
>>> > By looking at your stacktrace I think this is class loader issue but I
>>> do
>>> > not know the causes.
>>> > Can you test it again and print longer stacktrace with every cause?
>>> >
>>> > Offtopic: master failed on different problem and not the java version
>>> > issue. The integration test, Surefire1295AttributeJvmCrashesToTestsIT,
>>> > which failed is using native library and it is not very stable. After
>>> it
>>> > has finished I will download the logs from surefire-its/target.
>>> Usually the
>>> > logs do not contain expected message. It is not related to JDK 9/10
>>> because
>>> > this test was not stable before with Java 7/8.
>>> >
>>> >
>>> >
>>> > On Sun, Feb 18, 2018 at 4:58 AM, Olivier Lamy <[hidden email]>
>>> wrote:
>>> >
>>> >> locally
>>> >>
>>> >>  mvn clean install
>>> >> -Djdk.home=/Library/Java/JavaVirtualMachines/jdk-10.jdk/Contents/Home
>>> >> -Djacoco.skip=true
>>> >>
>>> >> Caused by: java.lang.ClassNotFoundException:
>>> >> org.apache.commons.lang3.SystemUtils
>>> >>
>>> >> at java.base/java.net.URLClassLoader.findClass(URLClassLoader.j
>>> ava:466)
>>> >>
>>> >> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:566)
>>> >>
>>> >> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
>>> >>
>>> >> at
>>> >> org.apache.maven.surefire.shadefire.booter.IsolatedClassLoad
>>> >> er.loadClass(IsolatedClassLoader.java:97)
>>> >>
>>> >> ... 44 more
>>> >>
>>> >> Caused by: java.lang.ClassNotFoundException:
>>> >> org.apache.commons.lang3.SystemUtils
>>> >>
>>> >> at java.base/java.net.URLClassLoader.findClass(URLClassLoader.j
>>> ava:466)
>>> >>
>>> >> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:566)
>>> >>
>>> >> at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:499)
>>> >>
>>> >> at
>>> >> org.apache.maven.surefire.shadefire.booter.IsolatedClassLoad
>>> >> er.loadClass(IsolatedClassLoader.java:97)
>>> >>
>>> >>
>>> >>
>>> >>
>>> >> On 18 February 2018 at 13:44, Tibor Digana <[hidden email]>
>>> >> wrote:
>>> >>
>>> >> > The Jenkins CI was shutdown for several hours. So the HEAD was not
>>> >> taken.
>>> >> > I can trigger the build manually.
>>> >> >
>>> >> > Cheers
>>> >> > Tibor
>>> >> >
>>> >> > On Sun, Feb 18, 2018 at 4:39 AM, Tibor Digana <
>>> [hidden email]>
>>> >> > wrote:
>>> >> >
>>> >> > > I will explain again everything.
>>> >> > > Do not worry, please.
>>> >> > >
>>> >> > > The build won't fail if you use -Djdk.home=/path/to/jdk. We don't
>>> >> have to
>>> >> > > force the users to change JDK if they are fine with 1.6.
>>> >> > > The library commons-lang3:3.7 was especially needed during our
>>> testing
>>> >> > but
>>> >> > > not in the main code, therefore Java 1.6 is still fine for this
>>> plugin
>>> >> > > because the "os.version" is not read from this library.
>>> >> > > It is also written in README.md on how to build the project. It is
>>> >> also
>>> >> > > safe for release plugin.
>>> >> > > The Jenkins CI passed: https://builds.apache.org/job/
>>> >> > > maven-wip/job/maven-surefire/job/SUREFIRE-1463/
>>> >> > > The information in master is old one - not related to current
>>> HEAD on
>>> >> > > master.
>>> >> > > The reason is that the libraries can still use javac compiler with
>>> >> > > "-source 1.6" but the integration tests are important, not the
>>> >> compiler.
>>> >> > > Did you see this job?
>>> >> > > https://builds.apache.org/job/maven-wip/job/maven-surefire/
>>> >> > > job/SUREFIRE-1463/
>>> >> > >
>>> >> > > Cheers
>>> >> > > Tibor
>>> >> > >
>>> >> > >
>>> >> > > On Sun, Feb 18, 2018 at 4:24 AM, Olivier Lamy <[hidden email]>
>>> >> wrote:
>>> >> > >
>>> >> > >> and now master fail again with jdk10...
>>> >> > >> Why are you reverting my changes?
>>> >> > >> As said in an email I wanted to have something working with
>>> jdk10.
>>> >> > >> So please first discuss on the email thread if you are not happy
>>> >> with my
>>> >> > >> changes...
>>> >> > >>
>>> >> > >>
>>> >> > >> On 18 February 2018 at 10:36, <[hidden email]> wrote:
>>> >> > >>
>>> >> > >> > Revert "[SUREFIRE-1473] upgrade commons-lang3 to avoid NPE on
>>> >> jdk10"
>>> >> > >> >
>>> >> > >> > This reverts commit 8bcf1f14a8697ef3359d7598fbd8062a687f2d5a.
>>> >> > >> >
>>> >> > >> >
>>> >> > >> > Project: http://git-wip-us.apache.org/r
>>> >> epos/asf/maven-surefire/repo
>>> >> > >> > Commit: http://git-wip-us.apache.org/repos/asf/maven-surefire/
>>> >> > >> > commit/5e732c6b
>>> >> > >> > Tree: http://git-wip-us.apache.org/r
>>> epos/asf/maven-surefire/tree/5
>>> >> > >> e732c6b
>>> >> > >> > Diff: http://git-wip-us.apache.org/r
>>> epos/asf/maven-surefire/diff/5
>>> >> > >> e732c6b
>>> >> > >> >
>>> >> > >> > Branch: refs/heads/master
>>> >> > >> > Commit: 5e732c6b2a87026ac56032cc8b2b7e8e92e6aa7e
>>> >> > >> > Parents: 3c41c55
>>> >> > >> > Author: Tibor17 <[hidden email]>
>>> >> > >> > Authored: Sun Feb 18 00:13:42 2018 +0100
>>> >> > >> > Committer: Tibor17 <[hidden email]>
>>> >> > >> > Committed: Sun Feb 18 00:13:42 2018 +0100
>>> >> > >> >
>>> >> > >> > ------------------------------------------------------------
>>> >> > ----------
>>> >> > >> >  pom.xml | 2 +-
>>> >> > >> >  1 file changed, 1 insertion(+), 1 deletion(-)
>>> >> > >> > ------------------------------------------------------------
>>> >> > ----------
>>> >> > >> >
>>> >> > >> >
>>> >> > >> > http://git-wip-us.apache.org/repos/asf/maven-surefire/blob/
>>> >> > >> > 5e732c6b/pom.xml
>>> >> > >> > ------------------------------------------------------------
>>> >> > ----------
>>> >> > >> > diff --git a/pom.xml b/pom.xml
>>> >> > >> > index 2bcb0d7..3592b31 100644
>>> >> > >> > --- a/pom.xml
>>> >> > >> > +++ b/pom.xml
>>> >> > >> > @@ -89,7 +89,7 @@
>>> >> > >> >      <mavenVersion>2.2.1</mavenVersion>
>>> >> > >> >      <!-- <shadedVersion>2.12.4</shadedVersion> commented out
>>> due
>>> >> to
>>> >> > >> > https://issues.apache.org/jira/browse/MRELEASE-799 -->
>>> >> > >> >      <mavenPluginPluginVersion>3.5</mavenPluginPluginVersion>
>>> >> > >> > -    <commonsLang3Version>3.7</commonsLang3Version>
>>> >> > >> > +    <commonsLang3Version>3.5</commonsLang3Version>
>>> >> > >> >      <commonsIoVersion>2.5</commonsIoVersion>
>>> >> > >> >      <mavenSharedUtilsVersion>0.9</mavenSharedUtilsVersion>
>>> >> > >> >      <powermockVersion>2.0.0-beta.5</powermockVersion>
>>> >> > >> >
>>> >> > >> >
>>> >> > >>
>>> >> > >>
>>> >> > >> --
>>> >> > >> Olivier Lamy
>>> >> > >> http://twitter.com/olamy | http://linkedin.com/in/olamy
>>> >> > >>
>>> >> > >
>>> >> > >
>>> >> >
>>> >>
>>> >>
>>> >>
>>> >> --
>>> >> Olivier Lamy
>>> >> http://twitter.com/olamy | http://linkedin.com/in/olamy
>>> >>
>>> >
>>> >
>>>
>>
>>
>>
>> --
>> Olivier Lamy
>> http://twitter.com/olamy | http://linkedin.com/in/olamy
>>
>
>
>
> --
> Olivier Lamy
> http://twitter.com/olamy | http://linkedin.com/in/olamy
>



--
Olivier Lamy
http://twitter.com/olamy | http://linkedin.com/in/olamy