Code Review for JEP-181: Nest-based Access Control

Prepared by:

dholmes on Mon May 14 04:06:20 EDT 2018

Workspace:

/export/users/dh198349/valhalla/repos/jdk-jep181/open

Compare against:

http://hg.openjdk.java.net/jdk/jdk

Summary of changes:

18340 lines changed: 17844 ins; 86 del; 410 mod; 138158 unchg

Patch of changes:

open.patch

Legend:

Modified file
Deleted file
New file

Langtools:

Javac/Jdeps:

Summary of changes:

·       Define new NestHost and NestMembers attributes

------ ------ ------ ------ --- New Patch Raw src/jdk.jdeps/share/classes/com/sun/tools/classfile/NestHost_attribute.java

------ ------ ------ ------ --- New Patch Raw src/jdk.jdeps/share/classes/com/sun/tools/classfile/NestMembers_attribute.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/jdk.compiler/share/classes/com/sun/tools/javac/util/Names.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/jdk.jdeps/share/classes/com/sun/tools/classfile/Attribute.java

·       Generate new nestmate attributes

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassWriter.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/jdk.jdeps/share/classes/com/sun/tools/classfile/ClassWriter.java

·       Disable generation of access bridges

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java

·       Generate invokevirtual/invokeinterface for private methods

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Gen.java

·       Control new features

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Target.java

Javap:

·       Recognise and print nestmate attributes

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/jdk.jdeps/share/classes/com/sun/tools/javap/AttributeWriter.java

Test updates:

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/langtools/jdk/jshell/ClassesTest.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/langtools/jdk/jshell/ForwardReferenceTest.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/langtools/jdk/jshell/GetResourceTest.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/langtools/lib/annotations/annotations/classfile/ClassfileInspector.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/langtools/tools/javac/6917288/GraphicalInstallerTest.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/langtools/tools/javac/6917288/T6917288.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/langtools/tools/javac/7199823/InnerClassCannotBeVerified.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/langtools/tools/javac/MethodParameters/AttributeVisitor.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/langtools/tools/javac/classfiles/attributes/SourceFile/SyntheticClassTest.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/langtools/tools/javac/classfiles/attributes/Synthetic/AccessToPrivateInnerClassMembersTest.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/langtools/tools/javac/classfiles/attributes/Synthetic/AccessToPrivateSiblingsTest.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/langtools/tools/javac/classfiles/attributes/Synthetic/BridgeMethodsForLambdaTest.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/langtools/tools/javac/classfiles/attributes/innerclasses/InnerClassesInInnerClassTest.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/langtools/tools/javac/classfiles/attributes/innerclasses/InnerClassesInInnerEnumTest.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/langtools/tools/javac/classfiles/attributes/innerclasses/InnerClassesTest.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/langtools/tools/javac/classfiles/attributes/innerclasses/InnerClassesTestBase.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/langtools/tools/javac/nativeHeaders/NativeHeaderTest.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/langtools/tools/javac/processing/model/completionfailure/NoAbortForBadClassFile.java

------ ------ ------ ------ --- New Patch Raw test/langtools/tools/javac/nestmates/CheckNestmateAttrs.java

Core-libs:

 

Summary of changes:

·       New Core Reflection API

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/java.base/share/classes/java/lang/Class.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/java.base/share/native/libjava/Class.c

·       Core reflection Access Control Update

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/java.base/share/classes/java/lang/reflect/AccessibleObject.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/java.base/share/classes/java/lang/reflect/Method.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/java.base/share/classes/jdk/internal/reflect/MethodAccessorGenerator.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/java.base/share/classes/jdk/internal/reflect/Reflection.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/java.base/share/classes/sun/invoke/util/VerifyAccess.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/java.base/share/native/libjava/Reflection.c

·       ASM Update for new attributes

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/java.base/share/classes/jdk/internal/org/objectweb/asm/Attribute.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/java.base/share/classes/jdk/internal/org/objectweb/asm/ClassReader.java

·       MethodHandle updates for spec adjustment and handling private interface methods

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/java.base/share/classes/java/lang/invoke/DirectMethodHandle.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/java.base/share/classes/java/lang/invoke/MethodHandle.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/java.base/share/classes/java/lang/invoke/MethodHandles.java

·       Pack Update for new attributes

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/java.base/share/classes/com/sun/java/util/jar/pack/intrinsic.properties

