Modify

Opened 13 years ago

Closed 12 years ago

#6435 closed defect (othersoftware)

Crash when using undocked windows on multiple screens

Reported by: anonymous Owned by: team
Priority: normal Milestone:
Component: Core Version:
Keywords: template_report Cc:

Description (last modified by bastiK)

What steps will reproduce the problem?

  1. Start JOSM
  2. Select area to download

What is the expected result?

Main window to fill with map data

What happens instead?

Application crash after downloading data and opening up subwindows.
Info dialog stuck on "Preparing data set...", cancel button does nothing.
Application completely unresponsive at this point.

Please provide any additional information below. Attach a screenshot if
possible.

Repository Root: http://josm.openstreetmap.de/svn
Build-Date: 2011-06-06 01:31:37
Last Changed Author: stoecker
Revision: 4125
Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
URL: http://josm.openstreetmap.de/svn/trunk
Last Changed Date: 2011-06-05 14:15:21 +0200 (Sun, 05 Jun 2011)
Last Changed Rev: 4125

Identification: JOSM/1.5 (4125 en)
Memory Usage: 133 MB / 672 MB (87 MB allocated, but free)
Java version: 1.6.0_22, Sun Microsystems Inc., OpenJDK 64-Bit Server VM
Operating system: Linux
Dataset consistency test: No problems found

Plugin: PicLayer (25219)
Plugin: buildings_tools (25905)
Plugin: cadastre-fr (25889)
Plugin: measurement (25199)
Plugin: restart (25199)
Plugin: walkingpapers (25191)

java.lang.NullPointerException
	at sun.awt.X11.XWindowPeer.restoreTransientFor(XWindowPeer.java:1682)
	at sun.awt.X11.XWindowPeer.removeFromTransientFors(XWindowPeer.java:1748)
	at sun.awt.X11.XWindowPeer.setModalBlocked(XWindowPeer.java:1470)
	at sun.awt.X11.XWindowPeer.setModalBlocked(XWindowPeer.java:1441)
	at java.awt.Window.setModalBlocked(Window.java:1359)
	at java.awt.Dialog.unblockWindow(Dialog.java:1597)
	at java.awt.Dialog.modalHide(Dialog.java:1483)
	at java.awt.Dialog.hideAndDisposePreHandler(Dialog.java:1215)
	at java.awt.Dialog.hide(Dialog.java:1255)
	at java.awt.Component.show(Component.java:1553)
	at java.awt.Component.setVisible(Component.java:1503)
	at java.awt.Window.setVisible(Window.java:881)
	at java.awt.Dialog.setVisible(Dialog.java:1011)
	at org.openstreetmap.josm.gui.progress.PleaseWaitProgressMonitor.close(PleaseWaitProgressMonitor.java:151)
	at org.openstreetmap.josm.gui.PleaseWaitRunnable.doRealRun(PleaseWaitRunnable.java:99)
	at org.openstreetmap.josm.gui.PleaseWaitRunnable.run(PleaseWaitRunnable.java:129)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:67

Attachments (0)

Change History (32)

comment:1 by Adam Dunn, 13 years ago

I'll "me too" this bug with some extra info: Running Ubuntu Natty Narwhal with Unity 3.8.16-0ubuntu1~natty1 (latest as of today), exact same Java VM (including 64-bit) as submitter. Running JOSM r4280 en (latest as of today). Backtrace is exact same as above, except following three lines, which have different line numbers (but occur in same source file):

at org.openstreetmap.josm.gui.progress.PleaseWaitProgressMonitor.close(PleaseWaitProgressMonitor.java:151)
at org.openstreetmap.josm.gui.PleaseWaitRunnable.doRealRun(PleaseWaitRunnable.java:95)
at org.openstreetmap.josm.gui.PleaseWaitRunnable.run(PleaseWaitRunnable.java:125)

Possibly related: the last time I had run JOSM (which was the first time on this machine), I had successfully run JOSM, and had split the side windows into separate windows (so Layers, Properties, Selection, and Validation Results are in their own floating windows). Now when trying to download from server or open .osm file from local hard drive, I get above error. I have enabled -Xmx4G.

