8212197: OpenDataException thrown when constructing CompositeData for StackTraceElement

Reviewed-by: alanb
diff --git a/src/java.management/share/classes/sun/management/StackTraceElementCompositeData.java b/src/java.management/share/classes/sun/management/StackTraceElementCompositeData.java
index 3212c06..2a2b096 100644
--- a/src/java.management/share/classes/sun/management/StackTraceElementCompositeData.java
+++ b/src/java.management/share/classes/sun/management/StackTraceElementCompositeData.java
@@ -78,14 +78,16 @@
         // CONTENTS OF THIS ARRAY MUST BE SYNCHRONIZED WITH
         // STACK_TRACE_ELEMENT_ATTRIBUTES!
         final Object[] stackTraceElementItemValues = {
-            ste.getClassLoaderName(),
-            ste.getModuleName(),
-            ste.getModuleVersion(),
+            // JDK 5 attributes
             ste.getClassName(),
             ste.getMethodName(),
             ste.getFileName(),
             ste.getLineNumber(),
             ste.isNativeMethod(),
+            // JDK 9 attributes
+            ste.getClassLoaderName(),
+            ste.getModuleName(),
+            ste.getModuleVersion(),
         };
         try {
             return new CompositeDataSupport(STACK_TRACE_ELEMENT_COMPOSITE_TYPE,
diff --git a/test/jdk/sun/management/StackTraceElementCompositeData/CompatibilityTest.java b/test/jdk/sun/management/StackTraceElementCompositeData/CompatibilityTest.java
index 13eeef9..e773fee 100644
--- a/test/jdk/sun/management/StackTraceElementCompositeData/CompatibilityTest.java
+++ b/test/jdk/sun/management/StackTraceElementCompositeData/CompatibilityTest.java
@@ -36,7 +36,7 @@
 
 /*
  * @test
- * @bug     8139587
+ * @bug     8139587 8212197
  * @modules java.management/sun.management
  * @summary Check backward compatibility of StackTraceElementCompositeData
  * @author  Jaroslav Bachorik
@@ -154,5 +154,16 @@
         assertEquals(ste.isNativeMethod(), false);
         assertEquals(ste.getLineNumber(), 123);
     }
+
+    @Test
+    public void testCompositeData() throws Exception {
+        StackTraceElement ste = new StackTraceElement("app",
+                                                      "m", "1.0",
+                                                      "p.MyClass", "myMethod",
+                                                      "MyClass.java", 123);
+        CompositeData cd = StackTraceElementCompositeData.toCompositeData(ste);
+        StackTraceElement ste1 = StackTraceElementCompositeData.from(cd);
+        assertEquals(ste, ste1);
+    }
 }