Mercurial > hg > release > icedtea7-forest-2.4 > jdk
changeset 7336:4b3d9fc2558c
8035788: Provide more consistency for lookups
Reviewed-by: jrose, vlivanov, ahgross
author | twisti |
---|---|
date | Wed, 19 Mar 2014 10:48:43 -0700 |
parents | 26994c39fd70 |
children | 2c6544759f71 |
files | src/share/classes/java/lang/invoke/MethodHandles.java |
diffstat | 1 files changed, 7 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/classes/java/lang/invoke/MethodHandles.java Thu Mar 13 14:58:55 2014 +0400 +++ b/src/share/classes/java/lang/invoke/MethodHandles.java Wed Mar 19 10:48:43 2014 -0700 @@ -26,12 +26,15 @@ package java.lang.invoke; import java.lang.reflect.*; + import sun.invoke.util.ValueConversions; import sun.invoke.util.VerifyAccess; import sun.invoke.util.Wrapper; + import java.util.List; import java.util.ArrayList; import java.util.Arrays; + import sun.reflect.CallerSensitive; import sun.reflect.Reflection; import sun.reflect.misc.ReflectUtil; @@ -1155,6 +1158,10 @@ int allowedModes = this.allowedModes; if (allowedModes == TRUSTED) return; int mods = m.getModifiers(); + if (Modifier.isProtected(mods) && refKind == REF_newInvokeSpecial) { + // cannot "new" a protected ctor in a different package + mods ^= Modifier.PROTECTED; + } if (Modifier.isFinal(mods) && MethodHandleNatives.refKindIsSetter(refKind)) throw m.makeAccessException("unexpected set of a final field", this);