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 2022/03/23 16:31:08 UTC
svn commit: r1899153 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
Author: tilman
Date: Wed Mar 23 16:31:08 2022
New Revision: 1899153
URL: http://svn.apache.org/viewvc?rev=1899153&view=rev
Log:
PDFBOX-5397: use dash workaround for all versions; remove version detection
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java?rev=1899153&r1=1899152&r2=1899153&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java Wed Mar 23 16:31:08 2022
@@ -55,7 +55,6 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.StringTokenizer;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -164,8 +163,6 @@ public class PageDrawer extends PDFGraph
private final RenderingHints renderingHints;
private final float imageDownscalingOptimizationThreshold;
- static final int JAVA_VERSION = PageDrawer.getJavaVersion();
-
/**
* Default annotations filter, returns all annotations
*/
@@ -749,32 +746,21 @@ public class PageDrawer extends PDFGraph
return null;
}
}
- if (JAVA_VERSION < 10)
+ for (int i = 0; i < dashArray.length; ++i)
{
- for (int i = 0; i < dashArray.length; ++i)
+ // apply the CTM
+ float w = transformWidth(dashArray[i]);
+ // minimum line dash width avoids JVM crash,
+ // see PDFBOX-2373, PDFBOX-2929, PDFBOX-3204, PDFBOX-3813
+ // also avoid 0 in array like "[ 0 1000 ] 0 d", see PDFBOX-3724
+ if (xformScalingFactorX < 0.5f)
{
- // apply the CTM
- float w = transformWidth(dashArray[i]);
- // minimum line dash width avoids JVM crash,
- // see PDFBOX-2373, PDFBOX-2929, PDFBOX-3204, PDFBOX-3813
- // also avoid 0 in array like "[ 0 1000 ] 0 d", see PDFBOX-3724
- if (xformScalingFactorX < 0.5f)
- {
- // PDFBOX-4492
- dashArray[i] = Math.max(w, 0.2f);
- }
- else
- {
- dashArray[i] = Math.max(w, 0.062f);
- }
+ // PDFBOX-4492
+ dashArray[i] = Math.max(w, 0.2f);
}
- }
- else
- {
- for (int i = 0; i < dashArray.length; ++i)
+ else
{
- // apply the CTM
- dashArray[i] = transformWidth(dashArray[i]);
+ dashArray[i] = Math.max(w, 0.062f);
}
}
return dashArray;
@@ -1985,26 +1971,4 @@ public class PageDrawer extends PDFGraph
// AnyOn is default
return visibles.stream().noneMatch(v -> v);
}
-
- private static int getJavaVersion()
- {
- // 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 ? minor : major;
- }
- catch (NumberFormatException nfe)
- {
- // maybe some new numbering scheme in the 22nd century
- return 0;
- }
- }
}