JDK-8153362: [jigsaw] Add javac -Xlint warning to list exposed types which are not accessible

Jan Lahoda jan.lahoda at oracle.com
Mon Jun 13 16:12:12 UTC 2016


Hello,

There is:
https://bugs.openjdk.java.net/browse/JDK-8153362

which is about a new warning that should be produced by javac when 
exported API refers to types not exported/accessible to the API clients.

I've put my current javac change here:
http://cr.openjdk.java.net/~jlahoda/8153362/langtools.00/

There are some warnings produced for existing code in the hotspot and 
jdk repositories (see the end for the warnings), I was using these 
patches to keep JDK buildable:
hotspot repository:
http://cr.openjdk.java.net/~jlahoda/8153362/hotspot.00/
jdk repository:
http://cr.openjdk.java.net/~jlahoda/8153362/jdk.00/

Any help with those (esp. those in the hotspot repository) would be 
wholeheartedly welcome.

Any feedback on this is welcome!

Thanks,
    Jan

The warnings:
-hotspot repository:
.../hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.runtime/src/jdk/vm/ci/runtime/services/JVMCICompilerFactory.java:72: 
warning: unexported type referenced in exported API
     public abstract JVMCICompiler createCompiler(JVMCIRuntime runtime);
                     ^
.../hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.runtime/src/jdk/vm/ci/runtime/services/JVMCICompilerFactory.java:72: 
warning: unexported type referenced in exported API
     public abstract JVMCICompiler createCompiler(JVMCIRuntime runtime);
                                                  ^
error: warnings found and -Werror specified
.../hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/services/HotSpotJVMCICompilerFactory.java:54: 
warning: unexported type referenced in exported API
     public int getCompilationLevelAdjustment(HotSpotVMConfig config) {
                                              ^
.../hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/services/HotSpotJVMCICompilerFactory.java:73: 
warning: unexported type referenced in exported API
     public int adjustCompilationLevel(HotSpotVMConfig config, Class<?> 
declaringClass, String name, String signature, boolean isOsr, int level) {
                                       ^
.../hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/services/HotSpotVMEventListener.java:70: 
warning: unexported type referenced in exported API
     public void notifyInstall(HotSpotCodeCacheProvider 
hotSpotCodeCacheProvider, InstalledCode installedCode, CompiledCode 
compiledCode) {
                               ^
.../hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/services/HotSpotVMEventListener.java:70: 
warning: unexported type referenced in exported API
     public void notifyInstall(HotSpotCodeCacheProvider 
hotSpotCodeCacheProvider, InstalledCode installedCode, CompiledCode 
compiledCode) {

           ^
.../hotspot/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/services/HotSpotVMEventListener.java:70: 
warning: unexported type referenced in exported API
     public void notifyInstall(HotSpotCodeCacheProvider 
hotSpotCodeCacheProvider, InstalledCode installedCode, CompiledCode 
compiledCode) {

                                        ^
1 error
7 warnings

-jdk/java.desktop:
.../jdk/src/java.desktop/share/classes/javax/swing/JRootPane.java:333: 
warning: inaccessible type referenced in exported API
     protected DefaultAction defaultPressAction;
               ^
.../jdk/src/java.desktop/share/classes/javax/swing/JRootPane.java:344: 
warning: inaccessible type referenced in exported API
     protected DefaultAction defaultReleaseAction;
               ^
error: warnings found and -Werror specified
.../jdk/src/java.desktop/share/classes/javax/swing/plaf/metal/MetalBorders.java:742: 
warning: inaccessible type referenced in exported API
         protected MetalBumps bumps = new MetalBumps( 10, 10,
                   ^
.../jdk/src/java.desktop/share/classes/javax/swing/plaf/metal/MetalFileChooserUI.java:926: 
warning: inaccessible type referenced in exported API
     protected DirectoryComboBoxRenderer 
createDirectoryComboBoxRenderer(JFileChooser fc) {
               ^
.../jdk/src/java.desktop/share/classes/javax/swing/plaf/metal/MetalScrollBarUI.java:65: 
warning: inaccessible type referenced in exported API
     protected MetalBumps bumps;
               ^
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
1 error
5 warnings


-jdk/java.naming:
.../jdk/src/java.naming/share/classes/javax/naming/CompoundName.java:156: warning: 
inaccessible type referenced in exported API
     protected transient NameImpl impl;
                         ^
error: warnings found and -Werror specified
1 error
1 warning


-jdk/jdk.accessibility:
.../jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/AWTEventMonitor.java:219: 
warning: inaccessible type referenced in exported API
     static protected AWTEventsListener awtListener = new 
AWTEventsListener();
                      ^
error: warnings found and -Werror specified
.../jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/AccessibilityEventMonitor.java:66: 
warning: inaccessible type referenced in exported API
     static protected final AccessibilityEventListener 
accessibilityListener =
                            ^
.../jdk/src/jdk.accessibility/share/classes/com/sun/java/accessibility/util/SwingEventMonitor.java:74: 
warning: inaccessible type referenced in exported API
     static protected final SwingEventListener swingListener = new 
SwingEventListener();
                            ^
1 error
3 warnings


-jdk/jdk.jsobject:
.../jdk/src/jdk.jsobject/share/classes/netscape/javascript/JSObject.java:153: 
warning: type from a module referenced in exported API that is not 
requires public from this module
     public static JSObject getWindow(Applet applet) throws JSException {
                                      ^
error: warnings found and -Werror specified
1 error
1 warning

-jdk/jdk.security.jgss:
.../jdk/src/jdk.security.jgss/share/classes/com/sun/security/jgss/ExtendedGSSContext.java:42: 
warning: type that is invisible for some modules which read this package 
referenced in exported API
     static class ExtendedGSSContextImpl extends GSSContextImpl
                                                 ^
.../jdk/src/jdk.security.jgss/share/classes/com/sun/security/jgss/ExtendedGSSContext.java:45: 
warning: type that is invisible for some modules which read this package 
referenced in exported API
         public ExtendedGSSContextImpl(GSSContextImpl old) {
                                       ^
error: warnings found and -Werror specified
.../jdk/src/jdk.security.jgss/share/classes/com/sun/security/jgss/ExtendedGSSCredential.java:38: 
warning: type that is invisible for some modules which read this package 
referenced in exported API
     static class ExtendedGSSCredentialImpl extends GSSCredentialImpl
                                                    ^
.../jdk/src/jdk.security.jgss/share/classes/com/sun/security/jgss/ExtendedGSSCredential.java:41: 
warning: type that is invisible for some modules which read this package 
referenced in exported API
         public ExtendedGSSCredentialImpl(GSSCredentialImpl old) {
                                          ^
1 error
4 warnings


More information about the core-libs-dev mailing list