comment:2 by bastiK, 13 years ago

Have you tried older version? (http://josm.openstreetmap.de/download/)

What if you close all undocked panels?

comment:3 by Adam Dunn, 13 years ago

The problem with closing undocked panels, is that they don't show up until you open/download data.

Snapshot r3377 managed to not crash just enough that I could close the panels. r3377 still did not load data, and still crashed, but the crash seemed to be related to having plugins/preferences that were intended for later releases (not related to crash above). After closing the panels in r3377, tried josm-tested (probably r4279), and it worked, since there were no undocked panels. Opened some undocked panels, restarted r4279 and the same crash bug occurs.

Try having undocked panels one at a time, and find the following (all using r4279):

  • Layers works fine
  • Properties works
  • Selection works
  • Relation list works
  • Command stack works
  • Authors works
  • History works
  • Conflict manager works
  • Validation results works
  • Filter works
  • Changeset viewer works
  • Trying to have Layers and Properties undocked at same time does not work, which causes one error that needs to be ignored, which will allow JOSM to continue loading (see below for a bit more on this)
  • Have Layers and Selection both undocked, and again one error to ignore (see below).
  • Have Layers, Properties, and Selection, and there are two errors to ignore (see below).
  • Have Layers, Properties, and Selection open, but docked to the main JOSM window, and there will be no crashing.

In order to ignore the errors, do the following:

  • When the Unexpected Exception window comes up, click "Do nothing"
  • Click the "x" in corner of "Opening files" window (with the bouncing progress bar)
  • Again Unexpected Exception -> "Do nothing"
  • When you have clicked "Do nothing" and "x" enough times, you will get no more errors, but JOSM will show a blank data area (your data did not load).
  • click the corner "x" of any of the undocked panels (to dock them), and your data will appear and you can use JOSM. You only need to dock one panel, no matter how many panels you have open.

So we can see that this is only caused by undocked panels, and only when there are multiple undocked panels. The number of errors will be: (undocked panels) - 1.

Quick solution: don't undock your panels (not a very good solution for those of us with multiple monitors who like to have panels undocked in the second monitor).

in reply to:  3 comment:4 by bastiK, 13 years ago

Replying to Adam Dunn:

Snapshot r3377 managed to not crash just enough that I could close the panels. r3377 still did not load data, and still crashed, but the crash
So we can see that this is only caused by undocked panels, and only when there are multiple undocked panels. The number of errors will be: (undocked panels) - 1.

Thanks for the analysis, please add more stack traces, in case they are different from the above. The good news is, that this is a regression in JOSM. So if you can find out the exact version, where the bug is introduced, there is a good chance, we can fix it.

You can start JOSM with a temporary preference folder like this: java -Djosm.home=$HOME/.josm-test -jar josm.jar.

comment:5 by Adam Dunn, 13 years ago

Thanks for the info on how to run with temporary preferences folder. Using snapshot r3377 still has the bug, but it loads all the undocked panels, and loads the data before the bug error occurs. You still need to close the loading progress window multiple times (the number of undocked panels). Stack trace from doing the test in r3377 with a fresh pref folder is:

Repository Root: http://josm.openstreetmap.de/svn
Build-Date: 2010-07-20 01:31:42
Last Changed Author: mjulius
Revision: 3377
Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
URL: http://josm.openstreetmap.de/svn/trunk
Last Changed Date: 2010-07-19 20:03:44 +0200 (Mon, 19 Jul 2010)
Last Changed Rev: 3377

Identification: JOSM/1.5 (3377 en)
Memory Usage: 213 MB / 1777 MB (157 MB allocated, but free)
Java version: 1.6.0_22, Sun Microsystems Inc., OpenJDK 64-Bit Server VM
Operating system: Linux
Dataset consistency test: No problems found


java.lang.NullPointerException
	at sun.awt.X11.XWindowPeer.restoreTransientFor(XWindowPeer.java:1682)
	at sun.awt.X11.XWindowPeer.removeFromTransientFors(XWindowPeer.java:1748)
	at sun.awt.X11.XWindowPeer.setModalBlocked(XWindowPeer.java:1470)
	at sun.awt.X11.XWindowPeer.setModalBlocked(XWindowPeer.java:1441)
	at java.awt.Window.setModalBlocked(Window.java:1359)
	at java.awt.Dialog.unblockWindow(Dialog.java:1597)
	at java.awt.Dialog.modalHide(Dialog.java:1483)
	at java.awt.Dialog.hideAndDisposePreHandler(Dialog.java:1215)
	at java.awt.Dialog.hide(Dialog.java:1255)
	at java.awt.Component.show(Component.java:1553)
	at java.awt.Component.setVisible(Component.java:1503)
	at java.awt.Window.setVisible(Window.java:881)
	at java.awt.Dialog.setVisible(Dialog.java:1011)
	at org.openstreetmap.josm.gui.progress.PleaseWaitProgressMonitor.close(PleaseWaitProgressMonitor.java:151)
	at org.openstreetmap.josm.gui.PleaseWaitRunnable.doRealRun(PleaseWaitRunnable.java:99)
	at org.openstreetmap.josm.gui.PleaseWaitRunnable.run(PleaseWaitRunnable.java:129)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:679)

