@CallerSensitive in Java SE 7u25 (original) (raw)

Peter Levart peter.levart at gmail.com
Tue Jun 25 10:19:52 UTC 2013


Hi Chris,

I see it now, thanks.

Regards, Peter

On 06/25/2013 12:14 PM, Chris Hegarty wrote:

Known issue, Mandy has a fix in progress [1].

-Chris. [1] http://mail.openjdk.java.net/pipermail/jdk7u-dev/2013-June/006791.html On 06/25/2013 11:06 AM, Peter Levart wrote: Hi Mandy,

I noticed the @CallerSensitive annotation and machinery behind it has been back-ported to JDK7. That was when one of my apps using sun.reflect.Reflection.getCallerClass(int) failed. The native method taking "int" was deprecated, but it also changed the behavior. If I run the following program: import sun.reflect.Reflection; public class GetCallerClassTest { static class Tester { static void test(int frames) { System.out.println(frames + ": " + Reflection.getCallerClass(frames)); } } public static void main(String[] args) { Tester.test(0); Tester.test(1); Tester.test(2); Tester.test(3); } }

with JDK7u21, I get the following output: 0: class sun.reflect.Reflection 1: class GetCallerClassTest$Tester 2: class GetCallerClassTest 3: null with JDK7u25, I get the following output: 0: class sun.reflect.Reflection 1: class sun.reflect.Reflection 2: class GetCallerClassTest$Tester 3: class GetCallerClassTest It seems that with 7u25 the result is "shifted" for one calling frame. Is that behavior change intentional to encourage people to "get off that wagon"? Regards, Peter



More information about the core-libs-dev mailing list