# HG changeset patch # User kamg # Date 1285174491 14400 # Node ID a25394352030912f7388a398dfe555c01e41c5df # Parent 2966dab85b3e2556541f7ca8357e8672d927796f# Parent 18c3785135759b9af8339c1314c586cce0b2b7c0 Merge diff -r 18c378513575 -r a25394352030 make/linux/makefiles/sa.make --- a/make/linux/makefiles/sa.make Thu Sep 16 16:48:40 2010 -0700 +++ b/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 diff -r 18c378513575 -r a25394352030 make/solaris/makefiles/dtrace.make --- a/make/solaris/makefiles/dtrace.make Thu Sep 16 16:48:40 2010 -0700 +++ b/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 \ diff -r 18c378513575 -r a25394352030 make/solaris/makefiles/sa.make --- a/make/solaris/makefiles/sa.make Thu Sep 16 16:48:40 2010 -0700 +++ b/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 diff -r 18c378513575 -r a25394352030 src/share/vm/classfile/verificationType.cpp --- a/src/share/vm/classfile/verificationType.cpp Thu Sep 16 16:48:40 2010 -0700 +++ b/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); diff -r 18c378513575 -r a25394352030 src/share/vm/runtime/arguments.cpp --- a/src/share/vm/runtime/arguments.cpp Thu Sep 16 16:48:40 2010 -0700 +++ b/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)); diff -r 18c378513575 -r a25394352030 src/share/vm/runtime/vm_version.cpp --- a/src/share/vm/runtime/vm_version.cpp Thu Sep 16 16:48:40 2010 -0700 +++ b/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 } diff -r 18c378513575 -r a25394352030 test/runtime/6626217/Test6626217.sh --- a/test/runtime/6626217/Test6626217.sh Thu Sep 16 16:48:40 2010 -0700 +++ b/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 $?