-
Bug
-
Resolution: Duplicate
-
P3
-
None
-
8u11
-
x86
-
os_x
FULL PRODUCT VERSION :
jdk 1.8.0_11
ADDITIONAL OS VERSION INFORMATION :
Mac OS 10.9 Mavericks
EXTRA RELEVANT SYSTEM CONFIGURATION :
Java 8 was installed
Running from a bundled Mac Application (bundled with appbundler.jar)
A DESCRIPTION OF THE PROBLEM :
I want to print out a picture from a local file to a local printer. The below test case runs fine on previous releases of Mac OS X Port of Java, for instance Java 7 from the 10.8 Mac OS.
REGRESSION. Last worked in version 8u11
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Trying to print from buffered graphics, like a picture got from a local file.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
The printjob is supposed to print one page with the picture on it.
ACTUAL -
The program crashes with a JVM Fatal error detailed below.
It turns out that the AWT thread was not invoked by the CPrinter job.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
FATAL ERROR in native method: Using JNIEnv in the wrong thread
2014-07-22 19:31:22.089 java[2306:a643] Cocoa AWT: Not running on AppKit thread 0 when expected. (
0 libosxapp.dylib 0x00000001205c1782 +[ThreadUtilities getJNIEnv] + 38
1 libawt_lwawt.dylib 0x0000000120e35567 syncFromJavaPixels + 1842
2 libawt_lwawt.dylib 0x0000000120e359fb LockImage + 75
3 libawt_lwawt.dylib 0x0000000120e48127 Java_sun_java2d_CRenderer_doImage + 170
at sun.java2d.CRenderer.doImage(Native Method)
at sun.java2d.OSXSurfaceData.blitImage(OSXSurfaceData.java:1027)
4 ??? 0x0000000109a2ab9e 0x0 + 4456623006
5 ??? 0x0000000109a16360 0x0 + 4456538976
)
- locked <0x000000079adebdd0> (a java.lang.Object)
2014-07-22 19:31:22.089 java[2306:a643] Please file a bug report at http://java.net/jira/browse/MACOSX_PORT with this message and a reproducible test case.
at sun.java2d.CRenderer.blitImage(CRenderer.java:461)
at sun.java2d.CRenderer.copyImage(CRenderer.java:474)
at sun.java2d.CRenderer.copyImage(CRenderer.java:533)
at sun.java2d.pipe.ValidatePipe.copyImage(ValidatePipe.java:186)
at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3194)
at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3321)
at sun.java2d.SunGraphics2D.drawRenderedImage(SunGraphics2D.java:2627)
at sun.print.ProxyGraphics2D.drawRenderedImage(ProxyGraphics2D.java:1202)
at net.sf.jiga.xtended.impl.Sprite.__draw0(Sprite.java:1913)
at net.sf.jiga.xtended.impl.Sprite.__draw(Sprite.java:1828)
- locked <0x0000000796dd2630> (a net.sf.jiga.xtended.kernel.Monitor)
- locked <0x0000000796dd25c0> (a net.sf.jiga.xtended.kernel.Monitor)
at net.sf.jiga.xtended.impl.Sprite.draw(Sprite.java:3488)
at jxa.IMCBrowser$48$2.print(IMCBrowser.java:4063)
at sun.lwawt.macosx.CPrinterJob$4.run(CPrinterJob.java:634)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:744)
at java.awt.EventQueue.access$400(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:697)
at java.awt.EventQueue$3.run(EventQueue.java:691)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:714)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:229)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:227)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:227)
at sun.lwawt.macosx.CPrinterJob.print(CPrinterJob.java:287)
at sun.print.RasterPrinterJob.print(RasterPrinterJob.java:1323)
at jxa.IMCBrowser$48.actionPerformed(IMCBrowser.java:4080)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
at com.apple.laf.AquaMenuItemUI.doClick(AquaMenuItemUI.java:157)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)
at java.awt.Component.processMouseEvent(Component.java:6527)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6292)
at java.awt.Container.processEvent(Container.java:2234)
at java.awt.Component.dispatchEventImpl(Component.java:4883)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4705)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
at java.awt.Container.dispatchEventImpl(Container.java:2278)
at java.awt.Window.dispatchEventImpl(Window.java:2739)
at java.awt.Component.dispatchEvent(Component.java:4705)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
at java.awt.EventQueue.access$400(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:697)
at java.awt.EventQueue$3.run(EventQueue.java:691)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:719)
at java.awt.EventQueue$4.run(EventQueue.java:717)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Java Result: 134
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
Printable printable = new Printable() {
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
if (pageIndex > 0) {
return Printable.NO_SUCH_PAGE;
}
/* draw some picture */
BufferedImage img = ImageIO.read(new File("graphic.png"));
Rectangle paperBounds = new Rectangle((int) pageFormat.getImageableX(), (int) pageFormat.getImageableY(), (int) pageFormat.getImageableWidth(), (int) pageFormat.getImageableHeight());
double scaleFitPaper = Math.max(paperBounds.getWidth() / (double) sp.getWidth(), paperBounds.getHeight() / (double) sp.getHeight());
g.translate(Math.round((float) paperBounds.getCenterX() - img.getWidth() / 2f),
Math.round((float) paperBounds.getCenterY() - img.getHeight() / 2f));
int scaleX = (int) (img.getWidth() * scaleFitPaper);
int scaleY = (int) (img.getHeight() * scaleFitPaper);
Image image = img.getScaledInstance(scaleX, scaleY, Image.SCALE_SMOOTH);
BufferedImage picture = new BufferedImage(scaleX, scaleY, TYPE);
picture.getGraphics().drawImage(image, 0, 0 , null);
Graphics2D g = (Graphics2D)graphics;
g.drawRenderedImage(picture, null);
g.dispose();
return Printable.PAGE_EXISTS;
}
};
jobs.add(printable);
}
}
}
/* print */
pj.setPrintable(job, pjFormat);
pj.print();
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
None found yet.
jdk 1.8.0_11
ADDITIONAL OS VERSION INFORMATION :
Mac OS 10.9 Mavericks
EXTRA RELEVANT SYSTEM CONFIGURATION :
Java 8 was installed
Running from a bundled Mac Application (bundled with appbundler.jar)
A DESCRIPTION OF THE PROBLEM :
I want to print out a picture from a local file to a local printer. The below test case runs fine on previous releases of Mac OS X Port of Java, for instance Java 7 from the 10.8 Mac OS.
REGRESSION. Last worked in version 8u11
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Trying to print from buffered graphics, like a picture got from a local file.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
The printjob is supposed to print one page with the picture on it.
ACTUAL -
The program crashes with a JVM Fatal error detailed below.
It turns out that the AWT thread was not invoked by the CPrinter job.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
FATAL ERROR in native method: Using JNIEnv in the wrong thread
2014-07-22 19:31:22.089 java[2306:a643] Cocoa AWT: Not running on AppKit thread 0 when expected. (
0 libosxapp.dylib 0x00000001205c1782 +[ThreadUtilities getJNIEnv] + 38
1 libawt_lwawt.dylib 0x0000000120e35567 syncFromJavaPixels + 1842
2 libawt_lwawt.dylib 0x0000000120e359fb LockImage + 75
3 libawt_lwawt.dylib 0x0000000120e48127 Java_sun_java2d_CRenderer_doImage + 170
at sun.java2d.CRenderer.doImage(Native Method)
at sun.java2d.OSXSurfaceData.blitImage(OSXSurfaceData.java:1027)
4 ??? 0x0000000109a2ab9e 0x0 + 4456623006
5 ??? 0x0000000109a16360 0x0 + 4456538976
)
- locked <0x000000079adebdd0> (a java.lang.Object)
2014-07-22 19:31:22.089 java[2306:a643] Please file a bug report at http://java.net/jira/browse/MACOSX_PORT with this message and a reproducible test case.
at sun.java2d.CRenderer.blitImage(CRenderer.java:461)
at sun.java2d.CRenderer.copyImage(CRenderer.java:474)
at sun.java2d.CRenderer.copyImage(CRenderer.java:533)
at sun.java2d.pipe.ValidatePipe.copyImage(ValidatePipe.java:186)
at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3194)
at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3321)
at sun.java2d.SunGraphics2D.drawRenderedImage(SunGraphics2D.java:2627)
at sun.print.ProxyGraphics2D.drawRenderedImage(ProxyGraphics2D.java:1202)
at net.sf.jiga.xtended.impl.Sprite.__draw0(Sprite.java:1913)
at net.sf.jiga.xtended.impl.Sprite.__draw(Sprite.java:1828)
- locked <0x0000000796dd2630> (a net.sf.jiga.xtended.kernel.Monitor)
- locked <0x0000000796dd25c0> (a net.sf.jiga.xtended.kernel.Monitor)
at net.sf.jiga.xtended.impl.Sprite.draw(Sprite.java:3488)
at jxa.IMCBrowser$48$2.print(IMCBrowser.java:4063)
at sun.lwawt.macosx.CPrinterJob$4.run(CPrinterJob.java:634)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:301)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:744)
at java.awt.EventQueue.access$400(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:697)
at java.awt.EventQueue$3.run(EventQueue.java:691)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:714)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:229)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:227)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:227)
at sun.lwawt.macosx.CPrinterJob.print(CPrinterJob.java:287)
at sun.print.RasterPrinterJob.print(RasterPrinterJob.java:1323)
at jxa.IMCBrowser$48.actionPerformed(IMCBrowser.java:4080)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
at com.apple.laf.AquaMenuItemUI.doClick(AquaMenuItemUI.java:157)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)
at java.awt.Component.processMouseEvent(Component.java:6527)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6292)
at java.awt.Container.processEvent(Container.java:2234)
at java.awt.Component.dispatchEventImpl(Component.java:4883)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4705)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
at java.awt.Container.dispatchEventImpl(Container.java:2278)
at java.awt.Window.dispatchEventImpl(Window.java:2739)
at java.awt.Component.dispatchEvent(Component.java:4705)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
at java.awt.EventQueue.access$400(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:697)
at java.awt.EventQueue$3.run(EventQueue.java:691)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:719)
at java.awt.EventQueue$4.run(EventQueue.java:717)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Java Result: 134
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
Printable printable = new Printable() {
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
if (pageIndex > 0) {
return Printable.NO_SUCH_PAGE;
}
/* draw some picture */
BufferedImage img = ImageIO.read(new File("graphic.png"));
Rectangle paperBounds = new Rectangle((int) pageFormat.getImageableX(), (int) pageFormat.getImageableY(), (int) pageFormat.getImageableWidth(), (int) pageFormat.getImageableHeight());
double scaleFitPaper = Math.max(paperBounds.getWidth() / (double) sp.getWidth(), paperBounds.getHeight() / (double) sp.getHeight());
g.translate(Math.round((float) paperBounds.getCenterX() - img.getWidth() / 2f),
Math.round((float) paperBounds.getCenterY() - img.getHeight() / 2f));
int scaleX = (int) (img.getWidth() * scaleFitPaper);
int scaleY = (int) (img.getHeight() * scaleFitPaper);
Image image = img.getScaledInstance(scaleX, scaleY, Image.SCALE_SMOOTH);
BufferedImage picture = new BufferedImage(scaleX, scaleY, TYPE);
picture.getGraphics().drawImage(image, 0, 0 , null);
Graphics2D g = (Graphics2D)graphics;
g.drawRenderedImage(picture, null);
g.dispose();
return Printable.PAGE_EXISTS;
}
};
jobs.add(printable);
}
}
}
/* print */
pj.setPrintable(job, pjFormat);
pj.print();
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
None found yet.
- duplicates
-
JDK-8038142 [macosx] Graphics2d.drawImage is failing when printing for mac only
-
- Closed
-