RFR [11] JDK-8179424: Remove terminally deprecated sun.reflect.Reflection.getCallerClass (original) (raw)

Chris Hegarty chris.hegarty at oracle.com
Thu Dec 21 17🔞19 UTC 2017


On 21 Dec 2017, at 16:09, mandy chung <mandy.chung at oracle.com> wrote:

... The test is about identifying StackWalker as the replacement supported API for getCallerClass, which is continues to do. I could add yet another scenario to test for a different internal API that also has a replacement, and add the appropriate @modules to the test to expose its package. The test shows sun.reflect.Reflection as a removed API seems odd since the class is present but not getCallerClass(int).

There appears to be some confusion here. My webrev REMOVES sun.reflect.Reflection completely, since getCallerClass(int) was its last method. For compilation purposes, the test uses a patched jdk.unsupported module with sun.reflect.Reflection, but that class is not present at runtime. So the sun.reflect.Reflection internal API has been removed, no?

p.Main is used to check that reference to sun.reflect.Reflection is flagged as JDK internal use and not a removed class. I suggest to change it to use another sun.reflect.Reflection API

There is no other API in sun.reflect.Reflection, unless you mean to use something in sun.reflect.ReflectionFactory ?

and create an issue to follow up sun.reflect.Reflection as flagged as a removed API.

That’s what the test now does with my changes. Why separate it out into a separate issue? If we need a test for an internal API, I can add a scenario that uses sun.reflect.ReflectionFactory.

-Chris.



More information about the core-libs-dev mailing list