[OpenJDK 2D-Dev] RFR: 8144526: Remove Marlin logging use of deleted internal API

Sergey Bylokhov Sergey.Bylokhov at oracle.com
Wed Dec 2 19:20:50 UTC 2015


On 03.12.15 0:17, Jim Graham wrote:
> +1 - and file a follow-on bug to restore it with the new API later...

+1

>
>              ...jim
>
> On 12/2/15 10:38 AM, Phil Race wrote:
>> https://bugs.openjdk.java.net/browse/JDK-8144526
>>
>> MarlinUtils uses internal API that has been deleted as part of the new
>> StackWalker.
>> I need to integrate right now and I don't have time to re-write this.
>> In any case it is only used to get a class name to put into a logging
>> message which
>> is currently completely disabled anyway (no way to enable without
>> recompiling).
>>
>> So I changing the method that it always returns unknown and we can
>> rework afterwards.
>>
>> My diff is below :-
>>
>> -phil.
>>
>> hg diff MarlinUtils.java
>> diff --git
>> a/src/java.desktop/share/classes/sun/java2d/marlin/MarlinUtils.java
>> b/src/java.desktop/share/classes/sun/java2d/marlin/MarlinUtils.java
>> --- a/src/java.desktop/share/classes/sun/java2d/marlin/MarlinUtils.java
>> +++ b/src/java.desktop/share/classes/sun/java2d/marlin/MarlinUtils.java
>> @@ -25,8 +25,6 @@
>>
>>   package sun.java2d.marlin;
>>
>> -import jdk.internal.misc.JavaLangAccess;
>> -import jdk.internal.misc.SharedSecrets;
>>
>>   public final class MarlinUtils {
>>       // TODO: use sun.util.logging.PlatformLogger once in JDK9
>> @@ -70,31 +68,6 @@
>>           String sourceClassName = null;
>>           String sourceMethodName = null;
>>
>> -        JavaLangAccess access = SharedSecrets.getJavaLangAccess();
>> -        Throwable throwable = new Throwable();
>> -        int depth = access.getStackTraceDepth(throwable);
>> -
>> -        boolean lookingForClassName = true;
>> -        for (int ix = 0; ix < depth; ix++) {
>> -            // Calling getStackTraceElement directly prevents the VM
>> -            // from paying the cost of building the entire stack frame.
>> -            StackTraceElement frame =
>> access.getStackTraceElement(throwable, ix);
>> -            String cname = frame.getClassName();
>> -            if (lookingForClassName) {
>> -                // Skip all frames until we have found the first frame
>> having the class name.
>> -                if (cname.equals(className)) {
>> -                    lookingForClassName = false;
>> -                }
>> -            } else {
>> -                if (!cname.equals(className)) {
>> -                    // We've found the relevant frame.
>> -                    sourceClassName = cname;
>> -                    sourceMethodName = frame.getMethodName();
>> -                    break;
>> -                }
>> -            }
>> -        }
>> -
>>           if (sourceClassName != null) {
>>               return sourceClassName + " " + sourceMethodName;
>>           } else {
>>
>>


-- 
Best regards, Sergey.



More information about the 2d-dev mailing list