[
https://issues.apache.org/jira/browse/LANG-1365?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16266263#comment-16266263
]
Sanne Grinovero commented on LANG-1365:
---------------------------------------
Hi [~garydgregory]!
great question. Recent Maven versions require JDK7 but it seems that the
Surefire plugin - more specifically - is being maintained with strict
compatibility for JDK6; I don't know why. Personally I don't care: all of our
projects are on Java 8, but we're using Maven to build and would need to find a
way to get this fix in there as we can't currently test JDK10 prereleases.
I'm just trying to mediate what I suspect the Surefire maintainers will need;
please see SUREFIRE-1439 : I reported the problem but didn't get a suggestion
regarding a course of action. I guess another alternative would be for
Surefire to stop shading the Commons Lang library, so that people could
override the version at runtime, but I guess that's likely to have side effects
on many more users.
Another reasonable path would be to convince the Surefire team to drop Java 6
support, but I suspect asking for a simple backport here would be easier.
> Fix NullPointerException in isJavaVersionAtLeast on Java 10, add
> SystemUtils.IS_JAVA_10, add JavaVersion.JAVA_10
> ----------------------------------------------------------------------------------------------------------------
>
> Key: LANG-1365
> URL: https://issues.apache.org/jira/browse/LANG-1365
> Project: Commons Lang
> Issue Type: New Feature
> Components: lang.*
> Reporter: Gary Gregory
> Priority: Trivial
> Fix For: 3.7
>
>
> Now that Java 10 EA b29 is out, add {{SystemUtils.IS_JAVA_10}} and
> {{JavaVersion.JAVA_10}}.
> Fix this NPE:
> {noformat}
> java.lang.NullPointerException
> at
> org.apache.commons.lang3.SystemUtils.isJavaVersionAtLeast(SystemUtils.java:1654)
> at
> org.apache.commons.lang3.SystemUtilsTest.testIsJavaVersionAtLeast(SystemUtilsTest.java:434)
> at
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
> Source)
> at java.base/java.lang.reflect.Method.invoke(Unknown Source)
> 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.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
> at
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:539)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:761)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:461)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:207)
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)