[ https://issues.apache.org/jira/browse/PDFBOX-2682?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Emmeran Seehuber updated PDFBOX-2682: ------------------------------------- Attachment: screenshot-1.png > Silent Print on Mac OSX complains it's not ran on Cocoa AWT thread > ------------------------------------------------------------------ > > Key: PDFBOX-2682 > URL: https://issues.apache.org/jira/browse/PDFBOX-2682 > Project: PDFBox > Issue Type: Bug > Affects Versions: 2.0.0 > Environment: Mac OSX 10.10.2 > 2,8 GHz Intel Core i7 > JDK 8u20 > Reporter: Robin Jonsson > Priority: Critical > Attachments: TMPPRINTFILE.pdf, screenshot-1.png > > > 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: > {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; > } > {code} > *Which resulted in the following stacktrace:* > {code} > 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 > {code} > I saved the byte array output to a file and attached it to this case. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@pdfbox.apache.org For additional commands, e-mail: dev-h...@pdfbox.apache.org