maven-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tibor Digana <tibordig...@apache.org>
Subject Re: [3/3] maven-surefire git commit: Revert "[SUREFIRE-1473] upgrade commons-lang3 to avoid NPE on jdk10"
Date Sun, 18 Feb 2018 13:16:26 GMT
Olivier,

I check the Major Version of Java in bytecode of the following libraries
and all which contain shaded commons-lang3 are from version 3..5 because
they have code 0x32 which is Java 1.6.
https://en.wikipedia.org/wiki/Java_class_file

This means we must have a problem with JDK or the use case.
Can you post outcome of "java -version"?

surefire-booter-2.21.0.jar
maven-surefire-common-2.21.0.jar
maven-failsafe-plugin-2.21.0.jar
00000000: CA FE BA BE 00 00 00 *32*|02 76 01 00 44 6F 72 67  | Ęţşľ   2 v
Dorg




On Sun, Feb 18, 2018 at 1:52 PM, Tibor Digana <tibordigana@apache.org>
wrote:

> 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 <tibordigana@apache.org>
> 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 <olamy@apache.org> 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 <olamy@apache.org> 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.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.
>>> > 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.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.
>>> > IsolatedClassLoader.loadClass(IsolatedClassLoader.java:97)
>>> >
>>> >
>>> >
>>> >
>>> > On 18 February 2018 at 13:44, Tibor Digana <tibordigana@apache.org>
>>> 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 <tibordigana@apache.org
>>> >
>>> >> 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 <olamy@apache.org>
>>> 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, <tibordigana@apache.org>
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 <tibordigana@apache.org>
>>> >> >> > Authored: Sun Feb 18 00:13:42 2018 +0100
>>> >> >> > Committer: Tibor17 <tibordigana@apache.org>
>>> >> >> > 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
>>>
>>
>>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message