I'm currently going through old revisions trying to track down which revision the error starts in, but it occurs to me that I've run these old revisions in the past with no problem on Linux. I was running JOSM in Linux just fine back in December, when my computer crashed (bad motherboard). The computer I'm on now is completely new, purchased two weeks ago, and installed with latest Ubuntu. This crash might be in some way related to something else that has changed in Ubuntu (could be a new Java version, switch from Gnome to Unity, or something else).

comment:6 by Adam Dunn, 13 years ago

r2024 loads fine with undocked panels. r2050 won't load at all (class not found error), so can't test with that version. r2052 isn't loading preferences properly, so can't test with that version either. r2060 is having problems with undocked panels. The stacktrace is different than above, but seems to be the first error in a revision related to undocked panels:

Open file: /home/adam/Documents/osm/075L08/075L08.0.2.osm (548769 bytes)
Exception occurred during event dispatching:
java.lang.NullPointerException
	at sun.awt.X11.XWindowPeer.restoreTransientFor(XWindowPeer.java:1682)
	at sun.awt.X11.XWindowPeer.removeFromTransientFors(XWindowPeer.java:1748)
	at sun.awt.X11.XWindowPeer.setModalBlocked(XWindowPeer.java:1470)
	at sun.awt.X11.XWindowPeer.setModalBlocked(XWindowPeer.java:1441)
	at java.awt.Window.setModalBlocked(Window.java:1359)
	at java.awt.Dialog.unblockWindow(Dialog.java:1597)
	at java.awt.Dialog.modalHide(Dialog.java:1483)
	at java.awt.Dialog.hideAndDisposePreHandler(Dialog.java:1215)
	at java.awt.Dialog.hide(Dialog.java:1255)
	at java.awt.Component.show(Component.java:1553)
	at java.awt.Component.setVisible(Component.java:1503)
	at java.awt.Window.setVisible(Window.java:881)
	at java.awt.Dialog.setVisible(Dialog.java:1011)
	at org.openstreetmap.josm.gui.progress.PleaseWaitProgressMonitor$5.run(PleaseWaitProgressMonitor.java:112)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:647)
	at java.awt.EventQueue.access$000(EventQueue.java:96)
	at java.awt.EventQueue$1.run(EventQueue.java:608)
	at java.awt.EventQueue$1.run(EventQueue.java:606)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:617)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:194)
	at java.awt.Dialog$1.run(Dialog.java:1072)
	at java.awt.Dialog$3.run(Dialog.java:1126)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.Dialog.show(Dialog.java:1124)
	at java.awt.Component.show(Component.java:1551)
	at java.awt.Component.setVisible(Component.java:1503)
	at java.awt.Window.setVisible(Window.java:881)
	at java.awt.Dialog.setVisible(Dialog.java:1011)
	at org.openstreetmap.josm.gui.progress.PleaseWaitProgressMonitor$4.run(PleaseWaitProgressMonitor.java:102)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:647)
	at java.awt.EventQueue.access$000(EventQueue.java:96)
	at java.awt.EventQueue$1.run(EventQueue.java:608)
	at java.awt.EventQueue$1.run(EventQueue.java:606)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:617)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)

