< prev index next >

src/java.base/share/classes/java/lang/invoke/MemberName.java

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2008, 2017, 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. Oracle designates this --- 1,7 ---- /* ! * Copyright (c) 2008, 2019, 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. Oracle designates this
*** 519,529 **** /** Utility method to query whether this member is accessible from a given lookup class. */ public boolean isAccessibleFrom(Class<?> lookupClass) { int mode = (ALL_ACCESS|MethodHandles.Lookup.PACKAGE|MethodHandles.Lookup.MODULE); return VerifyAccess.isMemberAccessible(this.getDeclaringClass(), this.getDeclaringClass(), flags, ! lookupClass, mode); } /** * Check if MemberName is a call to a method named {@code name} in class {@code declaredClass}. */ --- 519,529 ---- /** Utility method to query whether this member is accessible from a given lookup class. */ public boolean isAccessibleFrom(Class<?> lookupClass) { int mode = (ALL_ACCESS|MethodHandles.Lookup.PACKAGE|MethodHandles.Lookup.MODULE); return VerifyAccess.isMemberAccessible(this.getDeclaringClass(), this.getDeclaringClass(), flags, ! lookupClass, null, mode); } /** * Check if MemberName is a call to a method named {@code name} in class {@code declaredClass}. */
*** 928,944 **** if (from != null) { if (from == MethodHandles.publicLookup()) { message += ", from public Lookup"; } else { Module m; if (from instanceof MethodHandles.Lookup) { MethodHandles.Lookup lookup = (MethodHandles.Lookup)from; m = lookup.lookupClass().getModule(); } else { ! m = from.getClass().getModule(); } message += ", from " + from + " (" + m + ")"; } } return new IllegalAccessException(message); } private String message() { --- 928,952 ---- if (from != null) { if (from == MethodHandles.publicLookup()) { message += ", from public Lookup"; } else { Module m; + Class<?> plc; if (from instanceof MethodHandles.Lookup) { MethodHandles.Lookup lookup = (MethodHandles.Lookup)from; + from = lookup.lookupClass(); m = lookup.lookupClass().getModule(); + plc = lookup.previousLookupClass(); } else { ! m = ((Class<?>)from).getModule(); ! plc = null; } message += ", from " + from + " (" + m + ")"; + if (plc != null) { + message += ", previous lookup " + + plc.getName() + " (" + plc.getModule() + ")"; + } } } return new IllegalAccessException(message); } private String message() {
< prev index next >