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
>>>> 
>>> 
>> 
> 

Reply via email to