I'm certain JOSM this old used to run just fine though. Like I said above, it could be related to something else in newest version of Ubuntu.

comment:7 by Adam Dunn, 13 years ago

This appears to not be an bug in JOSM, but a bug in Java (both OpenJDK and Sun/Oracle). Strangely, most Google searching turns up JOSM, so it's not really affecting too many other programs. I get the bug when running the following version of Java that is bundled with Ubuntu Natty:

$ java -version
java version "1.6.0_22"
OpenJDK Runtime Environment (IcedTea6 1.10.2) (6b22-1.10.2-0ubuntu1~11.04.1)
OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)

However, when running

$ jre1.7.0/bin/java -version
java version "1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)

the bug does not present itself. So the temporary solution is to run the latest beta version of Java. You can download it from http://www.oracle.com/technetwork/java/javase/downloads/java-se-jre-7-download-432155.html and untar it to your home folder, then run josm with the following command:

~/jre1.7.0/bin/java -Xmx<memory> -jar /path/to/josm.jar

In my case on Ubuntu I use

~/jre1.7.0/bin/java -Xmx4G -jar /usr/share/josm/josm-latest.jar

See http://bugs.sun.com/view_bug.do?bug_id=6826104 for the external reference of this bug.

comment:8 by stoecker, 13 years ago

Resolution: othersoftware
Status: newclosed

comment:9 by bastiK, 13 years ago

Ticket #6228 has been marked as a duplicate of this ticket.

comment:10 by bastiK, 13 years ago

Range 2024:2060 is too wide, I could not identify the change that triggers this java bug.

in reply to:  7 comment:11 by stoecker, 13 years ago

Replying to Adam Dunn:

Strangely, most Google searching turns up JOSM, so it's not really affecting too many other programs.

This is true for a lot of Java bug related searches. Either our bug tracker is better indexed (which could be due to the high linking rate to this site) or JOSM triggers more bugs due to its complexity.

comment:12 by bastiK, 13 years ago

Ticket #6798 has been marked as a duplicate of this ticket.

comment:13 by berndw OSM-Bonn, 13 years ago

Duplicate?

At 01:00 this night, i've made my last edits with v4401 without any problem and i've made no changes to my system since this time.

This happened now also to the tested version, plugins are mostly disabled

Repository Root: http://josm.openstreetmap.de/svn
Build-Date: 2011-09-05 01:31:49
Last Changed Author: bastiK
Revision: 4399
Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
URL: http://josm.openstreetmap.de/svn/trunk
Last Changed Date: 2011-09-04 22:13:51 +0200 (Sun, 04 Sep 2011)
Last Changed Rev: 4399

Identification: JOSM/1.5 (4399 de)
Memory Usage: 210 MB / 1619 MB (152 MB allocated, but free)
Java version: 1.6.0_22, Sun Microsystems Inc., OpenJDK 64-Bit Server VM
Operating system: Linux
Dataset consistency test: No problems found

Plugin: licensechange (26606)
Plugin: openstreetbugs (26606)
Plugin: restart (26606)

java.lang.NullPointerException

at sun.awt.X11.XWindowPeer.restoreTransientFor(XWindowPeer.java:1681)
at sun.awt.X11.XWindowPeer.removeFromTransientFors(XWindowPeer.java:1747)
at sun.awt.X11.XWindowPeer.setModalBlocked(XWindowPeer.java:1469)
at sun.awt.X11.XWindowPeer.setModalBlocked(XWindowPeer.java:1440)
at java.awt.Window.setModalBlocked(Window.java:1359)
at java.awt.Dialog.unblockWindow(Dialog.java:1597)
at java.awt.Dialog.modalHide(Dialog.java:1483)
at java.awt.Dialog.hideAndDisposePreHandler(Dialog.java:1215)
at java.awt.Dialog.hide(Dialog.java:1255)
at java.awt.Component.show(Component.java:1553)
at java.awt.Component.setVisible(Component.java:1503)
at java.awt.Window.setVisible(Window.java:881)
at java.awt.Dialog.setVisible(Dialog.java:1011)
at org.openstreetmap.josm.gui.progress.PleaseWaitProgressMonitor.close(PleaseWaitProgressMonitor.java:151)
at org.openstreetmap.josm.gui.PleaseWaitRunnable.doRealRun(PleaseWaitRunnable.java:95)
at org.openstreetmap.josm.gui.PleaseWaitRunnable.run(PleaseWaitRunnable.java:125)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:679)