Test updates:

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/jdk/java/lang/invoke/AccessControlTest.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/jdk/java/lang/invoke/SpecialInterfaceCall.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/jdk/jdk/lambda/vm/InterfaceAccessFlagsTest.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/jdk/tools/pack200/BandIntegrity.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/jdk/tools/pack200/pack200-verifier/make/build.xml

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/jdk/tools/pack200/pack200-verifier/src/xmlkit/ClassReader.java

------ ------ ------ ------ --- New Patch Raw test/jdk/java/lang/invoke/FinalVirtualCallFromInterface.java

------ ------ ------ ------ --- New Patch Raw test/jdk/java/lang/invoke/PrivateInterfaceCall.java

------ ------ ------ ------ --- New Patch Raw test/jdk/java/lang/invoke/PrivateInterfaceCallI4.jasm

Hotspot:

 

Summary of changes:

·       Classfile parsing of new attributes

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/share/classfile/classFileParser.cpp

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/share/classfile/classFileParser.hpp

·       Klass support for new attributes, nest membership validation, and nestmate check

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/share/oops/instanceKlass.cpp

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/share/oops/instanceKlass.hpp

·       Interpreter/compiler changes for invokeinterface use with private methods

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/cpu/aarch64/templateTable_aarch64.cpp

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/cpu/arm/templateTable_arm.cpp

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/cpu/ppc/templateTable_ppc_64.cpp

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/cpu/s390/templateTable_s390.cpp

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/cpu/sparc/templateTable_sparc.cpp

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/cpu/x86/templateTable_x86.cpp

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/share/oops/cpCache.cpp

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/share/opto/doCall.cpp

·       Core reflection API support

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw make/hotspot/symbols/symbols-unix

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/share/include/jvm.h

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/share/prims/jvm.cpp

·       Method resolution changes

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/share/interpreter/linkResolver.cpp

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/share/interpreter/linkResolver.hpp

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/share/code/dependencies.cpp

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/share/oops/arrayKlass.cpp

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/share/oops/arrayKlass.hpp

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/share/oops/klass.cpp

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/share/oops/klass.hpp

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/share/oops/klassVtable.cpp

·       Access control changes

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/share/runtime/reflection.cpp

·       Miscellaneous changes

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/share/ci/ciField.cpp

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/share/classfile/systemDictionary.cpp

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/share/classfile/vmSymbols.hpp

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/share/logging/logTag.hpp

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/share/memory/heapInspection.hpp

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/share/prims/methodHandles.cpp

Test updates:

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/hotspot/jtreg/ProblemList.txt

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/hotspot/jtreg/compiler/jsr292/methodHandleExceptions/TestAMEnotNPE.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/ResolvedJavaTypeResolveConcreteMethodTest.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/ResolvedJavaTypeResolveMethodTest.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/hotspot/jtreg/runtime/SelectionResolution/InvokeInterfaceICCE.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/hotspot/jtreg/runtime/SelectionResolution/InvokeInterfaceSuccessTest.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw test/hotspot/jtreg/runtime/SelectionResolution/classes/selectionresolution/Template.java

New Nestmate Tests:

The new tests within runtime/Nestmates are broken down into groups

These are the basic functional tests that check that nestmates have access to each others private members. They are broken down across the kinds of members: method (instance and static), field (instance and static) and constructors; the means of accessing (direct access via bytecode, use of core reflection, use of MethodHandles, JNI**, JDI**) and then within the actual test the different kinds of nestmates: nested classes, inner classes, nested interfaces, anonymous inner classes). Then there are some negative tests (using malformed bytecode) and some specific tests relating to access through the inheritance hierarchy both inside and outside the nest. So, for example we have the privateMethods directory containing tests: TestInvoke.java, TestReflection.java, TestMethodHandles.java etc.

** The JNI and JDI tests are still forthcoming. There are no issues to address in these areas and initial testing reflects that. It is just somewhat laborious to produce a complete set of tests, so that will continue in parallel.

These are TCK style tests that ensure we process the nestmate classfile attributes correctly and detect all errors as specified by the JVMS.

These are also TCK style tests that check all the rules listed in the JVMS with regard to nest membership.

These are also TCK style tests that check the functionality of the new methods added to the core reflection API for nestmates.

