--- old/test/java/awt/print/PrinterJob/BannerTest.java 2016-12-16 13:57:11.566322000 +0530 +++ new/test/java/awt/print/PrinterJob/BannerTest.java 2016-12-16 13:57:11.270173999 +0530 @@ -22,7 +22,7 @@ */ /* * @test - * @bug 6575247 + * @bug 6575247 8170579 * @summary Verifies if Banner page is printed * @requires (os.family == "linux" | os.family == "solaris") * @run main/manual BannerTest @@ -39,6 +39,9 @@ import static java.awt.print.Printable.PAGE_EXISTS; import java.awt.print.PrinterException; import java.awt.print.PrinterJob; +import javax.print.PrintService; +import javax.print.attribute.standard.JobSheets; +import javax.print.attribute.standard.SheetCollate; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JPanel; @@ -50,8 +53,18 @@ private static Thread mainThread; private static boolean testPassed; private static boolean testGeneratedInterrupt; + private static volatile PrinterJob job; public static void main(String[] args) throws Exception { + job = PrinterJob.getPrinterJob(); + PrintService prtSrv = job.getPrintService(); + if (job.getPrintService() == null) { + System.out.println("No printers. Test cannot continue"); + return; + } + if (!prtSrv.isAttributeCategorySupported(JobSheets.class)) { + return; + } SwingUtilities.invokeAndWait(() -> { doTest(BannerTest::printTest); }); @@ -69,11 +82,7 @@ } private static void printTest() { - PrinterJob job = PrinterJob.getPrinterJob(); - if (job.getPrintService() == null) { - System.out.println("No printers. Test cannot continue"); - return; - } + job.setPrintable(new BannerTest()); if(job.printDialog()) { try { --- old/test/java/awt/print/PrinterJob/TestCheckSystemDefaultBannerOption.java 2016-12-16 13:57:12.478778000 +0530 +++ new/test/java/awt/print/PrinterJob/TestCheckSystemDefaultBannerOption.java 2016-12-16 13:57:12.214646000 +0530 @@ -22,7 +22,7 @@ */ /* * @test - * @bug 8165947 + * @bug 8165947 8170579 * @summary Verifies System default banner page option is honoured by jdk * @requires (os.family == "linux" | os.family == "solaris") * @run main/manual TestCheckSystemDefaultBannerOption @@ -38,6 +38,7 @@ import static java.awt.print.Printable.PAGE_EXISTS; import java.awt.print.PrinterException; import java.awt.print.PrinterJob; +import javax.print.PrintService; import javax.print.attribute.standard.JobSheets; import javax.swing.JButton; import javax.swing.JDialog; @@ -56,10 +57,15 @@ public static void main (String[] args) throws Exception { job = PrinterJob.getPrinterJob(); - if (job.getPrintService() == null) { + PrintService prtSrv = job.getPrintService(); + if (prtSrv == null) { System.out.println("No printers. Test cannot continue"); return; } + // do not run the test if JobSheet category is not supported + if (!prtSrv.isAttributeCategorySupported(JobSheets.class)) { + return; + } // check system default banner option and let user know what to expect JobSheets js = (JobSheets)job.getPrintService(). getDefaultAttributeValue(JobSheets.class);