comment:14 by anonymous, 13 years ago

FYI:

This night i've changed to a multiwindow layout, i use my second screen for the editwindows on the right side to get the primary screen for the map.
This layout will be recovered after a restart of JOSM, tested last night, but i've made the first systemreboot this morning.

But how can i get back the normal layout with resetting the config, because JOSM is blocked?

Bernd

comment:15 by bastiK, 13 years ago

To get back the normal layout: replace all occurrences of "docked=false" with "docked=true" in .josm/preferences.

comment:16 by anonymous, 13 years ago

I've made this and make some tests to get more infos.

The error comes only if more than one window is undocked, i've check different windows. And the undocked window could be on the secondary screen and the mainwindow on the primary one.

cu

Bernd

comment:17 by Don-vip, 13 years ago

Ticket #6449 has been marked as a duplicate of this ticket.

comment:18 by Don-vip, 13 years ago

Ticket #6897 has been marked as a duplicate of this ticket.

comment:19 by Don-vip, 13 years ago

Ticket #6904 has been marked as a duplicate of this ticket.

comment:20 by bastiK, 13 years ago

Ticket #6922 has been marked as a duplicate of this ticket.

comment:21 by bastiK, 13 years ago

Ticket #6924 has been marked as a duplicate of this ticket.

comment:22 by Don-vip, 13 years ago

Ticket #6941 has been marked as a duplicate of this ticket.

comment:23 by bastiK, 13 years ago

Description: modified (diff)
Resolution: othersoftware
Status: closedreopened

We should try to find a workaround, if possible.

comment:24 by stoecker, 13 years ago

Summary: Application crash when dowloading map data to editCrash when dusing undocked windows on multiple screens

comment:25 by Don-vip, 13 years ago

I think this bug has been introduced in OpenJDK implementation delivered in Ubuntu 11.04, that would explain why it suddenly appeared with so many people few months ago, and why they're all using the same Java version. Maybe Ubuntu 11.10 will contain the fix ? We should wait its release (on Thursday) before looking at a potential workaround.

comment:26 by Adam Dunn, 13 years ago

Ubuntu 11.10 does seem to have this issue fixed. I am currently running the Ubuntu 11.10 beta, and have no issues running undocked windows in JOSM via OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre10-0ubuntu4), which is the version in Ubuntu 11.10 by default. I guess my workaround using the Sun Java 7 Beta is no longer required.

in reply to:  26 comment:27 by bastiK, 13 years ago

Replying to Adam Dunn:

Ubuntu 11.10 does seem to have this issue fixed. I am currently running the Ubuntu 11.10 beta, and have no issues running undocked windows in JOSM via OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre10-0ubuntu4), which is the version in Ubuntu 11.10 by default. I guess my workaround using the Sun Java 7 Beta is no longer required.

If this bug is fixed in 6b23, that's good news. One of the reporters is OpenSuse user, but the situation should be similar.

comment:28 by bastiK, 13 years ago

Ticket #6947 has been marked as a duplicate of this ticket.

comment:29 by stoecker, 13 years ago

Ticket #6948 has been marked as a duplicate of this ticket.

comment:30 by stoecker, 13 years ago

Ticket #6978 has been marked as a duplicate of this ticket.

comment:31 by skyper, 13 years ago

Summary: Crash when dusing undocked windows on multiple screensCrash when using undocked windows on multiple screens

typo

comment:32 by stoecker, 12 years ago

Resolution: othersoftware
Status: reopenedclosed

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain team.
as The resolution will be set.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.