You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2018/09/07 17:02:48 UTC

svn commit: r1840313 - in /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox: pdmodel/graphics/color/PDDeviceRGB.java rendering/PDFRenderer.java

Author: tilman
Date: Fri Sep  7 17:02:47 2018
New Revision: 1840313

URL: http://svn.apache.org/viewvc?rev=1840313&view=rev
Log:
PDFBOX-4315: move KCMS info msg so that it comes up only when rendering is called

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceRGB.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PDFRenderer.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceRGB.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceRGB.java?rev=1840313&r1=1840312&r2=1840313&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceRGB.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceRGB.java Fri Sep  7 17:02:47 2018
@@ -20,10 +20,7 @@ import java.awt.color.ColorSpace;
 import java.awt.image.BufferedImage;
 import java.awt.image.WritableRaster;
 import java.io.IOException;
-import java.util.StringTokenizer;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.pdfbox.cos.COSName;
 
 /**
@@ -41,8 +38,6 @@ public final class PDDeviceRGB extends P
     private final PDColor initialColor = new PDColor(new float[] { 0, 0, 0 }, this);
     private volatile ColorSpace awtColorSpace;
 
-    private static final Log LOG = LogFactory.getLog(PDDeviceRGB.class);
-
     private PDDeviceRGB()
     {
     }
@@ -58,8 +53,6 @@ public final class PDDeviceRGB extends P
             return;
         }
 
-        suggestKCMS();
-
         synchronized (this)
         {
             // we might have been waiting for another thread, so check again
@@ -124,47 +117,4 @@ public final class PDDeviceRGB extends P
         image.setData(raster);
         return image;
     }
-
-    private static void suggestKCMS()
-    {
-        String cmmProperty = System.getProperty("sun.java2d.cmm");
-        if (isMinJdk8() && !"sun.java2d.cmm.kcms.KcmsServiceProvider".equals(cmmProperty))
-        {
-            try
-            {
-                // Make sure that class exists
-                Class.forName("sun.java2d.cmm.kcms.KcmsServiceProvider");
-
-                LOG.info("To get higher rendering speed on java 8 or 9,");
-                LOG.info("  use the option -Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider");
-                LOG.info("  or call System.setProperty(\"sun.java2d.cmm\", \"sun.java2d.cmm.kcms.KcmsServiceProvider\")");
-            }
-            catch (ClassNotFoundException e)
-            {
-                LOG.debug("KCMS doesn't exist anymore. SO SAD!", e);
-            }
-        }
-    }
-
-    private static boolean isMinJdk8()
-    {
-        // strategy from lucene-solr/lucene/core/src/java/org/apache/lucene/util/Constants.java
-        String version = System.getProperty("java.specification.version");
-        final StringTokenizer st = new StringTokenizer(version, ".");
-        try
-        {
-            int major = Integer.parseInt(st.nextToken());
-            int minor = 0;
-            if (st.hasMoreTokens())
-            {
-                minor = Integer.parseInt(st.nextToken());
-            }
-            return major > 1 || (major == 1 && minor >= 8);
-        }
-        catch (NumberFormatException nfe)
-        {
-            // maybe some new numbering scheme in the 22nd century
-            return true;
-        }
-    }
 }

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PDFRenderer.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PDFRenderer.java?rev=1840313&r1=1840312&r2=1840313&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PDFRenderer.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PDFRenderer.java Fri Sep  7 17:02:47 2018
@@ -20,6 +20,9 @@ import java.awt.Color;
 import java.awt.Graphics2D;
 import java.awt.image.BufferedImage;
 import java.io.IOException;
+import java.util.StringTokenizer;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.pdfbox.cos.COSName;
 import org.apache.pdfbox.pdmodel.PDDocument;
 import org.apache.pdfbox.pdmodel.PDPage;
@@ -38,6 +41,8 @@ import org.apache.pdfbox.pdmodel.interac
  */
 public class PDFRenderer
 {
+    private static final Log LOG = LogFactory.getLog(PDFRenderer.class);
+
     protected final PDDocument document;
     // TODO keep rendering state such as caches here
     
@@ -57,6 +62,8 @@ public class PDFRenderer
 
     private BufferedImage pageImage;
 
+    private static boolean kcmsLogged = false;
+
     /**
      * Creates a new PDFRenderer.
      * @param document the document to render
@@ -64,6 +71,12 @@ public class PDFRenderer
     public PDFRenderer(PDDocument document)
     {
         this.document = document;
+
+        if (!kcmsLogged)
+        {
+            suggestKCMS();
+            kcmsLogged = true;
+        }
     }
     
     /**
@@ -374,4 +387,48 @@ public class PDFRenderer
     {
         return pageImage;
     }
+
+    private static void suggestKCMS()
+    {
+        String cmmProperty = System.getProperty("sun.java2d.cmm");
+        if (isMinJdk8() && !"sun.java2d.cmm.kcms.KcmsServiceProvider".equals(cmmProperty))
+        {
+            try
+            {
+                // Make sure that class exists
+                Class.forName("sun.java2d.cmm.kcms.KcmsServiceProvider");
+
+                LOG.info("To get higher rendering speed on java 8 or 9,");
+                LOG.info("  use the option -Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider");
+                LOG.info("  or call System.setProperty(\"sun.java2d.cmm\", \"sun.java2d.cmm.kcms.KcmsServiceProvider\")");
+            }
+            catch (ClassNotFoundException e)
+            {
+                // jdk 10 and higher
+                LOG.debug("KCMS doesn't exist anymore. SO SAD!");
+            }
+        }
+    }
+
+    private static boolean isMinJdk8()
+    {
+        // strategy from lucene-solr/lucene/core/src/java/org/apache/lucene/util/Constants.java
+        String version = System.getProperty("java.specification.version");
+        final StringTokenizer st = new StringTokenizer(version, ".");
+        try
+        {
+            int major = Integer.parseInt(st.nextToken());
+            int minor = 0;
+            if (st.hasMoreTokens())
+            {
+                minor = Integer.parseInt(st.nextToken());
+            }
+            return major > 1 || (major == 1 && minor >= 8);
+        }
+        catch (NumberFormatException nfe)
+        {
+            // maybe some new numbering scheme in the 22nd century
+            return true;
+        }
+    }
 }