equal
deleted
inserted
replaced
62 import java.util.StringJoiner; |
62 import java.util.StringJoiner; |
63 |
63 |
64 import jdk.internal.HotSpotIntrinsicCandidate; |
64 import jdk.internal.HotSpotIntrinsicCandidate; |
65 import jdk.internal.loader.BootLoader; |
65 import jdk.internal.loader.BootLoader; |
66 import jdk.internal.loader.BuiltinClassLoader; |
66 import jdk.internal.loader.BuiltinClassLoader; |
67 import jdk.internal.loader.ResourceHelper; |
|
68 import jdk.internal.misc.Unsafe; |
67 import jdk.internal.misc.Unsafe; |
69 import jdk.internal.misc.VM; |
68 import jdk.internal.misc.VM; |
|
69 import jdk.internal.module.Resources; |
70 import jdk.internal.reflect.CallerSensitive; |
70 import jdk.internal.reflect.CallerSensitive; |
71 import jdk.internal.reflect.ConstantPool; |
71 import jdk.internal.reflect.ConstantPool; |
72 import jdk.internal.reflect.Reflection; |
72 import jdk.internal.reflect.Reflection; |
73 import jdk.internal.reflect.ReflectionFactory; |
73 import jdk.internal.reflect.ReflectionFactory; |
74 import jdk.internal.vm.annotation.ForceInline; |
74 import jdk.internal.vm.annotation.ForceInline; |
2561 public InputStream getResourceAsStream(String name) { |
2561 public InputStream getResourceAsStream(String name) { |
2562 name = resolveName(name); |
2562 name = resolveName(name); |
2563 |
2563 |
2564 Module module = getModule(); |
2564 Module module = getModule(); |
2565 if (module.isNamed()) { |
2565 if (module.isNamed()) { |
2566 if (!ResourceHelper.isSimpleResource(name)) { |
2566 if (Resources.canEncapsulate(name)) { |
2567 Module caller = Reflection.getCallerClass().getModule(); |
2567 Module caller = Reflection.getCallerClass().getModule(); |
2568 if (caller != module) { |
2568 if (caller != module) { |
2569 Set<String> packages = module.getDescriptor().packages(); |
2569 Set<String> packages = module.getDescriptor().packages(); |
2570 String pn = ResourceHelper.getPackageName(name); |
2570 String pn = Resources.toPackageName(name); |
2571 if (packages.contains(pn) && !module.isOpen(pn, caller)) { |
2571 if (packages.contains(pn) && !module.isOpen(pn, caller)) { |
2572 // resource is in package not open to caller |
2572 // resource is in package not open to caller |
2573 return null; |
2573 return null; |
2574 } |
2574 } |
2575 } |
2575 } |
2663 public URL getResource(String name) { |
2663 public URL getResource(String name) { |
2664 name = resolveName(name); |
2664 name = resolveName(name); |
2665 |
2665 |
2666 Module module = getModule(); |
2666 Module module = getModule(); |
2667 if (module.isNamed()) { |
2667 if (module.isNamed()) { |
2668 if (!ResourceHelper.isSimpleResource(name)) { |
2668 if (Resources.canEncapsulate(name)) { |
2669 Module caller = Reflection.getCallerClass().getModule(); |
2669 Module caller = Reflection.getCallerClass().getModule(); |
2670 if (caller != module) { |
2670 if (caller != module) { |
2671 Set<String> packages = module.getDescriptor().packages(); |
2671 Set<String> packages = module.getDescriptor().packages(); |
2672 String pn = ResourceHelper.getPackageName(name); |
2672 String pn = Resources.toPackageName(name); |
2673 if (packages.contains(pn) && !module.isOpen(pn, caller)) { |
2673 if (packages.contains(pn) && !module.isOpen(pn, caller)) { |
2674 // resource is in package not open to caller |
2674 // resource is in package not open to caller |
2675 return null; |
2675 return null; |
2676 } |
2676 } |
2677 } |
2677 } |