Merge
authormlarsson
Fri, 29 Apr 2016 04:44:08 +0200
changeset 38125 1ad0239b6e4a
parent 38123 04da6a12ab0d (diff)
parent 38124 c576864b4776 (current diff)
child 38127 2ab00cd4556e
Merge
--- a/hotspot/src/share/vm/compiler/directivesParser.cpp	Wed Apr 27 21:00:45 2016 +0900
+++ b/hotspot/src/share/vm/compiler/directivesParser.cpp	Fri Apr 29 04:44:08 2016 +0200
@@ -57,7 +57,7 @@
 }
 
 int DirectivesParser::parse_string(const char* text, outputStream* st) {
-  DirectivesParser cd(text, st);
+  DirectivesParser cd(text, st, false);
   if (cd.valid()) {
     return cd.install_directives();
   } else {
@@ -132,8 +132,8 @@
   }
 }
 
-DirectivesParser::DirectivesParser(const char* text, outputStream* st)
-: JSON(text, false, st), depth(0), current_directive(NULL), current_directiveset(NULL), _tmp_top(NULL), _tmp_depth(0) {
+DirectivesParser::DirectivesParser(const char* text, outputStream* st, bool silent)
+: JSON(text, silent, st), depth(0), current_directive(NULL), current_directiveset(NULL), _tmp_top(NULL), _tmp_depth(0) {
 #ifndef PRODUCT
   memset(stack, 0, MAX_DEPTH * sizeof(stack[0]));
 #endif
@@ -594,7 +594,7 @@
 
 #ifndef PRODUCT
 void DirectivesParser::test(const char* text, bool should_pass) {
-  DirectivesParser cd(text, tty);
+  DirectivesParser cd(text, tty, !VerboseInternalVMTests);
   if (should_pass) {
     assert(cd.valid() == true, "failed on a valid DirectivesParser string");
     if (VerboseInternalVMTests) {
--- a/hotspot/src/share/vm/compiler/directivesParser.hpp	Wed Apr 27 21:00:45 2016 +0900
+++ b/hotspot/src/share/vm/compiler/directivesParser.hpp	Fri Apr 29 04:44:08 2016 +0200
@@ -55,7 +55,7 @@
   int install_directives();
 
 private:
-  DirectivesParser(const char* text, outputStream* st);
+  DirectivesParser(const char* text, outputStream* st, bool silent);
   ~DirectivesParser();
 
   bool callback(JSON_TYPE t, JSON_VAL* v, uint level);
--- a/hotspot/src/share/vm/memory/heapInspection.cpp	Wed Apr 27 21:00:45 2016 +0900
+++ b/hotspot/src/share/vm/memory/heapInspection.cpp	Fri Apr 29 04:44:08 2016 +0200
@@ -24,6 +24,7 @@
 
 #include "precompiled.hpp"
 #include "classfile/classLoaderData.hpp"
+#include "classfile/moduleEntry.hpp"
 #include "classfile/systemDictionary.hpp"
 #include "gc/shared/collectedHeap.hpp"
 #include "gc/shared/genCollectedHeap.hpp"
@@ -105,10 +106,20 @@
   ResourceMark rm;
 
   // simplify the formatting (ILP32 vs LP64) - always cast the numbers to 64-bit
-  st->print_cr(INT64_FORMAT_W(13) "  " UINT64_FORMAT_W(13) "  %s",
-               (int64_t)_instance_count,
-               (uint64_t)_instance_words * HeapWordSize,
-               name());
+  ModuleEntry* module = _klass->module();
+  if (module->is_named()) {
+    st->print_cr(INT64_FORMAT_W(13) "  " UINT64_FORMAT_W(13) "  %s (%s@%s)",
+                 (int64_t)_instance_count,
+                 (uint64_t)_instance_words * HeapWordSize,
+                 name(),
+                 module->name()->as_C_string(),
+                 module->version() != NULL ? module->version()->as_C_string() : "");
+  } else {
+    st->print_cr(INT64_FORMAT_W(13) "  " UINT64_FORMAT_W(13) "  %s",
+                 (int64_t)_instance_count,
+                 (uint64_t)_instance_words * HeapWordSize,
+                 name());
+  }
 }
 
 KlassInfoEntry* KlassInfoBucket::lookup(Klass* const k) {
@@ -647,8 +658,8 @@
   if (print_stats) {
     print_class_stats(st, csv_format, columns);
   } else {
-    st->print_cr(" num     #instances         #bytes  class name");
-    st->print_cr("----------------------------------------------");
+    st->print_cr(" num     #instances         #bytes  class name (module)");
+    st->print_cr("-------------------------------------------------------");
     print_elements(st);
   }
 }
--- a/hotspot/src/share/vm/prims/jvm.cpp	Wed Apr 27 21:00:45 2016 +0900
+++ b/hotspot/src/share/vm/prims/jvm.cpp	Fri Apr 29 04:44:08 2016 +0200
@@ -389,7 +389,7 @@
       PUTPROP(props, "sun.nio.MaxDirectMemorySize", "-1");
     } else {
       char as_chars[256];
-      jio_snprintf(as_chars, sizeof(as_chars), SIZE_FORMAT, MaxDirectMemorySize);
+      jio_snprintf(as_chars, sizeof(as_chars), JULONG_FORMAT, MaxDirectMemorySize);
       PUTPROP(props, "sun.nio.MaxDirectMemorySize", as_chars);
     }
   }
--- a/hotspot/src/share/vm/prims/jvmti.xml	Wed Apr 27 21:00:45 2016 +0900
+++ b/hotspot/src/share/vm/prims/jvmti.xml	Fri Apr 29 04:44:08 2016 +0200
@@ -6482,6 +6482,7 @@
       <synopsis>Get All Modules</synopsis>
       <description>
 	Return an array of all modules loaded in the virtual machine.
+        The array includes the unnamed module for each class loader.
 	The number of modules in the array is returned via
 	<code>module_count_ptr</code>, and the array itself via
 	<code>modules_ptr</code>.
--- a/hotspot/src/share/vm/runtime/globals.hpp	Wed Apr 27 21:00:45 2016 +0900
+++ b/hotspot/src/share/vm/runtime/globals.hpp	Fri Apr 29 04:44:08 2016 +0200
@@ -3847,9 +3847,9 @@
                                                                             \
   /* Properties for Java libraries  */                                      \
                                                                             \
-  product(size_t, MaxDirectMemorySize, 0,                                   \
+  product(uint64_t, MaxDirectMemorySize, 0,                                 \
           "Maximum total size of NIO direct-buffer allocations")            \
-          range(0, (size_t)SIZE_MAX)                                        \
+          range(0, max_jlong)                                               \
                                                                             \
   /* Flags used for temporary code during development  */                   \
                                                                             \
--- a/hotspot/test/gc/g1/humongousObjects/TestHumongousClassLoader.java	Wed Apr 27 21:00:45 2016 +0900
+++ b/hotspot/test/gc/g1/humongousObjects/TestHumongousClassLoader.java	Fri Apr 29 04:44:08 2016 +0200
@@ -40,6 +40,7 @@
  * @summary Checks that unreachable classes and unreachable humongous class loader are unloaded after GC
  * @requires vm.gc=="G1" | vm.gc=="null"
  * @requires vm.opt.G1HeapRegionSize == "null" | vm.opt.G1HeapRegionSize == "1M"
+ * @requires vm.opt.ExplicitGCInvokesConcurrent != true
  * @library /testlibrary /test/lib /
  * @modules java.management
  * @build sun.hotspot.WhiteBox
--- a/hotspot/test/serviceability/dcmd/gc/ClassHistogramTest.java	Wed Apr 27 21:00:45 2016 +0900
+++ b/hotspot/test/serviceability/dcmd/gc/ClassHistogramTest.java	Fri Apr 29 04:44:08 2016 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -57,33 +57,34 @@
 
         /*
          * example output:
-         *   num     #instances         #bytes  class name
-         *  ----------------------------------------------
-         *     1:          1647        1133752  [B
-         *     2:          6198         383168  [C
-         *     3:          1464         165744  java.lang.Class
-         *     4:          6151         147624  java.lang.String
-         *     5:          2304          73728  java.util.concurrent.ConcurrentHashMap$Node
-         *     6:          1199          64280  [Ljava.lang.Object;
+         *  num     #instances         #bytes  class name (module)
+         * -------------------------------------------------------
+         *    1:          7991         757792  [B (java.base@9-internal)
+         *    2:          1811         217872  java.lang.Class (java.base@9-internal)
+         *    3:          6724         215168  java.util.HashMap$Node (java.base@9-internal)
+         *    4:          7852         188448  java.lang.String (java.base@9-internal)
+         *    5:          1378         105040  [Ljava.util.HashMap$Node; (java.base@9-internal)
+         *    6:          1863          95096  [Ljava.lang.Object; (java.base@9-internal)
+
          * ...
          */
 
         /* Require at least one java.lang.Class */
-        output.shouldMatch("^\\s+\\d+:\\s+\\d+\\s+\\d+\\s+java.lang.Class\\s*$");
+        output.shouldMatch("^\\s+\\d+:\\s+\\d+\\s+\\d+\\s+java.lang.Class \\(java.base@\\S*\\)\\s*$");
 
         /* Require at least one java.lang.String */
-        output.shouldMatch("^\\s+\\d+:\\s+\\d+\\s+\\d+\\s+java.lang.String\\s*$");
+        output.shouldMatch("^\\s+\\d+:\\s+\\d+\\s+\\d+\\s+java.lang.String \\(java.base@\\S*\\)\\s*$");
 
         /* Require at least one java.lang.Object */
-        output.shouldMatch("^\\s+\\d+:\\s+\\d+\\s+\\d+\\s+java.lang.Object\\s*$");
+        output.shouldMatch("^\\s+\\d+:\\s+\\d+\\s+\\d+\\s+java.lang.Object \\(java.base@\\S*\\)\\s*$");
 
         /* Require at exactly one TestClass[] */
         output.shouldMatch("^\\s+\\d+:\\s+1\\s+\\d+\\s+" +
-                Pattern.quote(TestClass[].class.getName()) + "\\s*$");
+            Pattern.quote(TestClass[].class.getName()) + "\\s*$");
 
         /* Require at exactly 1024 TestClass */
         output.shouldMatch("^\\s+\\d+:\\s+1024\\s+\\d+\\s+" +
-                Pattern.quote(TestClass.class.getName()) + "\\s*$");
+            Pattern.quote(TestClass.class.getName()) + "\\s*$");
     }
 
     @Test
