Opened 9 years ago

Last modified 9 years ago

#14085 closed defect

JOSM display corrupted after changing screen resolution — at Version 2

Reported by: thomasthekitty@… Owned by: team
Priority: normal Milestone:
Component: Core Version:
Keywords: javabug Cc:

Description (last modified by Don-vip)

When I changed the resolution of my display, JOSM's main window turned blank and the "You have encountered a bug in JOSM" window appeared on top of it. The bug window had many elements of the GUI missing. I have attached a stack trace.

URL:http://josm.openstreetmap.de/svn/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2016-11-06 20:18:38 +0100 (Sun, 06 Nov 2016)
Build-Date:2016-11-06 21:45:03
Revision:11223
Relative:URL: ^/trunk

Identification: JOSM/1.5 (11223 en) Linux Mint 18 Sarah
Memory Usage: 326 MB / 661 MB (138 MB allocated, but free)
Java version: 1.8.0_111-8u111-b14-2ubuntu0.16.04.2-b14, Oracle Corporation, OpenJDK 64-Bit Server VM
Screen: :0.0 1366x768
Maximum Screen Size: 1366x768
Java package: openjdk-8-jre:amd64-8u111-b14-2ubuntu0.16.04.2

Plugins:
+ FastDraw (32938)
+ Mapillary (v1.3.1)
+ apache-commons (32699)
+ apache-http (32699)
+ buildings_tools (32944)
+ turnrestrictions (32796)
+ utilsplugin2 (32815)

Map paint styles:
- https://josm.openstreetmap.de/josmfile?page=Styles/Coloured_Streets&zip=1