These are functional tests for the updated method selection rules that come with nestmates. Logically these would be new testcases in the existing SelectionResolution tests, but those tests are not amenable to easy modification, so standalone tests were written.

Checks that functionality that has changed under nestmates still works correctly for classes compiled with earlier JDK's. The only test here is testing private Lookups with MethodHandles (and it served as a regression test for an earlier mistake in how the Lookup changes were done).

For some tests there are additional testing variants, such as interpreted versus compiled mode; and for core reflection method invocations the two different kinds of accessors used (native accessors and generated accessors).

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/classFileParsing/BadNestHost.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/classFileParsing/BadNestHostLength.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/classFileParsing/BadNestMembersEntry.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/classFileParsing/BadNestMembersLength.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/classFileParsing/ConflictingAttributesInNestHost.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/classFileParsing/ConflictingAttributesInNestMember.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/classFileParsing/TestFinalMethodOverride.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/classFileParsing/TestNestmateAttributes.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/classFileParsing/TwoNestHost.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/classFileParsing/TwoNestMembers.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/legacy/TestPrivateLookup.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/membership/CallerMissingHost.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/membership/CallerNoHost.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/membership/CallerNotInstanceHost.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/membership/CallerNotOurHost.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/membership/CallerSelfHost.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/membership/InvalidNestHost.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/membership/PackagedNestHost.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/membership/PackagedNestHost.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/membership/PackagedNestHost2.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/membership/PackagedNestHost2Member.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/membership/PackagedNestHostMember.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/membership/TargetMissingHost.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/membership/TargetNoHost.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/membership/TargetNotInstanceHost.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/membership/TargetNotOurHost.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/membership/TargetSelfHost.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/membership/TestNestmateMembership.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/methodSelection/PA_I.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/methodSelection/PB_A.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/methodSelection/PB_A_I.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/methodSelection/PB_A_PI.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/methodSelection/PB_PA_I.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/methodSelection/PC_B_A.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/methodSelection/PC_B_PA.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/methodSelection/PC_PB_A.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/methodSelection/TestInterfaceMethodSelection.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/methodSelection/TestMethodSelection.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/privateConstructors/ExternalSub.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/privateConstructors/ExternalSuper.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/privateConstructors/TestConstructorHierarchy.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/privateConstructors/TestInvokeSpecial.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/privateConstructors/TestMethodHandles.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/privateConstructors/TestReflection.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/privateFields/TestMethodHandles.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/privateFields/TestPrivateField.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/privateFields/TestReflection.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/privateMethods/ExternalSub.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/privateMethods/ExternalSuper.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/privateMethods/MissingMethod.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/privateMethods/MissingMethodWithSuper.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/privateMethods/MissingNestHost.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/privateMethods/TestInvoke.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/privateMethods/TestInvokeErrors.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/privateMethods/TestInvokeHierarchy.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/privateMethods/TestMethodHandles.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/privateMethods/TestMethodHandlesHierarchy.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/privateMethods/TestReflection.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/privateMethods/TestReflectionHierarchy.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/privateStaticFields/TestMethodHandles.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/privateStaticFields/TestPrivateStaticField.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/privateStaticFields/TestReflection.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/privateStaticMethods/TestInvokeStatic.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/privateStaticMethods/TestMethodHandles.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/privateStaticMethods/TestReflection.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/reflectionAPI/HostOfMemberMalformedHost.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/reflectionAPI/HostOfMemberMissingHost.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/reflectionAPI/HostOfMemberNoHost.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/reflectionAPI/HostOfMemberNotInstanceHost.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/reflectionAPI/HostOfMemberNotOurHost.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/reflectionAPI/HostWithDuplicateMembers.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/reflectionAPI/HostWithSelfMember.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/reflectionAPI/Hosts.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/reflectionAPI/InvalidNestHost.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/reflectionAPI/MalformedHost.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/reflectionAPI/MemberMalformedHost.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/reflectionAPI/MemberMissingHost.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/reflectionAPI/MemberNoHost.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/reflectionAPI/MemberNotInstanceHost.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/reflectionAPI/MemberNotOurHost.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/reflectionAPI/PackagedNestHost.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/reflectionAPI/PackagedNestHost.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/reflectionAPI/PackagedNestHost2.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/reflectionAPI/PackagedNestHost2Member.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/reflectionAPI/PackagedNestHostMember.jcod

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/reflectionAPI/SampleNest.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/reflectionAPI/TestReflectionAPI.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/reflectionAPI/TestSecurityManagerChecks.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/reflectionAPI/empty.policy

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/reflectionAPI/testPkg/Host.java

