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

Phil Race philip.race at oracle.com
Wed Dec 2 18:38:36 UTC 2015


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 {





More information about the 2d-dev mailing list