+1 - and file a follow-on bug to restore it with the new API later...
...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 {