[
https://issues.apache.org/jira/browse/GROOVY-9081?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Daniel Sun updated GROOVY-9081:
-------------------------------
Description:
This cloned issue is to cover the rest part of case ② as mentioned in
GROOVY-8339.
*?* means that we should discuss the case further as some breaking changes may
be introduced.
h4. -1) Sub-class derives the public members from {{package-private}} class,
but invoke the members on the sub class instances, e.g.-
*-1.0) Non-category-*
[https://github.com/apache/groovy/blob/master/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Groovysh.groovy#L532]
*-1.1) Category-*
[https://github.com/apache/groovy/blob/master/src/spec/test/TraitsSpecificationTest.groovy#L835]
h4. -3) Access {{public}} members of {{private}} class, e.g.-
[https://github.com/apache/groovy/blob/master/subprojects/groovy-console/src/main/groovy/groovy/inspect/swingui/ScriptToTreeNodeAdapter.groovy#L235]
{{java.util.Collections.UnmodifiableMap::toString}}
We should try to find the overrided member of its base class and
access(virtual invocation will happen eventually)
h4. -4) Access {{public}} members of {{package-private}} class, e.g.-
[https://github.com/apache/groovy/blob/master/src/spec/test/gdk/WorkingWithIOSpecTest.groovy#L355]
{{java.lang.ProcessImpl::waitFor}}
We should try to find the overrided member of its base class and
access(virtual invocation will happen eventually)
h4. -5) Favor the method with more accurate parameter type even if it is not
visible, e.g. {{EnumMap::equals(EnumMap<?,?>)}}-
[https://github.com/apache/groovy/blob/master/subprojects/parser-antlr4/src/test/groovy/org/apache/groovy/parser/antlr4/util/ASTComparatorCategory.groovy#L271]
When comparing two {{ClassNode}} instances, {{ClassNode.transformInstances}}
will be compared, their type is {{EnumMap}}
h4. -7) Access non-visible constructor when {{as}} type, e.g.-
[https://github.com/apache/groovy/blob/master/src/test/groovy/lang/MapOfClosureTest.groovy#L57]
The constructor of {{TimerTask}} is {{protected}}
h4.
was:
This cloned issue is to cover the rest part of case ② as mentioned in
GROOVY-8339.
*?* means that we should discuss the case further as some breaking changes may
be introduced.
h4. 1) Sub-class derives the public members from {{package-private}} class, but
invoke the members on the sub class instances, e.g.
*-1.0) Non-category-*
[https://github.com/apache/groovy/blob/master/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Groovysh.groovy#L532]
*-1.1) Category-*
[https://github.com/apache/groovy/blob/master/src/spec/test/TraitsSpecificationTest.groovy#L835]
h4. -3) Access {{public}} members of {{private}} class, e.g.-
[https://github.com/apache/groovy/blob/master/subprojects/groovy-console/src/main/groovy/groovy/inspect/swingui/ScriptToTreeNodeAdapter.groovy#L235]
{{java.util.Collections.UnmodifiableMap::toString}}
We should try to find the overrided member of its base class and
access(virtual invocation will happen eventually)
h4. -4) Access {{public}} members of {{package-private}} class, e.g.-
[https://github.com/apache/groovy/blob/master/src/spec/test/gdk/WorkingWithIOSpecTest.groovy#L355]
{{java.lang.ProcessImpl::waitFor}}
We should try to find the overrided member of its base class and
access(virtual invocation will happen eventually)
h4. -5) Favor the method with more accurate parameter type even if it is not
visible, e.g. {{EnumMap::equals(EnumMap<?,?>)}}-
[https://github.com/apache/groovy/blob/master/subprojects/parser-antlr4/src/test/groovy/org/apache/groovy/parser/antlr4/util/ASTComparatorCategory.groovy#L271]
When comparing two {{ClassNode}} instances, {{ClassNode.transformInstances}}
will be compared, their type is {{EnumMap}}
h4.
h4. -7) Access non-visible constructor when {{as}} type, e.g.-
[https://github.com/apache/groovy/blob/master/src/test/groovy/lang/MapOfClosureTest.groovy#L57]
The constructor of {{TimerTask}} is {{protected}}
h4.
> CLONE - Fix warning "An illegal reflective access operation has occurred"
> -------------------------------------------------------------------------
>
> Key: GROOVY-9081
> URL: https://issues.apache.org/jira/browse/GROOVY-9081
> Project: Groovy
> Issue Type: Improvement
> Components: groovy-jdk
> Affects Versions: 2.4.11, 2.4.15
> Environment: >gradle --version
> Gradle 4.2
> Build time: 2017-09-20 14:48:23 UTC
> Revision: 5ba503cc17748671c83ce35d7da1cffd6e24dfbd
> Groovy: 2.4.11
> Ant: Apache Ant(TM) version 1.9.6 compiled on June 29 2015
> JVM: 9 (Oracle Corporation 9+181)
> OS: Windows 10 10.0 amd64
> Reporter: Benjamin Roedell
> Priority: Major
> Time Spent: 1h 50m
> Remaining Estimate: 0h
>
> This cloned issue is to cover the rest part of case ② as mentioned in
> GROOVY-8339.
> *?* means that we should discuss the case further as some breaking changes
> may be introduced.
> h4. -1) Sub-class derives the public members from {{package-private}} class,
> but invoke the members on the sub class instances, e.g.-
> *-1.0) Non-category-*
>
> [https://github.com/apache/groovy/blob/master/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Groovysh.groovy#L532]
> *-1.1) Category-*
>
> [https://github.com/apache/groovy/blob/master/src/spec/test/TraitsSpecificationTest.groovy#L835]
> h4. -3) Access {{public}} members of {{private}} class, e.g.-
> [https://github.com/apache/groovy/blob/master/subprojects/groovy-console/src/main/groovy/groovy/inspect/swingui/ScriptToTreeNodeAdapter.groovy#L235]
> {{java.util.Collections.UnmodifiableMap::toString}}
> We should try to find the overrided member of its base class and
> access(virtual invocation will happen eventually)
> h4. -4) Access {{public}} members of {{package-private}} class, e.g.-
> [https://github.com/apache/groovy/blob/master/src/spec/test/gdk/WorkingWithIOSpecTest.groovy#L355]
> {{java.lang.ProcessImpl::waitFor}}
> We should try to find the overrided member of its base class and
> access(virtual invocation will happen eventually)
> h4. -5) Favor the method with more accurate parameter type even if it is not
> visible, e.g. {{EnumMap::equals(EnumMap<?,?>)}}-
> [https://github.com/apache/groovy/blob/master/subprojects/parser-antlr4/src/test/groovy/org/apache/groovy/parser/antlr4/util/ASTComparatorCategory.groovy#L271]
> When comparing two {{ClassNode}} instances, {{ClassNode.transformInstances}}
> will be compared, their type is {{EnumMap}}
> h4. -7) Access non-visible constructor when {{as}} type, e.g.-
> [https://github.com/apache/groovy/blob/master/src/test/groovy/lang/MapOfClosureTest.groovy#L57]
> The constructor of {{TimerTask}} is {{protected}}
> h4.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)