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

Philip Race philip.race at oracle.com
Mon Jun 13 19:26:00 UTC 2016


PS .. also you probably should  just suppress lint on the jdk.jsobject 
module

The change you propose to JSObject is going to cause a potential conflict
with the ongoing review discussion about this here :-

http://mail.openjdk.java.net/pipermail/awt-dev/2016-June/011472.html

-phil.

On 6/13/16, 10:59 AM, Phil Race wrote:
> Hmm .. given that the majority of the jdk changes are in client - 
> specifically
> swing & accessibility -  including the swing mailing list would have 
> increased the
> likelihood of the right people clicking on this webrev link.
>
> IMO,  we should remove these unusable fields from the Swing API - where
> we can - and I think some we can, and really it ought to be all.
>
> So I suggest that you leave alone those files and submit
> bugs against swing & accessibility and the area owner
> can then make the decision as to the appropriate treatment.
>
> You can keep the JDK buildable in the meanwhile by suppressing the
> lint warnings on the desktop module.
>
> -phil.
>
>
> On 06/13/2016 09:12 AM, Jan Lahoda wrote:
>> 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 compiler-dev mailing list