diff options
Diffstat (limited to 'java/openjdk8/files/patch-jdk-src-share-classes-sun-print-PSPrinterJob.java')
-rw-r--r-- | java/openjdk8/files/patch-jdk-src-share-classes-sun-print-PSPrinterJob.java | 41 |
1 files changed, 9 insertions, 32 deletions
diff --git a/java/openjdk8/files/patch-jdk-src-share-classes-sun-print-PSPrinterJob.java b/java/openjdk8/files/patch-jdk-src-share-classes-sun-print-PSPrinterJob.java index b32b1579c72b..aed831dfa6de 100644 --- a/java/openjdk8/files/patch-jdk-src-share-classes-sun-print-PSPrinterJob.java +++ b/java/openjdk8/files/patch-jdk-src-share-classes-sun-print-PSPrinterJob.java @@ -1,34 +1,11 @@ ---- jdk/src/share/classes/sun/print/PSPrinterJob.java -+++ jdk/src/share/classes/sun/print/PSPrinterJob.java -@@ -1588,8 +1588,30 @@ - - String osname = System.getProperty("os.name"); - if (osname.equals("Linux") || osname.endsWith("BSD") || osname.contains("OS X")) { -+ String lprPath = "/usr/bin/lpr"; -+ if (osname.endsWith("BSD")) { -+ final PrintService pservice = getPrintService(); -+ Boolean isIPPPrinter = -+ (Boolean)java.security.AccessController.doPrivileged( -+ new java.security.PrivilegedAction() { -+ public Object run() { -+ try { -+ Class psClass = -+ Class.forName("sun.print.IPPPrintService"); -+ if (psClass.isInstance(pservice)) { -+ return Boolean.TRUE; -+ } -+ } catch (Throwable t) { -+ } -+ return Boolean.FALSE; -+ } -+ }); -+ if (isIPPPrinter) { +--- .jdk/src/share/classes/sun/print/PSPrinterJob.java.orig 2015-07-18 14:45:27.000000000 -0700 ++++ jdk/src/share/classes/sun/print/PSPrinterJob.java 2015-07-18 14:50:32.000000000 -0700 +@@ -1607,7 +1607,7 @@ + } + }); + if (isIPPPrinter) { +- lprPath = "/usr/local/bin/lpr"; + lprPath = "%%LOCALBASE%%/bin/lpr"; -+ } -+ } - execCmd = new String[ncomps]; -- execCmd[n++] = "/usr/bin/lpr"; -+ execCmd[n++] = lprPath; - if ((pFlags & PRINTER) != 0) { - execCmd[n++] = "-P" + printer; + } } + execCmd = new String[ncomps]; |