RFR JDK-8164836: fix jdeprscan violations of tools/all/RunCodingRules.java

Stuart Marks stuart.marks at oracle.com
Fri Aug 26 19:52:25 UTC 2016

Seems sensible to me, though I'm distant enough from this that I'll let you guys 
work out the exact rules.

If the scope of DefinedByAnalzyer gets reduced, then maybe the uses of 
@DefinedBy outside of that scope should be removed.


On 8/26/16 12:02 PM, Jonathan Gibbons wrote:
> Arguably, we should only check @DefinedBy in java.compiler and jdk.compiler
> modules.
> -- Jon
> On 08/26/2016 08:36 AM, Stuart Marks wrote:
>> Hi Jan,
>> Thanks for picking this up.
>> As you point out, the API usage in jdeprscan, and its containing module
>> jdk.jdeps, really isn't the target of @DefinedBy. It's "implementing" the
>> APIs, but for the purpose of getting callbacks from the annotation processing
>> framework, not for the purpose of providing an implementation of the API to
>> the general public. In that sense @DefinedBy doesn't really apply, so it makes
>> sense to adjust the DefinedByAnalyzer to be more specific in what it's checking.
>> But does special-casing jdk.jdeps make sense? Or should there be some kind of
>> finer-grained logic to determine when @DefinedBy should and shouldn't apply? I
>> wouldn't be surprised if there are other usages of @DefinedBy outside of
>> jdk.jdeps that are in a similar situation. See jdk.jshell for instance.
>> I've prepared a patch -- not yet posted anywhere -- that simply adds the right
>> @DefinedBy annotations in jdeprscan. This is simple enough to do, even though
>> it might not be the right thing.
>> s'marks
>> On 8/26/16 5:00 AM, Jan Lahoda wrote:
>>> Hi,
>>> The RunCodingRules test is broken after 871b60b0c091, and has been disabled. My
>>> proposal to fix this is to disable the DefinedByAnalyzer for classes from the
>>> jdk.jdeps module. This module is not AFAIK implementing the APIs, and so is not
>>> a primary target of the analyzer/@DefinedBy annotation. One notable alternative
>>> would be to disable the crules completely for jdk.jdeps, but I opted rather for
>>> a more limited change. (Another alternative would be to add the @DefinedBy
>>> annotations to classes jdk.jdeps, but that does not seem quite right to me.)
>>> Bug:
>>> https://bugs.openjdk.java.net/browse/JDK-8164836
>>> Webrev:
>>> http://cr.openjdk.java.net/~jlahoda/8164836/webrev.00/
>>> Jan

More information about the compiler-dev mailing list