------ ------ ------ ------ --- New Patch Raw test/hotspot/jtreg/runtime/Nestmates/reflectionAPI/testPkg/Singleton.java

 

Serviceability:

 

The JVM TI / JDWP / Instrument API’s for redefining and transforming classes are updated to prohibit the changing of nestmate attributes.

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw make/data/jdwp/jdwp.spec

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/share/prims/jvmti.xml

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/share/prims/jvmtiClassFileReconstituter.cpp

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/share/prims/jvmtiClassFileReconstituter.hpp

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/share/prims/jvmtiExport.cpp

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/share/prims/jvmtiH.xsl

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/share/prims/jvmtiRedefineClasses.cpp

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/hotspot/share/prims/jvmtiRedefineClasses.hpp

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/java.instrument/share/classes/java/lang/instrument/Instrumentation.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/java.instrument/share/native/libinstrument/JavaExceptions.c

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/jdk.jdi/share/classes/com/sun/jdi/VirtualMachine.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/jdk.jdi/share/classes/com/sun/tools/jdi/VirtualMachineImpl.java

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/jdk.jdwp.agent/share/native/libjdwp/error_messages.c

Cdiffs Udiffs Sdiffs Frames Old New Patch Raw src/jdk.jdwp.agent/share/native/libjdwp/util.c

New Tests:

------ ------ ------ ------ --- New Patch Raw test/jdk/java/lang/instrument/RedefineNestmateAttr/Host/Host.java

------ ------ ------ ------ --- New Patch Raw test/jdk/java/lang/instrument/RedefineNestmateAttr/Host/redef/Host.java

------ ------ ------ ------ --- New Patch Raw test/jdk/java/lang/instrument/RedefineNestmateAttr/HostA/Host.java

------ ------ ------ ------ --- New Patch Raw test/jdk/java/lang/instrument/RedefineNestmateAttr/HostA/redef/Host.java

------ ------ ------ ------ --- New Patch Raw test/jdk/java/lang/instrument/RedefineNestmateAttr/HostAB/Host.java

------ ------ ------ ------ --- New Patch Raw test/jdk/java/lang/instrument/RedefineNestmateAttr/HostAB/redef/Host.java

------ ------ ------ ------ --- New Patch Raw test/jdk/java/lang/instrument/RedefineNestmateAttr/HostABC/Host.java

------ ------ ------ ------ --- New Patch Raw test/jdk/java/lang/instrument/RedefineNestmateAttr/HostABC/redef/Host.java

------ ------ ------ ------ --- New Patch Raw test/jdk/java/lang/instrument/RedefineNestmateAttr/HostABCD/redef/Host.java

------ ------ ------ ------ --- New Patch Raw test/jdk/java/lang/instrument/RedefineNestmateAttr/HostABD/redef/Host.java

------ ------ ------ ------ --- New Patch Raw test/jdk/java/lang/instrument/RedefineNestmateAttr/HostAC/redef/Host.java

------ ------ ------ ------ --- New Patch Raw test/jdk/java/lang/instrument/RedefineNestmateAttr/HostACB/redef/Host.java

------ ------ ------ ------ --- New Patch Raw test/jdk/java/lang/instrument/RedefineNestmateAttr/HostB/redef/Host.java

------ ------ ------ ------ --- New Patch Raw test/jdk/java/lang/instrument/RedefineNestmateAttr/HostBA/redef/Host.java

------ ------ ------ ------ --- New Patch Raw test/jdk/java/lang/instrument/RedefineNestmateAttr/HostBAC/redef/Host.java

------ ------ ------ ------ --- New Patch Raw test/jdk/java/lang/instrument/RedefineNestmateAttr/HostBCA/redef/Host.java

------ ------ ------ ------ --- New Patch Raw test/jdk/java/lang/instrument/RedefineNestmateAttr/HostCAB/redef/Host.java

------ ------ ------ ------ --- New Patch Raw test/jdk/java/lang/instrument/RedefineNestmateAttr/HostCBA/redef/Host.java

------ ------ ------ ------ --- New Patch Raw test/jdk/java/lang/instrument/RedefineNestmateAttr/TestNestmateAttr.java