--- a/hotspot/make/linux/makefiles/sa.make Thu Sep 16 16:48:40 2010 -0700
+++ b/hotspot/make/linux/makefiles/sa.make Wed Sep 22 12:54:51 2010 -0400
@@ -68,7 +68,7 @@
$(MAKE) -f sa.make $(GENERATED)/sa-jdi.jar; \
fi
-$(GENERATED)/sa-jdi.jar: $(AGENT_FILES1) $(AGENT_FILES2) agent_files_preclean
+$(GENERATED)/sa-jdi.jar: $(AGENT_FILES1) $(AGENT_FILES2)
$(QUIETLY) echo "Making $@"
$(QUIETLY) if [ "$(BOOT_JAVA_HOME)" = "" ]; then \
echo "ALT_BOOTDIR, BOOTDIR or JAVA_HOME needs to be defined to build SA"; \
@@ -83,6 +83,17 @@
mkdir -p $(SA_CLASSDIR); \
fi
+# Note: When indented, make tries to execute the '$(shell' comment.
+# In some environments, cmd processors have limited line length.
+# To prevent the javac invocation in the next block from using
+# a very long cmd line, we use javac's @file-list option. We
+# generate the file lists using make's built-in 'foreach' control
+# flow which also avoids cmd processor line length issues. Since
+# the 'foreach' is done as part of make's macro expansion phase,
+# the initialization of the lists is also done in the same phase
+# using '$(shell rm ...' instead of using the more traditional
+# 'rm ...' rule.
+ $(shell rm -rf $(AGENT_FILES1_LIST) $(AGENT_FILES2_LIST))
$(foreach file,$(AGENT_FILES1),$(shell echo $(file) >> $(AGENT_FILES1_LIST)))
$(foreach file,$(AGENT_FILES2),$(shell echo $(file) >> $(AGENT_FILES2_LIST)))
@@ -104,9 +115,6 @@
$(QUIETLY) $(REMOTE) $(RUN.JAVAH) -classpath $(SA_CLASSDIR) -d $(GENERATED) -jni sun.jvm.hotspot.debugger.amd64.AMD64ThreadContext
$(QUIETLY) $(REMOTE) $(RUN.JAVAH) -classpath $(SA_CLASSDIR) -d $(GENERATED) -jni sun.jvm.hotspot.debugger.sparc.SPARCThreadContext
-agent_files_preclean:
- rm -rf $(AGENT_FILES1_LIST) $(AGENT_FILES2_LIST)
-
clean:
rm -rf $(SA_CLASSDIR)
rm -rf $(GENERATED)/sa-jdi.jar
--- a/hotspot/make/solaris/makefiles/dtrace.make Thu Sep 16 16:48:40 2010 -0700
+++ b/hotspot/make/solaris/makefiles/dtrace.make Wed Sep 22 12:54:51 2010 -0400
@@ -165,7 +165,7 @@
$(DTRACE.o): $(DTRACE).d $(JVMOFFS).h $(JVMOFFS)Index.h $(DTraced_Files)
@echo Compiling $(DTRACE).d
- $(QUIETLY) $(DTRACE_PROG) $(DTRACE_OPTS) -C -I. -G -o $@ -s $(DTRACE).d \
+ $(QUIETLY) $(DTRACE_PROG) $(DTRACE_OPTS) -C -I. -G -xlazyload -o $@ -s $(DTRACE).d \
$(DTraced_Files) ||\
STATUS=$$?;\
if [ x"$$STATUS" = x"1" -a \
--- a/hotspot/make/solaris/makefiles/sa.make Thu Sep 16 16:48:40 2010 -0700
+++ b/hotspot/make/solaris/makefiles/sa.make Wed Sep 22 12:54:51 2010 -0400
@@ -59,7 +59,7 @@
$(MAKE) -f sa.make $(GENERATED)/sa-jdi.jar; \
fi
-$(GENERATED)/sa-jdi.jar: $(AGENT_FILES1) $(AGENT_FILES2) agent_files_preclean
+$(GENERATED)/sa-jdi.jar: $(AGENT_FILES1) $(AGENT_FILES2)
$(QUIETLY) echo "Making $@";
$(QUIETLY) if [ "$(BOOT_JAVA_HOME)" = "" ]; then \
echo "ALT_BOOTDIR, BOOTDIR or JAVA_HOME needs to be defined to build SA"; \
@@ -74,6 +74,17 @@
mkdir -p $(SA_CLASSDIR); \
fi
+# Note: When indented, make tries to execute the '$(shell' comment.
+# In some environments, cmd processors have limited line length.
+# To prevent the javac invocation in the next block from using
+# a very long cmd line, we use javac's @file-list option. We
+# generate the file lists using make's built-in 'foreach' control
+# flow which also avoids cmd processor line length issues. Since
+# the 'foreach' is done as part of make's macro expansion phase,
+# the initialization of the lists is also done in the same phase
+# using '$(shell rm ...' instead of using the more traditional
+# 'rm ...' rule.
+ $(shell rm -rf $(AGENT_FILES1_LIST) $(AGENT_FILES2_LIST))
$(foreach file,$(AGENT_FILES1),$(shell echo $(file) >> $(AGENT_FILES1_LIST)))
$(foreach file,$(AGENT_FILES2),$(shell echo $(file) >> $(AGENT_FILES2_LIST)))
@@ -92,9 +103,6 @@
$(QUIETLY) $(RUN.JAR) uf $@ -C $(AGENT_SRC_DIR) META-INF/services/com.sun.jdi.connect.Connector
$(QUIETLY) $(RUN.JAVAH) -classpath $(SA_CLASSDIR) -d $(GENERATED) -jni sun.jvm.hotspot.debugger.proc.ProcDebuggerLocal
-agent_files_preclean:
- rm -rf $(AGENT_FILES1_LIST) $(AGENT_FILES2_LIST)
-
clean:
rm -rf $(SA_CLASSDIR)
rm -rf $(GENERATED)/sa-jdi.jar
--- a/hotspot/src/share/vm/classfile/verificationType.cpp Thu Sep 16 16:48:40 2010 -0700
+++ b/hotspot/src/share/vm/classfile/verificationType.cpp Wed Sep 22 12:54:51 2010 -0400
@@ -54,10 +54,12 @@
// any object or array is assignable to java.lang.Object
return true;
}
- klassOop this_class = SystemDictionary::resolve_or_fail(
+ klassOop obj = SystemDictionary::resolve_or_fail(
name_handle(), Handle(THREAD, context->class_loader()),
Handle(THREAD, context->protection_domain()), true, CHECK_false);
- if (this_class->klass_part()->is_interface()) {
+ KlassHandle this_class(THREAD, obj);
+
+ if (this_class->is_interface()) {
// We treat interfaces as java.lang.Object, including
// java.lang.Cloneable and java.io.Serializable
return true;
@@ -65,7 +67,7 @@
klassOop from_class = SystemDictionary::resolve_or_fail(
from.name_handle(), Handle(THREAD, context->class_loader()),
Handle(THREAD, context->protection_domain()), true, CHECK_false);
- return instanceKlass::cast(from_class)->is_subclass_of(this_class);
+ return instanceKlass::cast(from_class)->is_subclass_of(this_class());
}
} else if (is_array() && from.is_array()) {
VerificationType comp_this = get_component(CHECK_false);
--- a/hotspot/src/share/vm/runtime/arguments.cpp Thu Sep 16 16:48:40 2010 -0700
+++ b/hotspot/src/share/vm/runtime/arguments.cpp Wed Sep 22 12:54:51 2010 -0400
@@ -120,7 +120,7 @@
PropertyList_add(&_system_properties, new SystemProperty("java.vm.specification.name",
"Java Virtual Machine Specification", false));
PropertyList_add(&_system_properties, new SystemProperty("java.vm.specification.vendor",
- "Sun Microsystems Inc.", false));
+ JDK_Version::is_gte_jdk17x_version() ? "Oracle Corporation" : "Sun Microsystems Inc.", false));
PropertyList_add(&_system_properties, new SystemProperty("java.vm.version", VM_Version::vm_release(), false));
PropertyList_add(&_system_properties, new SystemProperty("java.vm.name", VM_Version::vm_name(), false));
PropertyList_add(&_system_properties, new SystemProperty("java.vm.vendor", VM_Version::vm_vendor(), false));
--- a/hotspot/src/share/vm/runtime/vm_version.cpp Thu Sep 16 16:48:40 2010 -0700
+++ b/hotspot/src/share/vm/runtime/vm_version.cpp Wed Sep 22 12:54:51 2010 -0400
@@ -121,7 +121,8 @@
#ifdef VENDOR
return XSTR(VENDOR);
#else
- return "Sun Microsystems Inc.";
+ return JDK_Version::is_gte_jdk17x_version() ?
+ "Oracle Corporation" : "Sun Microsystems Inc.";
#endif
}
--- a/hotspot/test/runtime/6626217/Test6626217.sh Thu Sep 16 16:48:40 2010 -0700
+++ b/hotspot/test/runtime/6626217/Test6626217.sh Wed Sep 22 12:54:51 2010 -0400
@@ -1,9 +1,27 @@
-#
-# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
-# SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
-#
+#
+# Copyright (c) 1998, 2010, 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
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
-#
+
# @test @(#)Test6626217.sh
# @bug 6626217
# @summary Loader-constraint table allows arrays instead of only the base-classes
@@ -96,6 +114,6 @@
${RM} many_loader.java
${JAVA} ${BIT_FLAG} -Xverify -Xint -cp . bug_21227 >test.out 2>&1
-grep "violates loader constraints" test.out
+grep "loader constraint" test.out
exit $?