Opened 13 years ago
Closed 13 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 )
What steps will reproduce the problem?
- Start JOSM
- 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 , 13 years ago
comment:2 by , 13 years ago
Have you tried older version? (http://josm.openstreetmap.de/download/)
What if you close all undocked panels?
follow-up: 4 comment:3 by , 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).
comment:4 by , 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 , 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 , 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.
follow-up: 11 comment:7 by , 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 , 13 years ago
Resolution: | → othersoftware |
---|---|
Status: | new → closed |
comment:10 by , 13 years ago
Range 2024:2060 is too wide, I could not identify the change that triggers this java bug.
comment:11 by , 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:13 by , 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 , 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 , 13 years ago
To get back the normal layout: replace all occurrences of "docked=false"
with "docked=true"
in .josm/preferences.
comment:16 by , 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:23 by , 13 years ago
Description: | modified (diff) |
---|---|
Resolution: | othersoftware |
Status: | closed → reopened |
We should try to find a workaround, if possible.
comment:24 by , 13 years ago
Summary: | Application crash when dowloading map data to edit → Crash when dusing undocked windows on multiple screens |
---|
comment:25 by , 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.
follow-up: 27 comment:26 by , 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.
comment:27 by , 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:31 by , 13 years ago
Summary: | Crash when dusing undocked windows on multiple screens → Crash when using undocked windows on multiple screens |
---|
typo
comment:32 by , 13 years ago
Resolution: | → othersoftware |
---|---|
Status: | reopened → closed |
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.