-
Bug
-
Resolution: Fixed
-
P3
-
7
-
b06
-
x86
-
windows_7
-
Verified
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2222177 | 8 | Frederic Parain | P3 | Resolved | Fixed | b32 |
FULL PRODUCT VERSION :
java version "1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Linux, windows 7 64 bit, verified bug in openjdk source code
A DESCRIPTION OF THE PROBLEM :
getPlatformManagementInterfaces throws an exception when it attempts to populate a TreeSet of Class objects.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
The below class will always throw an exception:
public class Fail
{
public static void main(String[] args)
{
for (Class<?> c : java.lang.management.ManagementFactory.getPlatformManagementInterfaces())
{
System.out.println(c);
}
}
}
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
The method should successfully return the collection of interfaces it says it will return instead of always failing.
ACTUAL -
$ javac -cp . Fail.java && java -cp . Fail
Exception in thread "main" java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.Comparable
at java.util.TreeMap.compare(TreeMap.java:1188)
at java.util.TreeMap.put(TreeMap.java:531)
at java.util.TreeSet.add(TreeSet.java:255)
at java.lang.management.ManagementFactory.getPlatformManagementInterfaces(ManagementFactory.java:792)
at Fail.main(Fail.java:5)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
public class Fail
{
public static void main(String[] args)
{
for (Class<?> c : java.lang.management.ManagementFactory.getPlatformManagementInterfaces())
{
System.out.println(c);
}
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
The data being accessed cannot be retrieved from outside the java.lang.management package. The fix should be trivial (either use a HashSet instead of a TreeSet, or if sorting is really deemed desirable, provide a comparator for the treeset to use.)
java version "1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Linux, windows 7 64 bit, verified bug in openjdk source code
A DESCRIPTION OF THE PROBLEM :
getPlatformManagementInterfaces throws an exception when it attempts to populate a TreeSet of Class objects.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
The below class will always throw an exception:
public class Fail
{
public static void main(String[] args)
{
for (Class<?> c : java.lang.management.ManagementFactory.getPlatformManagementInterfaces())
{
System.out.println(c);
}
}
}
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
The method should successfully return the collection of interfaces it says it will return instead of always failing.
ACTUAL -
$ javac -cp . Fail.java && java -cp . Fail
Exception in thread "main" java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.Comparable
at java.util.TreeMap.compare(TreeMap.java:1188)
at java.util.TreeMap.put(TreeMap.java:531)
at java.util.TreeSet.add(TreeSet.java:255)
at java.lang.management.ManagementFactory.getPlatformManagementInterfaces(ManagementFactory.java:792)
at Fail.main(Fail.java:5)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
public class Fail
{
public static void main(String[] args)
{
for (Class<?> c : java.lang.management.ManagementFactory.getPlatformManagementInterfaces())
{
System.out.println(c);
}
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
The data being accessed cannot be retrieved from outside the java.lang.management package. The fix should be trivial (either use a HashSet instead of a TreeSet, or if sorting is really deemed desirable, provide a comparator for the treeset to use.)
- backported by
-
JDK-2222177 java.lang.management.ManagementFactory.getPlatformManagementInterfaces fails
-
- Resolved
-