Skip to content

Commit 9794be8

Browse files
committed
Fix major Java version detection.
1 parent e959c3c commit 9794be8

File tree

2 files changed

+20
-7
lines changed

2 files changed

+20
-7
lines changed

src/main/java/org/codehaus/plexus/archiver/zip/AbstractZipArchiver.java

+10-7
Original file line numberDiff line numberDiff line change
@@ -136,15 +136,18 @@ public abstract class AbstractZipArchiver
136136

137137
private static int getJavaVersion()
138138
{
139-
String javaSpecVersion = System.getProperty( "java.specification.version" );
140-
if ( javaSpecVersion.contains( "." ) )
141-
{//before jdk 9
142-
return Integer.parseInt( javaSpecVersion.split( "\\." )[1] );
143-
}
144-
else
139+
return majorJavaVersion( System.getProperty( "java.specification.version" ) );
140+
}
141+
142+
static int majorJavaVersion( final String javaSpecVersion )
143+
{
144+
final String[] components = javaSpecVersion.split( "\\." );
145+
final int version = Integer.parseInt( components[0] );
146+
if ( version == 1 )
145147
{
146-
return Integer.parseInt( javaSpecVersion );
148+
return Integer.parseInt( components[1] );
147149
}
150+
return version;
148151
}
149152

150153
public String getComment()

src/test/java/org/codehaus/plexus/archiver/zip/ZipArchiverTest.java

+10
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,16 @@ public class ZipArchiverTest
7777
extends BasePlexusArchiverTest
7878
{
7979

80+
public void testMajorJavaVersion()
81+
{
82+
assertEquals( 6, ZipArchiver.majorJavaVersion( "1.6" ) );
83+
assertEquals( 7, ZipArchiver.majorJavaVersion( "1.7" ) );
84+
assertEquals( 8, ZipArchiver.majorJavaVersion( "1.8" ) );
85+
assertEquals( 9, ZipArchiver.majorJavaVersion( "9" ) );
86+
assertEquals( 10, ZipArchiver.majorJavaVersion( "10" ) );
87+
assertEquals( 10, ZipArchiver.majorJavaVersion( "10.0.2" ) );
88+
}
89+
8090
public void testImplicitPermissions()
8191
throws IOException
8292
{

0 commit comments

Comments
 (0)