diff --git a/jdk/src/java.desktop/share/classes/sun/java2d/marlin/ByteArrayCache.java b/jdk/src/java.desktop/share/classes/sun/java2d/marlin/ByteArrayCache.java index cd6ebee89e8..226a3d2e30d 100644 --- a/jdk/src/java.desktop/share/classes/sun/java2d/marlin/ByteArrayCache.java +++ b/jdk/src/java.desktop/share/classes/sun/java2d/marlin/ByteArrayCache.java @@ -74,7 +74,7 @@ final class ByteArrayCache implements MarlinConst { void putDirtyArray(final byte[] array, final int length) { if (length != arraySize) { if (doChecks) { - System.out.println("ArrayCache: bad length = " + length); + MarlinUtils.logInfo("ArrayCache: bad length = " + length); } return; } @@ -98,7 +98,7 @@ final class ByteArrayCache implements MarlinConst { { if (length != arraySize) { if (doChecks) { - System.out.println("ArrayCache: bad length = " + length); + MarlinUtils.logInfo("ArrayCache: bad length = " + length); } return; } diff --git a/jdk/src/java.desktop/share/classes/sun/java2d/marlin/FloatArrayCache.java b/jdk/src/java.desktop/share/classes/sun/java2d/marlin/FloatArrayCache.java index a068ad80fbc..06d7f351e28 100644 --- a/jdk/src/java.desktop/share/classes/sun/java2d/marlin/FloatArrayCache.java +++ b/jdk/src/java.desktop/share/classes/sun/java2d/marlin/FloatArrayCache.java @@ -75,7 +75,7 @@ final class FloatArrayCache implements MarlinConst { void putDirtyArray(final float[] array, final int length) { if (length != arraySize) { if (doChecks) { - System.out.println("ArrayCache: bad length = " + length); + MarlinUtils.logInfo("ArrayCache: bad length = " + length); } return; } @@ -99,7 +99,7 @@ final class FloatArrayCache implements MarlinConst { { if (length != arraySize) { if (doChecks) { - System.out.println("ArrayCache: bad length = " + length); + MarlinUtils.logInfo("ArrayCache: bad length = " + length); } return; } diff --git a/jdk/src/java.desktop/share/classes/sun/java2d/marlin/IntArrayCache.java b/jdk/src/java.desktop/share/classes/sun/java2d/marlin/IntArrayCache.java index ccd239cb534..11c5aae84f6 100644 --- a/jdk/src/java.desktop/share/classes/sun/java2d/marlin/IntArrayCache.java +++ b/jdk/src/java.desktop/share/classes/sun/java2d/marlin/IntArrayCache.java @@ -74,7 +74,7 @@ final class IntArrayCache implements MarlinConst { void putDirtyArray(final int[] array, final int length) { if (length != arraySize) { if (doChecks) { - System.out.println("ArrayCache: bad length = " + length); + MarlinUtils.logInfo("ArrayCache: bad length = " + length); } return; } @@ -98,7 +98,7 @@ final class IntArrayCache implements MarlinConst { { if (length != arraySize) { if (doChecks) { - System.out.println("ArrayCache: bad length = " + length); + MarlinUtils.logInfo("ArrayCache: bad length = " + length); } return; } diff --git a/jdk/src/java.desktop/share/classes/sun/java2d/marlin/MarlinConst.java b/jdk/src/java.desktop/share/classes/sun/java2d/marlin/MarlinConst.java index e799504318d..72993ebfd7c 100644 --- a/jdk/src/java.desktop/share/classes/sun/java2d/marlin/MarlinConst.java +++ b/jdk/src/java.desktop/share/classes/sun/java2d/marlin/MarlinConst.java @@ -30,8 +30,8 @@ package sun.java2d.marlin; */ interface MarlinConst { // enable Logs (logger or stdout) - static final boolean enableLogs = false; - // enable Logger + static final boolean enableLogs = MarlinProperties.isLoggingEnabled(); + // use Logger instead of stdout static final boolean useLogger = enableLogs && MarlinProperties.isUseLogger(); // log new RendererContext @@ -47,9 +47,10 @@ interface MarlinConst { static final boolean doStats = enableLogs && MarlinProperties.isDoStats(); // do monitors // disabled to reduce byte-code size a bit... - static final boolean doMonitors = enableLogs && false; // MarlinProperties.isDoMonitors(); + static final boolean doMonitors = false; +// static final boolean doMonitors = enableLogs && MarlinProperties.isDoMonitors(); // do checks - static final boolean doChecks = false; // MarlinProperties.isDoChecks(); + static final boolean doChecks = enableLogs && MarlinProperties.isDoChecks(); // do AA range checks: disable when algorithm / code is stable static final boolean DO_AA_RANGE_CHECK = false; diff --git a/jdk/src/java.desktop/share/classes/sun/java2d/marlin/MarlinProperties.java b/jdk/src/java.desktop/share/classes/sun/java2d/marlin/MarlinProperties.java index 002f16d9d5b..bbee15a13fb 100644 --- a/jdk/src/java.desktop/share/classes/sun/java2d/marlin/MarlinProperties.java +++ b/jdk/src/java.desktop/share/classes/sun/java2d/marlin/MarlinProperties.java @@ -136,6 +136,10 @@ public final class MarlinProperties { // logging parameters + public static boolean isLoggingEnabled() { + return getBoolean("sun.java2d.renderer.log", "false"); + } + public static boolean isUseLogger() { return getBoolean("sun.java2d.renderer.useLogger", "false"); } diff --git a/jdk/src/java.desktop/share/classes/sun/java2d/marlin/MarlinUtils.java b/jdk/src/java.desktop/share/classes/sun/java2d/marlin/MarlinUtils.java index d218d06f545..aeeacca57bd 100644 --- a/jdk/src/java.desktop/share/classes/sun/java2d/marlin/MarlinUtils.java +++ b/jdk/src/java.desktop/share/classes/sun/java2d/marlin/MarlinUtils.java @@ -27,12 +27,12 @@ package sun.java2d.marlin; public final class MarlinUtils { - // TODO: use sun.util.logging.PlatformLogger once in JDK9 - private static final java.util.logging.Logger log; + // Marlin logger + private static final sun.util.logging.PlatformLogger log; static { if (MarlinConst.useLogger) { - log = java.util.logging.Logger.getLogger("sun.java2d.marlin"); + log = sun.util.logging.PlatformLogger.getLogger("sun.java2d.marlin"); } else { log = null; } @@ -53,25 +53,11 @@ public final class MarlinUtils { public static void logException(final String msg, final Throwable th) { if (MarlinConst.useLogger) { -// log.warning(msg, th); - log.log(java.util.logging.Level.WARNING, msg, th); + log.warning(msg, th); } else if (MarlinConst.enableLogs) { System.out.print("WARNING: "); System.out.println(msg); th.printStackTrace(System.err); } } - - // Returns the caller's class and method's name; best effort - // if cannot infer, return the logger's name. - static String getCallerInfo(String className) { - String sourceClassName = null; - String sourceMethodName = null; - - if (sourceClassName != null) { - return sourceClassName + " " + sourceMethodName; - } else { - return "unknown"; - } - } } diff --git a/jdk/src/java.desktop/share/classes/sun/java2d/marlin/RendererContext.java b/jdk/src/java.desktop/share/classes/sun/java2d/marlin/RendererContext.java index 7af675b16b7..a767651f5d5 100644 --- a/jdk/src/java.desktop/share/classes/sun/java2d/marlin/RendererContext.java +++ b/jdk/src/java.desktop/share/classes/sun/java2d/marlin/RendererContext.java @@ -31,7 +31,6 @@ import java.lang.ref.WeakReference; import java.util.concurrent.atomic.AtomicInteger; import static sun.java2d.marlin.ArrayCache.*; import sun.java2d.marlin.MarlinRenderingEngine.NormalizingPathIterator; -import static sun.java2d.marlin.MarlinUtils.getCallerInfo; import static sun.java2d.marlin.MarlinUtils.logInfo; /** @@ -39,7 +38,6 @@ import static sun.java2d.marlin.MarlinUtils.logInfo; */ final class RendererContext implements MarlinConst { - private static final String className = RendererContext.class.getName(); // RendererContext creation counter private static final AtomicInteger contextCount = new AtomicInteger(1); // RendererContext statistics @@ -214,8 +212,7 @@ final class RendererContext implements MarlinConst { } if (doLogOverSize) { - logInfo("getDirtyByteArray[oversize]: length=\t" + length - + "\tfrom=\t" + getCallerInfo(className)); + logInfo("getDirtyByteArray[oversize]: length=\t" + length); } return new byte[length]; @@ -254,7 +251,7 @@ final class RendererContext implements MarlinConst { if (doLogWidenArray) { logInfo("widenDirtyByteArray[" + res.length + "]: usedSize=\t" + usedSize + "\tlength=\t" + length + "\tneeded length=\t" - + needSize + "\tfrom=\t" + getCallerInfo(className)); + + needSize); } return res; } @@ -275,8 +272,7 @@ final class RendererContext implements MarlinConst { } if (doLogOverSize) { - logInfo("getIntArray[oversize]: length=\t" + length + "\tfrom=\t" - + getCallerInfo(className)); + logInfo("getIntArray[oversize]: length=\t" + length); } return new int[length]; @@ -306,7 +302,7 @@ final class RendererContext implements MarlinConst { if (doLogWidenArray) { logInfo("widenIntArray[" + res.length + "]: usedSize=\t" + usedSize + "\tlength=\t" + length + "\tneeded length=\t" - + needSize + "\tfrom=\t" + getCallerInfo(className)); + + needSize); } return res; } @@ -338,8 +334,7 @@ final class RendererContext implements MarlinConst { } if (doLogOverSize) { - logInfo("getDirtyIntArray[oversize]: length=\t" + length - + "\tfrom=\t" + getCallerInfo(className)); + logInfo("getDirtyIntArray[oversize]: length=\t" + length); } return new int[length]; @@ -369,7 +364,7 @@ final class RendererContext implements MarlinConst { if (doLogWidenArray) { logInfo("widenDirtyIntArray[" + res.length + "]: usedSize=\t" + usedSize + "\tlength=\t" + length + "\tneeded length=\t" - + needSize + "\tfrom=\t" + getCallerInfo(className)); + + needSize); } return res; } @@ -399,8 +394,7 @@ final class RendererContext implements MarlinConst { } if (doLogOverSize) { - logInfo("getDirtyFloatArray[oversize]: length=\t" + length - + "\tfrom=\t" + getCallerInfo(className)); + logInfo("getDirtyFloatArray[oversize]: length=\t" + length); } return new float[length]; @@ -430,7 +424,7 @@ final class RendererContext implements MarlinConst { if (doLogWidenArray) { logInfo("widenDirtyFloatArray[" + res.length + "]: usedSize=\t" + usedSize + "\tlength=\t" + length + "\tneeded length=\t" - + needSize + "\tfrom=\t" + getCallerInfo(className)); + + needSize); } return res; }