Skip to content

Commit a6457aa

Browse files
author
mgricken
committed
Future-proofing for Oracle-branded JVMs. "Oracle" string
in java.vm.vendor is treated as "Sun" right now. M plt/src/edu/rice/cs/plt/reflect/JavaVersionTest.java M plt/src/edu/rice/cs/plt/reflect/JavaVersion.java M eclipse/lib/plt.jar M dynamicjava/lib/plt.jar M drjava/lib/javalanglevels-base.jar M drjava/lib/dynamicjava-base.jar M drjava/lib/plt.jar M drjava/src/edu/rice/cs/drjava/ui/DrJavaErrorHandler.java M javalanglevels/lib/plt.jar git-svn-id: file:///tmp/test-svn/trunk@5345 fe72c1cf-3628-48e9-8b72-1c46755d3cff
1 parent b3f94ce commit a6457aa

File tree

9 files changed

+45
-4
lines changed

9 files changed

+45
-4
lines changed

drjava/lib/dynamicjava-base.jar

448 Bytes
Binary file not shown.

drjava/lib/javalanglevels-base.jar

-7 Bytes
Binary file not shown.

drjava/lib/plt.jar

25 Bytes
Binary file not shown.

drjava/src/edu/rice/cs/drjava/ui/DrJavaErrorHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ else if (isSwingBugArrayIndexOufOfBoundsExceptionInCharWidth(thrown)) {
139139
* https://sourceforge.net/tracker/?func=detail&atid=438935&aid=2831821&group_id=44253
140140
* @return true if this is the Swing bug */
141141
public static boolean isSwingBugArrayIndexOufOfBoundsExceptionInCharWidth(Throwable thrown) {
142-
// only ignore on Sun JVMs
142+
// only ignore on Sun/Oracle JVMs
143143
if (!edu.rice.cs.plt.reflect.JavaVersion.CURRENT_FULL.vendor().
144144
equals(edu.rice.cs.plt.reflect.JavaVersion.VendorType.SUN)) return false;
145145

dynamicjava/lib/plt.jar

25 Bytes
Binary file not shown.

eclipse/lib/plt.jar

1.67 KB
Binary file not shown.

javalanglevels/lib/plt.jar

179 Bytes
Binary file not shown.

plt/src/edu/rice/cs/plt/reflect/JavaVersion.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,8 @@ else if (java_vm_vendor.toLowerCase().contains("apple")) {
128128
vendor = VendorType.APPLE;
129129
vendorString = "Apple";
130130
}
131-
else if (java_vm_vendor.toLowerCase().contains("sun")) {
131+
else if (java_vm_vendor.toLowerCase().contains("sun") ||
132+
java_vm_vendor.toLowerCase().contains("oracle")) {
132133
vendor = VendorType.SUN;
133134
vendorString = "Sun";
134135
}
@@ -252,10 +253,10 @@ public FullVersion onlyMajorVersionAndVendor() {
252253
/**
253254
* Compare two versions. Major, maintenance, and update numbers are ordered sequentially. When comparing
254255
* two versions that are otherwise equivalent, early access releases precede betas, followed by
255-
* release candidates and stable releases. Within the release types, Unrecognized < OpenJDK < Apple < Sun.
256+
* release candidates and stable releases. Within the release types, Unrecognized < OpenJDK < Apple < Oracle.
256257
* Exception: Mint versions come before anything else.
257258
* Mint6-ea, Mint6-beta, Mint6-rc, Mint6, Mint7, ..., Java5, ...,
258-
* Java6-unrecognized, Java6-OpenJDK, Java6-Apple, Java6-Sun, ..., Java7
259+
* Java6-unrecognized, Java6-OpenJDK, Java6-Apple, Java6-Oracle, ..., Java7
259260
*/
260261
public int compareTo(FullVersion v) {
261262
if ((_vendor==VendorType.MINT) && (v._vendor!=VendorType.MINT)) {

plt/src/edu/rice/cs/plt/reflect/JavaVersionTest.java

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,46 @@ public void testParseFullVersionSun() {
209209
assertTrue(IterUtil.isEqual(sorter, IterUtil.make(v1, v2, v3, v4, v5, v6, v7)));
210210
}
211211

212+
public void testParseFullVersionOracle() {
213+
FullVersion v1 = parseFullVersion("1.4.2_10","Java(TM) 2 Runtime Environment, Standard Edition","Oracle");
214+
assertEquals(JAVA_1_4, v1.majorVersion());
215+
assertEquals("1.4.2_10", v1.versionString());
216+
217+
FullVersion v2 = parseFullVersion("1.4.3","Java(TM) 2 Runtime Environment, Standard Edition","Oracle");
218+
assertEquals(JAVA_1_4, v2.majorVersion());
219+
assertEquals("1.4.3", v2.versionString());
220+
221+
FullVersion v3 = parseFullVersion("1.5.0.1","Java(TM) 2 Runtime Environment, Standard Edition","Oracle");
222+
assertEquals(JAVA_5, v3.majorVersion());
223+
assertEquals("5.0_1", v3.versionString());
224+
225+
FullVersion v4 = parseFullVersion("1.5.1-beta","Java(TM) 2 Runtime Environment, Standard Edition","Oracle");
226+
assertEquals(JAVA_5, v4.majorVersion());
227+
assertEquals("5.1-beta", v4.versionString());
228+
229+
FullVersion v5 = parseFullVersion("1.5.1","Java(TM) 2 Runtime Environment, Standard Edition","Oracle");
230+
assertEquals(JAVA_5, v5.majorVersion());
231+
assertEquals("5.1", v5.versionString());
232+
233+
FullVersion v6 = parseFullVersion("1.6.0_2","Java(TM) 2 Runtime Environment, Standard Edition","Oracle");
234+
assertEquals(JAVA_6, v6.majorVersion());
235+
assertEquals("6.0_2", v6.versionString());
236+
237+
FullVersion v7 = parseFullVersion("1.6.0_11","Java(TM) 2 Runtime Environment, Standard Edition","Oracle");
238+
assertEquals("6.0_11", v7.versionString());
239+
240+
Set<FullVersion> sorter = new TreeSet<FullVersion>();
241+
sorter.add(v7);
242+
sorter.add(v5);
243+
sorter.add(v3);
244+
sorter.add(v1);
245+
sorter.add(v2);
246+
sorter.add(v4);
247+
sorter.add(v6);
248+
249+
assertTrue(IterUtil.isEqual(sorter, IterUtil.make(v1, v2, v3, v4, v5, v6, v7)));
250+
}
251+
212252
public void testParseFullVersionOpenJDK() {
213253
FullVersion v1 = parseFullVersion("1.4.2_10","OpenJDK Runtime Environment","Sun Microsystems Inc.");
214254
assertEquals(JAVA_1_4, v1.majorVersion());

0 commit comments

Comments
 (0)