Last errors/warnings:
- E: Handled by bug report queue: java.lang.ClassCastException: sun.awt.image.BufImgSurfaceData cannot be cast to sun.java2d.xr.XRSurfaceData
- W: Too many errors. Dropping ReportedException [thread=Thread[AWT-EventQueue-0,6,main], exception=java.lang.ClassCastException: sun.awt.image.BufImgSurfaceData cannot be cast to sun.java2d.xr.XRSurfaceData, methodWarningFrom=BugReportExceptionHandler#handleException]
- E: Handled by bug report queue: java.lang.ClassCastException: sun.awt.image.BufImgSurfaceData cannot be cast to sun.java2d.xr.XRSurfaceData
- W: Too many errors. Dropping ReportedException [thread=Thread[AWT-EventQueue-0,6,main], exception=java.lang.ClassCastException: sun.awt.image.BufImgSurfaceData cannot be cast to sun.java2d.xr.XRSurfaceData, methodWarningFrom=BugReportExceptionHandler#handleException]
- E: Handled by bug report queue: java.lang.ClassCastException: sun.awt.image.BufImgSurfaceData cannot be cast to sun.java2d.xr.XRSurfaceData
- W: Too many errors. Dropping ReportedException [thread=Thread[AWT-EventQueue-0,6,main], exception=java.lang.ClassCastException: sun.awt.image.BufImgSurfaceData cannot be cast to sun.java2d.xr.XRSurfaceData, methodWarningFrom=BugReportExceptionHandler#handleException]
- E: Handled by bug report queue: java.lang.ClassCastException: sun.awt.image.BufImgSurfaceData cannot be cast to sun.java2d.xr.XRSurfaceData
- W: Too many errors. Dropping ReportedException [thread=Thread[AWT-EventQueue-0,6,main], exception=java.lang.ClassCastException: sun.awt.image.BufImgSurfaceData cannot be cast to sun.java2d.xr.XRSurfaceData, methodWarningFrom=BugReportExceptionHandler#handleException]
- E: Handled by bug report queue: java.lang.ClassCastException: sun.awt.image.BufImgSurfaceData cannot be cast to sun.java2d.xr.XRSurfaceData
- W: Too many errors. Dropping ReportedException [thread=Thread[AWT-EventQueue-0,6,main], exception=java.lang.ClassCastException: sun.awt.image.BufImgSurfaceData cannot be cast to sun.java2d.xr.XRSurfaceData, methodWarningFrom=BugReportExceptionHandler#handleException]


=== REPORTED CRASH DATA ===
BugReportExceptionHandler#handleException:
No data collected.

Warning issued by: BugReportExceptionHandler#handleException

=== STACK TRACE ===
Thread: AWT-EventQueue-0 (17) of main
java.lang.ClassCastException: sun.awt.image.BufImgSurfaceData cannot be cast to sun.java2d.xr.XRSurfaceData
	at sun.java2d.xr.XRPMBlitLoops.cacheToTmpSurface(XRPMBlitLoops.java:148)
	at sun.java2d.xr.XrSwToPMBlit.Blit(XRPMBlitLoops.java:356)
	at sun.java2d.SurfaceDataProxy.updateSurfaceData(SurfaceDataProxy.java:498)
	at sun.java2d.SurfaceDataProxy.replaceData(SurfaceDataProxy.java:455)
	at sun.java2d.SurfaceData.getSourceSurfaceData(SurfaceData.java:233)
	at sun.java2d.pipe.DrawImage.renderImageCopy(DrawImage.java:566)
	at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:67)
	at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:1014)
	at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3318)
	at sun.awt.image.ImageRepresentation.drawToBufImage(ImageRepresentation.java:813)
	at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:1021)
	at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3318)
	at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3296)
	at javax.swing.ImageIcon.paintIcon(ImageIcon.java:425)
	at javax.swing.plaf.basic.BasicButtonUI.paintIcon(BasicButtonUI.java:292)
	at javax.swing.plaf.basic.BasicButtonUI.paint(BasicButtonUI.java:216)
	at javax.swing.plaf.ComponentUI.update(ComponentUI.java:161)
	at javax.swing.plaf.metal.MetalButtonUI.update(MetalButtonUI.java:150)
	at javax.swing.JComponent.paintComponent(JComponent.java:780)
	at javax.swing.JComponent.paint(JComponent.java:1056)
	at javax.swing.JComponent.paintChildren(JComponent.java:889)
	at javax.swing.JComponent.paint(JComponent.java:1065)
	at javax.swing.JComponent.paintChildren(JComponent.java:889)
	at javax.swing.JComponent.paint(JComponent.java:1065)
	at javax.swing.JComponent.paintChildren(JComponent.java:889)
	at javax.swing.JComponent.paint(JComponent.java:1065)
	at javax.swing.JComponent.paintChildren(JComponent.java:889)
	at javax.swing.JComponent.paint(JComponent.java:1065)
	at javax.swing.JComponent.paintChildren(JComponent.java:889)
	at org.openstreetmap.josm.gui.widgets.MultiSplitPane.paintChildren(MultiSplitPane.java:206)
	at javax.swing.JComponent.paint(JComponent.java:1065)
	at javax.swing.JComponent.paintChildren(JComponent.java:889)
	at javax.swing.JComponent.paint(JComponent.java:1065)
	at javax.swing.JComponent.paintChildren(JComponent.java:889)
	at javax.swing.JSplitPane.paintChildren(JSplitPane.java:1047)
	at javax.swing.JComponent.paint(JComponent.java:1065)
	at javax.swing.JComponent.paintChildren(JComponent.java:889)
	at javax.swing.JComponent.paint(JComponent.java:1065)
	at javax.swing.JComponent.paintChildren(JComponent.java:889)
	at javax.swing.JComponent.paint(JComponent.java:1065)
	at javax.swing.JComponent.paintChildren(JComponent.java:889)
	at javax.swing.JComponent.paint(JComponent.java:1065)
	at javax.swing.JComponent.paintChildren(JComponent.java:889)
	at javax.swing.JComponent.paint(JComponent.java:1065)
	at javax.swing.JLayeredPane.paint(JLayeredPane.java:586)
	at javax.swing.JComponent.paintChildren(JComponent.java:889)
	at javax.swing.JComponent.paint(JComponent.java:1065)
	at javax.swing.JComponent.paintToOffscreen(JComponent.java:5210)
	at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:290)
	at javax.swing.RepaintManager.paint(RepaintManager.java:1272)
	at javax.swing.JComponent._paintImmediately(JComponent.java:5158)
	at javax.swing.JComponent.paintImmediately(JComponent.java:4969)
	at javax.swing.RepaintManager$4.run(RepaintManager.java:854)
	at javax.swing.RepaintManager$4.run(RepaintManager.java:814)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:814)
	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:789)
	at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:738)
	at javax.swing.RepaintManager.access$1200(RepaintManager.java:64)
	at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1732)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
	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)

Change History (3)

by anonymous, 9 years ago

Attachment: stacktrace.txt added

The stack trace that appeared in the "you have encountered a bug" window

comment:1 by anonymous, 9 years ago

Note that this bug does not occur when changing resolution in a single-monitor setup, only when using two displays. I am using a laptop with an external monitor to trigger this bug. I have no idea whether the bug is caused by something other than JOSM (a Java bug, etc.) or whether it only happens on certain hardware.

Steps to reproduce:

  1. Plug in an external monitor. I have mine set up so that they are not

mirrored, rather, I can display separate programs on each monitor.

  1. Start JOSM and open Bing imagery.
  2. Change the resolution of the monitor.

This causes JOSM to crash: a bug window pops up. If you click "ignore this warning," another bug window pops up. I have also triggered this bug by unplugging the
secondary monitor.

comment:2 by Don-vip, 9 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.