jdk/src/java.management/share/classes/sun/management/ThreadInfoCompositeData.java
--- a/jdk/src/java.management/share/classes/sun/management/ThreadInfoCompositeData.java Tue Mar 15 13:48:26 2016 -0700
+++ b/jdk/src/java.management/share/classes/sun/management/ThreadInfoCompositeData.java Thu Mar 17 19:04:16 2016 +0000
@@ -32,7 +32,6 @@
import javax.management.openmbean.CompositeData;
import javax.management.openmbean.CompositeDataSupport;
import javax.management.openmbean.OpenDataException;
-import javax.management.openmbean.OpenType;
/**
* A CompositeData for ThreadInfo for the local management support.
@@ -210,54 +209,16 @@
threadInfoCompositeType = (CompositeType)
MappedMXBeanType.toOpenType(ThreadInfo.class);
// Form a CompositeType for JDK 5.0 ThreadInfo version
- String[] itemNames =
- threadInfoCompositeType.keySet().toArray(new String[0]);
- int numV5Attributes = threadInfoItemNames.length -
- threadInfoV6Attributes.length - threadInfoV9Attributes.length;
- String[] v5ItemNames = new String[numV5Attributes];
- String[] v5ItemDescs = new String[numV5Attributes];
- OpenType<?>[] v5ItemTypes = new OpenType<?>[numV5Attributes];
- int i = 0;
- for (String n : itemNames) {
- if (isV5Attribute(n)) {
- v5ItemNames[i] = n;
- v5ItemDescs[i] = threadInfoCompositeType.getDescription(n);
- v5ItemTypes[i] = threadInfoCompositeType.getType(n);
- i++;
- }
- }
threadInfoV5CompositeType =
- new CompositeType("java.lang.management.ThreadInfo",
- "J2SE 5.0 java.lang.management.ThreadInfo",
- v5ItemNames,
- v5ItemDescs,
- v5ItemTypes);
-
-
- // Form a CompositeType for JDK 6.0 ThreadInfo version
- int numV6Attributes = threadInfoItemNames.length -
- threadInfoV9Attributes.length;
- String[] v6ItemNames = new String[numV6Attributes];
- String[] v6ItemDescs = new String[numV6Attributes];
- OpenType<?>[] v6ItemTypes = new OpenType<?>[numV6Attributes];
- i = 0;
- for (String n : itemNames) {
- if (isV5Attribute(n) || isV6Attribute(n)) {
- v6ItemNames[i] = n;
- v6ItemDescs[i] = threadInfoCompositeType.getDescription(n);
- v6ItemTypes[i] = threadInfoCompositeType.getType(n);
- i++;
- }
- }
+ TypeVersionMapper.getInstance().getVersionedCompositeType(
+ threadInfoCompositeType, TypeVersionMapper.V5
+ );
threadInfoV6CompositeType =
- new CompositeType("java.lang.management.ThreadInfo",
- "Java SE 6 java.lang.management.ThreadInfo",
- v6ItemNames,
- v6ItemDescs,
- v6ItemTypes);
-
+ TypeVersionMapper.getInstance().getVersionedCompositeType(
+ threadInfoCompositeType, TypeVersionMapper.V6
+ );
} catch (OpenDataException e) {
// Should never reach here
throw new AssertionError(e);
@@ -275,7 +236,7 @@
lockInfoCompositeType = cd.getCompositeType();
}
- private static boolean isV5Attribute(String itemName) {
+ static boolean isV5Attribute(String itemName) {
for (String n : threadInfoV6Attributes) {
if (itemName.equals(n)) {
return false;
@@ -289,7 +250,7 @@
return true;
}
- private static boolean isV6Attribute(String itemName) {
+ static boolean isV6Attribute(String itemName) {
for (String n : threadInfoV9Attributes) {
if (itemName.equals(n)) {
return false;
@@ -446,8 +407,8 @@
// check if cd is an older version
if (!isTypeMatched(threadInfoV5CompositeType, type) &&
!isTypeMatched(threadInfoV6CompositeType, type)) {
- throw new IllegalArgumentException(
- "Unexpected composite type for ThreadInfo");
+ throw new IllegalArgumentException(
+ "Unexpected composite type for ThreadInfo");
}
}