Skip to content

Commit 8311be9

Browse files
committed
Recognize Java-9-style version strings.
(part of #2571) ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=158747678
1 parent f7c641d commit 8311be9

File tree

2 files changed

+36
-8
lines changed

2 files changed

+36
-8
lines changed

android/guava-tests/test/com/google/common/io/CloserTest.java

+18-4
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,16 @@
1616

1717
package com.google.common.io;
1818

19+
import static com.google.common.collect.Iterables.getOnlyElement;
1920
import static com.google.common.truth.Truth.assertThat;
21+
import static java.lang.Integer.parseInt;
2022

2123
import com.google.common.base.MoreObjects;
2224
import com.google.common.base.Objects;
2325
import com.google.common.base.Splitter;
2426
import com.google.common.base.Throwables;
2527
import com.google.common.collect.ImmutableList;
2628
import com.google.common.collect.ImmutableSet;
27-
import com.google.common.collect.Iterables;
2829
import com.google.common.collect.Lists;
2930
import com.google.common.testing.TestLogHandler;
3031
import java.io.Closeable;
@@ -52,16 +53,29 @@ protected void setUp() throws Exception {
5253
@AndroidIncompatible // TODO(cpovirk): Look up Build.VERSION.SDK_INT reflectively.
5354
public void testCreate() {
5455
Closer closer = Closer.create();
55-
String javaVersion = System.getProperty("java.version");
56-
String secondPart = Iterables.get(Splitter.on('.').split(javaVersion), 1);
57-
int versionNumber = Integer.parseInt(secondPart);
56+
int versionNumber = parseInt(javaVersion());
5857
if (versionNumber < 7) {
5958
assertThat(closer.suppressor).isInstanceOf(Closer.LoggingSuppressor.class);
6059
} else {
6160
assertThat(closer.suppressor).isInstanceOf(Closer.SuppressingSuppressor.class);
6261
}
6362
}
6463

64+
@AndroidIncompatible // TODO(cpovirk): Look up Build.VERSION.SDK_INT reflectively.
65+
private static String javaVersion() {
66+
String javaVersion = System.getProperty("java.version");
67+
List<String> parts = Splitter.on('.').splitToList(javaVersion);
68+
// Format varies by version: http://openjdk.java.net/jeps/223
69+
if (parts.size() == 1) {
70+
// Java 9 style: majorversion-foo
71+
String major = getOnlyElement(parts);
72+
return major.replaceFirst("-.*", "");
73+
} else {
74+
// pre-Java 8 style: 1.majorversion
75+
return parts.get(1);
76+
}
77+
}
78+
6579
public void testNoExceptionsThrown() throws IOException {
6680
Closer closer = new Closer(suppressor);
6781

guava-tests/test/com/google/common/io/CloserTest.java

+18-4
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,16 @@
1616

1717
package com.google.common.io;
1818

19+
import static com.google.common.collect.Iterables.getOnlyElement;
1920
import static com.google.common.truth.Truth.assertThat;
21+
import static java.lang.Integer.parseInt;
2022

2123
import com.google.common.base.MoreObjects;
2224
import com.google.common.base.Objects;
2325
import com.google.common.base.Splitter;
2426
import com.google.common.base.Throwables;
2527
import com.google.common.collect.ImmutableList;
2628
import com.google.common.collect.ImmutableSet;
27-
import com.google.common.collect.Iterables;
2829
import com.google.common.collect.Lists;
2930
import com.google.common.testing.TestLogHandler;
3031
import java.io.Closeable;
@@ -52,16 +53,29 @@ protected void setUp() throws Exception {
5253
@AndroidIncompatible // TODO(cpovirk): Look up Build.VERSION.SDK_INT reflectively.
5354
public void testCreate() {
5455
Closer closer = Closer.create();
55-
String javaVersion = System.getProperty("java.version");
56-
String secondPart = Iterables.get(Splitter.on('.').split(javaVersion), 1);
57-
int versionNumber = Integer.parseInt(secondPart);
56+
int versionNumber = parseInt(javaVersion());
5857
if (versionNumber < 7) {
5958
assertThat(closer.suppressor).isInstanceOf(Closer.LoggingSuppressor.class);
6059
} else {
6160
assertThat(closer.suppressor).isInstanceOf(Closer.SuppressingSuppressor.class);
6261
}
6362
}
6463

64+
@AndroidIncompatible // TODO(cpovirk): Look up Build.VERSION.SDK_INT reflectively.
65+
private static String javaVersion() {
66+
String javaVersion = System.getProperty("java.version");
67+
List<String> parts = Splitter.on('.').splitToList(javaVersion);
68+
// Format varies by version: http://openjdk.java.net/jeps/223
69+
if (parts.size() == 1) {
70+
// Java 9 style: majorversion-foo
71+
String major = getOnlyElement(parts);
72+
return major.replaceFirst("-.*", "");
73+
} else {
74+
// pre-Java 8 style: 1.majorversion
75+
return parts.get(1);
76+
}
77+
}
78+
6579
public void testNoExceptionsThrown() throws IOException {
6680
Closer closer = new Closer(suppressor);
6781

0 commit comments

Comments
 (0)