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 2017/11/16 17:23:29 UTC
svn commit: r1815489 -
/pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java
Author: tilman
Date: Thu Nov 16 17:23:29 2017
New Revision: 1815489
URL: http://svn.apache.org/viewvc?rev=1815489&view=rev
Log:
PDFBOX-4013: disable Mac OS X file open/quit handler for jdk9 and higher
Modified:
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java
Modified: pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java?rev=1815489&r1=1815488&r2=1815489&view=diff
==============================================================================
--- pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java (original)
+++ pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java Thu Nov 16 17:23:29 2017
@@ -42,6 +42,7 @@ import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import java.util.StringTokenizer;
import javax.print.attribute.HashPrintRequestAttributeSet;
import javax.print.attribute.PrintRequestAttributeSet;
import javax.print.attribute.standard.Sides;
@@ -292,8 +293,9 @@ public class PDFDebugger extends JFrame
});
// Mac OS X file open/quit handler
- if (IS_MAC_OS)
+ if (IS_MAC_OS && !isMinJdk9())
{
+ //TODO this needs to be rewritten for JDK9, see PDFBOX-4013
try
{
Method osxOpenFiles = getClass().getDeclaredMethod("osxOpenFiles", String.class);
@@ -1425,4 +1427,26 @@ public class PDFDebugger extends JFrame
}
return null;
}
+
+ private static boolean isMinJdk9()
+ {
+ // 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 >= 9);
+ }
+ catch (NumberFormatException nfe)
+ {
+ // maybe some new numbering scheme in the 22nd century
+ return true;
+ }
+ }
}