--- a/hotspot/test/testlibrary/ctw/src/sun/hotspot/tools/ctw/Compiler.java	Wed Apr 27 21:00:45 2016 +0900
+++ b/hotspot/test/testlibrary/ctw/src/sun/hotspot/tools/ctw/Compiler.java	Fri Apr 29 04:44:08 2016 +0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,7 +25,7 @@
 
 import sun.hotspot.WhiteBox;
 import jdk.internal.misc.SharedSecrets;
-import sun.reflect.ConstantPool;
+import jdk.internal.reflect.ConstantPool;
 
 import java.lang.reflect.Executable;
 
--- a/hotspot/test/testlibrary_tests/ctw/ClassesDirTest.java	Wed Apr 27 21:00:45 2016 +0900
+++ b/hotspot/test/testlibrary_tests/ctw/ClassesDirTest.java	Fri Apr 29 04:44:08 2016 +0200
@@ -26,7 +26,7 @@
  * @bug 8012447
  * @library /testlibrary /test/lib /testlibrary/ctw/src
  * @modules java.base/jdk.internal.misc
- *          java.base/sun.reflect
+ *          java.base/jdk.internal.reflect
  *          java.management
  * @build ClassFileInstaller sun.hotspot.tools.ctw.CompileTheWorld sun.hotspot.WhiteBox Foo Bar
  * @run main ClassFileInstaller sun.hotspot.WhiteBox Foo Bar
