"This bug is not available." On Jul 19, 2013, at 8:41 PM, Mandy Chung wrote:
> Peter, > > FYI. I have filed this RFE: > 8020968: Load resource files using the caller's class and class loader > http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8020968 > > Mandy > > On 6/25/2013 6:50 PM, Peter Levart wrote: >> Hi, >> >> I know that @CallerSensitive annotation was introduced to bring some order >> to JDK internal plumbings. It's scope was to support JDK internal usage, so >> it's use is limited to classes loaded by bootstrap or extension >> class-loaders. In JDK-internal code it is used mainly for implementing >> security-sensitive decisions. But since the >> sun.reflect.Reflection.getCallerClass(int) was public and unrestricted, it >> found it's way out into user code, where at least I know that it is used in >> two areas: >> >> 1 - to locate callers in the whole call-stack so that their location in >> class-path can be reported (Log4J is an example) >> 2 - to locate immediate caller so that some resources associated with it can >> be located and used (for example localization data in GUI applications) >> >> I don't know how wide-spread 1st usecase is, but the 2nd is common, since >> it's use enables APIs that need not explicitly pass-in the calling class in >> order to locate resources associated with it (and/or the class-loader of >> it). So it would be nice to have such supported API in JDK8 at least. >> >> I'm asking here, to hear any arguments against making such API supported and >> public. Are there any security or other issues? If there aren't, what steps >> should be taken to introduce such API in the JDK8 timeframe? I'm thinking of >> a no-arg method, say j.l.Class.getCaller() and moving @CallerSensitive to a >> supported package + enabling it to mark methods in any class (not just >> system and ext classes)... >> >> Regards, Peter >> >