Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Won't Fix
-
2.0.0
-
None
-
None
-
None
-
Mac OSX 10.10.2
2,8 GHz Intel Core i7
JDK 8u20
Description
EI recently tested upgrading the PDFBox version in my project from 1.8.8 to 2.0.0-SNAPSHOT
I ran into problems when printing silently via PDFPrinter.java
I ran this code:
private Status doPdfPrint(Document document, PrintService printService) { ByteArrayInputStream bais = null; PDDocument doc = null; PrinterJob printerJob = PrinterJob.getPrinterJob(); try { printerJob.setPrintService(printService); bais = new ByteArrayInputStream(document.getDecodedData()); doc = PDDocument.load(bais, true); //Force load PDFPrinter pdfPrinter = new PDFPrinter(doc); pdfPrinter.silentPrint(printerJob); //doc.silentPrint(printerJob); doc.close(); bais.close(); } catch (IOException | PrinterException e) { log.warn("Failed to print! Exception occurred: {}", e.getMessage()); log.debug("EXCEPTION", e); return Status.PRINTING_FAILED; } finally { IOUtils.closeQuietly(bais); IOUtils.closeQuietly(doc); } return Status.PRINTING_OK; }
Which resulted in the following stacktrace:
2015-02-12 08:10:44.475 java[20264:1353636] Cocoa AWT: Not running on AppKit thread 0 when expected. ( 0 libosxapp.dylib 0x0000000125997782 +[ThreadUtilities getJNIEnv] + 38 1 libawt_lwawt.dylib 0x000000012bf3004d syncFromJavaPixels + 1842 2 libawt_lwawt.dylib 0x000000012bf304e3 LockImage + 75 3 libawt_lwawt.dylib 0x000000012bf43040 Java_sun_java2d_CRenderer_doImage + 170 4 ??? 0x0000000108c15694 0x0 + 4441855636 5 ??? 0x0000000108c0798d 0x0 + 4441799053 ) 2015-02-12 08:10:44.475 java[20264:1353636] Please file a bug report at http://java.net/jira/browse/MACOSX_PORT with this message and a reproducible test case. 2015-02-12 08:10:44.478 java[20264:1353636] java.lang.StackOverflowError at sun.java2d.CRenderer.doImage(Native Method) at sun.java2d.OSXSurfaceData.blitImage(OSXSurfaceData.java:1027) at sun.java2d.CRenderer.blitImage(CRenderer.java:461) at sun.java2d.CRenderer.scaleImage(CRenderer.java:455) at sun.java2d.CRenderer.transformImage(CRenderer.java:508) at sun.java2d.CRenderer.transformImage(CRenderer.java:582) at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3461) at sun.print.ProxyGraphics2D.drawImage(ProxyGraphics2D.java:1315) at org.apache.pdfbox.rendering.PageDrawer.drawBufferedImage(PageDrawer.java:755) at org.apache.pdfbox.rendering.PageDrawer.drawImage(PageDrawer.java:719) at org.apache.pdfbox.contentstream.operator.graphics.DrawObject.process(DrawObject.java:51) at org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:802) at org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:464) at org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:438) at org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:149) at org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:160) at org.apache.pdfbox.rendering.PDFRenderer.renderPage(PDFRenderer.java:203) at org.apache.pdfbox.rendering.PDFRenderer.renderPageToGraphics(PDFRenderer.java:166) at org.apache.pdfbox.printing.PDFPrinter$PDFPrintable.print(PDFPrinter.java:430) at sun.lwawt.macosx.CPrinterJob$4.run(CPrinterJob.java:653) at sun.lwawt.macosx.CPrinterJob.printToPathGraphics(CPrinterJob.java:667) at sun.lwawt.macosx.CPrinterJob.printLoop(Native Method) at sun.lwawt.macosx.CPrinterJob.print(CPrinterJob.java:303) at sun.print.RasterPrinterJob.print(RasterPrinterJob.java:1323) at org.apache.pdfbox.printing.PDFPrinter.print(PDFPrinter.java:250) at org.apache.pdfbox.printing.PDFPrinter.silentPrint(PDFPrinter.java:182) at com.memnon.printr.PrintHandler.doPdfPrint(PrintHandler.java:123) at com.memnon.printr.PrintHandler.print(PrintHandler.java:87) at com.memnon.printr.PrintHandler.print(PrintHandler.java:77) at com.memnon.printr.PrintHandler.print(PrintHandler.java:48) at com.memnon.printr.communication.DocumentResponseHandler.handleSuccessful(DocumentResponseHandler.java:78) at com.memnon.printr.communication.DocumentResponseHandler.handle(DocumentResponseHandler.java:53) at com.memnon.printr.messaging.PrintConsumer.executePrinterJob(PrintConsumer.java:62) at com.memnon.printr.messaging.PrintConsumer.run(PrintConsumer.java:44) at java.lang.Thread.run(Thread.java:745) 2015-02-12 08:10:44.493 java[20264:1353636] NSAlert is being used from a background thread, which is not safe. This is probably going to crash sometimes. Break on void _NSAlertWarnUnsafeBackgroundThreadUsage() to debug. This will be logged only once. This may break in the future. 2015-02-12 08:10:46.639 java[20264:1353636] Apple AWT Internal Exception: Printing failed because PMSessionEndDocumentNoDialog() returned -30871. 2015-02-12 08:10:46.639 java[20264:1353636] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Printing failed because PMSessionEndDocumentNoDialog() returned -30871.' *** First throw call stack: ( 0 CoreFoundation 0x00007fff8895c66c __exceptionPreprocess + 172 1 libobjc.A.dylib 0x00007fff890e876e objc_exception_throw + 43 2 CoreFoundation 0x00007fff8895c51d +[NSException raise:format:] + 205 3 AppKit 0x00007fff8d117e80 -[NSPrintSpoolingGraphicsContext dealloc] + 43 4 libobjc.A.dylib 0x00007fff890fb89c _ZN11objc_object17sidetable_releaseEb + 236 5 libobjc.A.dylib 0x00007fff890e1e8f _ZN12_GLOBAL__N_119AutoreleasePoolPage3popEPv + 575 6 CoreFoundation 0x00007fff88834302 _CFAutoreleasePoolPop + 50 7 libawt_lwawt.dylib 0x000000012bf25fa4 Java_sun_lwawt_macosx_CPrinterJob_printLoop + 165 8 ??? 0x0000000108c15694 0x0 + 4441855636 9 ??? 0x0000000108c07160 0x0 + 4441796960 10 ??? 0x0000000108c0798d 0x0 + 4441799053 ) libc++abi.dylib: terminating with uncaught exception of type NSException
I saved the byte array output to a file and attached it to this case.