--- a/hotspot/test/testlibrary_tests/ctw/ClassesListTest.java	Wed Apr 27 21:00:45 2016 +0900
+++ b/hotspot/test/testlibrary_tests/ctw/ClassesListTest.java	Fri Apr 29 04:44:08 2016 +0200
@@ -26,7 +26,7 @@
  * @bug 8012447
  * @library /testlibrary /test/lib /testlibrary/ctw/src
  * @modules java.base/jdk.internal.misc
- *          java.base/sun.reflect
+ *          java.base/jdk.internal.reflect
  *          java.management
  * @build ClassFileInstaller sun.hotspot.tools.ctw.CompileTheWorld sun.hotspot.WhiteBox Foo Bar
  * @run main ClassFileInstaller sun.hotspot.WhiteBox Foo Bar
--- a/hotspot/test/testlibrary_tests/ctw/JarDirTest.java	Wed Apr 27 21:00:45 2016 +0900
+++ b/hotspot/test/testlibrary_tests/ctw/JarDirTest.java	Fri Apr 29 04:44:08 2016 +0200
@@ -26,7 +26,7 @@
  * @bug 8012447
  * @library /testlibrary /test/lib /testlibrary/ctw/src
  * @modules java.base/jdk.internal.misc
- *          java.base/sun.reflect
+ *          java.base/jdk.internal.reflect
  *          java.compiler
  *          java.management
  *          jdk.jvmstat/sun.jvmstat.monitor
--- a/hotspot/test/testlibrary_tests/ctw/JarsTest.java	Wed Apr 27 21:00:45 2016 +0900
+++ b/hotspot/test/testlibrary_tests/ctw/JarsTest.java	Fri Apr 29 04:44:08 2016 +0200
@@ -26,7 +26,7 @@
  * @bug 8012447
  * @library /testlibrary /test/lib /testlibrary/ctw/src
  * @modules java.base/jdk.internal.misc
- *          java.base/sun.reflect
+ *          java.base/jdk.internal.reflect
  *          java.compiler
  *          java.management
  *          jdk.jvmstat/sun.jvmstat.monitor