@CallerSensitive in Java SE 7u25

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