I bought this up a couple of times too. Here's my latest:
http://mail.openjdk.java.net/pipermail/core-libs-dev/2013-July/019118.html

I jumped into the discussion because of @CallerSensitive. They were talking
about getCallerClass() and I proposed they expose that as a public API. I
see no reason why it shouldn't -- it is certainly useful in several
situations. However, no Oracle employee ever responded to me.

Paul


On Sat, Jul 27, 2013 at 12:53 PM, Nick Williams <
nicho...@nicholaswilliams.net> wrote:

> By "ongoing" I meant that nothing had been agreed on yet. I've been
> meaning to bring it back up and jump-start negotiations, and I'll do that
> now.
>
> Nick
>
>
> On Jul 27, 2013, at 12:40 PM, Ralph Goers wrote:
>
> I've read all of these plus a few that are linked from them and haven't
> seen a concrete proposal for a fix that has been accepted. All the threads
> appear to have stopped so I don't know how I should consider the
> discussions "ongoing".
>
> I should point out that besides the enhanced throwable converters
> ClassLoaderContextSelector also uses getCallerClass. It does that to
> determine the ClassLoader of the Class that obtained the Logger so that we
> can make sure it is associated with the LoggerContext associated with that
> ClassLoader (which means that when an app is un-deployed all of its Loggers
> are freed.
>
> Ralph
>
>
> On Jul 27, 2013, at 9:15 AM, Nick Williams wrote:
>
> It was later pointed out to me that I was emailing the wrong list for this
> kind of discussion. I've emailed the core libraries mailing list and
> several thorough discussions have resulted. I made just the suggestion you
> point out (get a stack trace from a Throwable that has Class objects in it)
> [1] [2] [3]. Discussions are still ongoing and hopefully we can convince
> them to do something. The more people we can have chiming in on these
> threads, the better.
>
> Nick
>
> [1]
> http://mail.openjdk.java.net/pipermail/core-libs-dev/2013-June/018049.html
> [2]
> http://mail.openjdk.java.net/pipermail/core-libs-dev/2013-June/018349.html
> ,
> http://mail.openjdk.java.net/pipermail/core-libs-dev/2013-July/019098.html
> [3]
> http://mail.openjdk.java.net/pipermail/core-libs-dev/2013-July/018855.html
>
> On Jul 27, 2013, at 10:52 AM, Ralph Goers wrote:
>
> Thanks Jörn,
>
> This was first reported to us in May in LOG4J2-245.  Nick sent a message
> to the openjdk list at that time [1] but it seemed to be ignored.  How
> would you propose we convince Oracle?  To be honest, I would much prefer
> that I be able to get a stack trace from a Throwable that has the Class
> objects in it, instead of just the class names.
>
> Ralph
>
>
>
> [1]
> http://mail.openjdk.java.net/pipermail/java-se-8-spec-comments/2013-May/000014.html
>
> On Jul 26, 2013, at 2:43 AM, Jörn Huxhorn wrote:
>
> Hi everyone.
>
> I wanted to inform you about the following Logback issues since their root
> causes will also impact log4j:
>
> http://jira.qos.ch/browse/LOGBACK-885
> https://github.com/qos-ch/logback/pull/136
>
> In short:
> sun.reflect.Reflection.getCallerClass
> - changed behavior in Java7u25 since the stack frames have changed.
> http://bugs.sun.com/view_bug.do?bug_id=8016814
> - will throw an UnsupportedOperationException in upcoming Java7u40.
> http://bugs.sun.com/view_bug.do?bug_id=8014925
> - will be removed in Java8 with no replacement.
> http://bugs.sun.com/view_bug.do?bug_id=8020785
>
> https://github.com/qos-ch/logback/pull/136 contains a way to get similar
> informations but, unfortunately, it is 100x slower
> than sun.reflect.Reflection.getCallerClass.
>
> http://bugs.sun.com/view_bug.do?bug_id=8014925 contains the following
> text:
> "JEP-176 proposes to remove sun.reflect.Reflection.getCallerClass(int)
> that has incompatibility concern since there are existing applications
> depending on this private API such as Oracle Diagnostic Logging and
> jidesoft library that breaks Oracle Primavera.
>
> The jdk part of JEP-176 has been backported to 7u25 but keep
> sun.reflect.Reflection.getCallerClass(int) as the mitigration plan
> (JDK-8014745) in 7u25.
>
> The following describes the transition plan to allow customers to migrate
> their applications away from this private API:
> 1. Disable sun.reflect.Reflection.getCallerClass(int) in 7u40 and provide
> a flag to re-enable it
> 2. Determine how this private API is being used and the use cases
> 3. Remove this private API if there is no valid use case or there is a
> proper replacement for it. Allow at least 2 CPU releases to allow customers
> to make appropriate change.  So the earliest for the removal is 7u55.  If
> there are valid use cases but no proper replacement, we may keep this
> private API in jdk7u for longer."
> I consider the use of this API in logging frameworks a very valid use
> case, especially since the only replacements available would have severe
> impact on the performance (other techniques like generating a Stacktrace
> via Throwable are even slower than the SecurityManager workaround in the
> pull request) - so we should probably all try to convince Oracle that a
> proper replacement, ideally in a public API, is needed.
>
> Cheers,
> Jörn.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
> For additional commands, e-mail: log4j-dev-h...@logging.apache.org
>
>
>
>
>
>


-- 
Cheers,
Paul

Reply via email to