JDK-8153385 : [macosx] Cocoa AWT: Not running on AppKit thread 0 when expected
  • Type: Bug
  • Component: client-libs
  • Sub-Component: 2d
  • Affected Version: 8u73
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • OS: os_x
  • CPU: x86
  • Submitted: 2016-03-08
  • Updated: 2016-04-05
  • Resolved: 2016-04-05
Related Reports
Duplicate :  
Description
FULL PRODUCT VERSION :
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)

ADDITIONAL OS VERSION INFORMATION :
Darwin macmini.local 15.3.0 Darwin Kernel Version 15.3.0: Thu Dec 10 18:40:58 PST 2015; root:xnu-3248.30.4~1/RELEASE_X86_64 x86_64

EXTRA RELEVANT SYSTEM CONFIGURATION :
OS X 10.11

A DESCRIPTION OF THE PROBLEM :
The following bug occurs using PDFBOX 2.0.0-RC3 with Java 8u65 on Apple. The crash gives explicit instructions to file a bug report here.

> "Please file a bug report at http://java.net/jira/browse/MACOSX_PORT"

Steps to reproduce:
# Download pdfbox-app-2.0.0-RC3.jar
#* [mirror:] http://mirrors.koehn.com/apache/pdfbox/2.0.0-RC3/pdfbox-app-2.0.0-RC3.jar

# Download a pdf
#* [mirror:] http://mirrors.koehn.com/apache/pdfbox/2.0.0-RC3/pdfbox-app-2.0.0-RC3.jar
# Run PDFBOX with PDF
#* {{$ java -jar ~/Downloads/pdfbox-app-2.0.0-RC3.jar PrintPDF ~/Downloads/pdf_sample.pdf}}
# When prompted, select a printer (I use Lisanet PDFWriter to save on paper, but the monospaced.ppd{{monospaced}} must be specified during setup).
# Experience crash

I've left a severity of high due to the vast number of PDFBOX users that will be subject to this as PDFBOX nears a stable 2.0 release.

Related:
https://issues.apache.org/jira/browse/PDFBOX-2682
http://stackoverflow.com/questions/28471579/pdfbox-on-mac-critical-error-when-silent-printing
https://bugs.openjdk.java.net/browse/JDK-8042693
https://bugs.openjdk.java.net/browse/JDK-8038142

================================================

{{
2016-03-08 00:37:47.287 java[59134:4788836] Cocoa AWT: Not running on AppKit thread 0 when expected. (
	0   libosxapp.dylib                     0x000000012da80702 +[ThreadUtilities getJNIEnv] + 38
	1   libawt_lwawt.dylib                  0x000000012e0ce005 syncFromJavaPixels + 1842
	2   libawt_lwawt.dylib                  0x000000012e0ce49b LockImage + 75
	3   libawt_lwawt.dylib                  0x000000012e0e0c08 Java_sun_java2d_CRenderer_doImage + 170
	4   ???                                 0x0000000110fe6954 0x0 + 4580075860
	5   ???                                 0x0000000110fd8c4d 0x0 + 4580019277
)
2016-03-08 00:37:47.288 java[59134:4788836] 	Please file a bug report at http://java.net/jira/browse/MACOSX_PORT with this message and a reproducible test case.
2016-03-08 00:37:47.337 java[59134:4788836] 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:815)
	at org.apache.pdfbox.rendering.PageDrawer.drawImage(PageDrawer.java:779)
	at org.apache.pdfbox.contentstream.operator.graphics.DrawObject.process(DrawObject.java:62)
	at org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:814)
	at org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:471)
	at org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:445)
	at org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:149)
	at org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:187)
	at org.apache.pdfbox.rendering.PDFRenderer.renderPage(PDFRenderer.java:208)
	at org.apache.pdfbox.rendering.PDFRenderer.renderPageToGraphics(PDFRenderer.java:169)
	at org.apache.pdfbox.printing.PDFPrintable.print(PDFPrintable.java:184)
	at sun.lwawt.macosx.CPrinterJob$4.run(CPrinterJob.java:657)
	at sun.lwawt.macosx.CPrinterJob.printToPathGraphics(CPrinterJob.java:671)
	at sun.lwawt.macosx.CPrinterJob.printLoop(Native Method)
	at sun.lwawt.macosx.CPrinterJob.print(CPrinterJob.java:307)
	at qz.printer.action.PrintPixel.printCopies(Unknown Source)
	at qz.printer.action.PrintPDF.print(Unknown Source)
	at qz.ws.PrintSocketClient.processPrintRequest(Unknown Source)
	at qz.ws.PrintSocketClient.processMessage(Unknown Source)
	at qz.ws.PrintSocketClient.onMessage(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at org.eclipse.jetty.websocket.common.events.annotated.CallableMethod.call(CallableMethod.java:70)
	at org.eclipse.jetty.websocket.common.events.annotated.OptionalSessionCallableMethod.call(OptionalSessionCallableMethod.java:68)
	at org.eclipse.jetty.websocket.common.events.JettyAnnotatedEventDriver$2.run(JettyAnnotatedEventDriver.java:210)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
	at java.lang.Thread.run(Thread.java:745)
2016-03-08 00:37:47.472 java[59134:4788836] 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.
}}


REPRODUCIBILITY :
This bug can be reproduced always.

CUSTOMER SUBMITTED WORKAROUND :
The work-around to this specific bug is to use a different rendering method with PDFBOX as can be observed in the downstream bug report, however there is no known workaround for the underlying JDK bug.




Comments
does it affect 9 as well?
04-04-2016