[ https://issues.apache.org/jira/browse/RIVER-7?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12464713 ]
Mark Brouwer commented on RIVER-7: ---------------------------------- The check to perform is rather trivial, with this minor fix the new semantics for {{ClassDep}} will become: "??By default, if a static nested class is included in the dependency graph, all references from that static nested class to its immediate lexically enclosing class are ignored *(except when the static nested class extends its outer class)*, to avoid inadvertent inclusion of the enclosing class. (The default is chosen this way because the compiled class file of a static nested class always contains a reference to the immediate lexically enclosing class.) This option causes all such references to be considered rather than ignored. Note that this option is needed very infrequently.??" > com.sun.jini.tool.ClassDep should be smarter with outer classes > --------------------------------------------------------------- > > Key: RIVER-7 > URL: https://issues.apache.org/jira/browse/RIVER-7 > Project: Apache River > Issue Type: Improvement > Reporter: Mark Brouwer > > The javadoc for {{com.sun.jini.tool.ClassDep}} states the following "??By > default, if a static nested class is included in the dependency graph, all > references from that static nested class to its immediate lexically enclosing > class are ignored, to avoid inadvertent inclusion of the enclosing class. > (The default is chosen this way because the compiled class file of a static > nested class always contains a reference to the immediate lexically enclosing > class.) This option causes all such references to be considered rather than > ignored. Note that this option is needed very infrequently.??". > I agree with this default behavior, however I've been surpised a few times by > the following use case which always looked like a bug in {{ClassDep}}. > {noformat:nopanel} > class Proxy { > static final class ConstrainableProxy extends Proxy { > } > } > {noformat} > During dependency checking I want to specify {{Proxy$ConstrainableProxy}} but > in most cases this causes {{Proxy}} to be missing from the download JAR file > (although often a trust verifier drags it in anyway) and changing the default > behavior is not what I want. > Maybe it is possible to add a check to see whether the enclosing class is a > parent of the nested class, if so it could be including in the collection of > classes to be considered for dependency checking. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira