Opened 9 years ago
Closed 9 years ago
#12246 closed defect (invalid)
JOSM does not quit - JCSCacheManager shutdown stalls due to missing method: java.util.concurrent.ConcurrentHashMap.keySet()
Reported by: | cmuelle8 | Owned by: | cmuelle8 |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | Core | Version: | latest |
Keywords: | Cc: |
Description
I've experienced this for a while now and think it's worth reporting:
java.lang.NoSuchMethodError: java.util.concurrent.ConcurrentHashMap.keySet()Ljava/util/concurrent/ConcurrentHashMap$KeySetView; at org.apache.commons.jcs.utils.threadpool.ThreadPoolManager.getPoolNames(ThreadPoolManager.java:287) at org.apache.commons.jcs.utils.threadpool.ThreadPoolManager.dispose(ThreadPoolManager.java:216) at org.apache.commons.jcs.engine.control.CompositeCacheManager.shutDown(CompositeCacheManager.java:678) at org.openstreetmap.josm.data.cache.JCSCacheManager.shutdown(JCSCacheManager.java:181) at org.openstreetmap.josm.Main.exitJosm(Main.java:1077) at org.openstreetmap.josm.gui.MainApplication$1.windowClosing(MainApplication.java:112) at java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:349) at java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:349) at java.awt.Window.processWindowEvent(Window.java:2051) at javax.swing.JFrame.processWindowEvent(JFrame.java:290) at java.awt.Window.processEvent(Window.java:2009) at java.awt.Component.dispatchEventImpl(Component.java:4872) at java.awt.Container.dispatchEventImpl(Container.java:2287) at java.awt.Window.dispatchEventImpl(Window.java:2719) at java.awt.Component.dispatchEvent(Component.java:4698) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:747) at java.awt.EventQueue.access$300(EventQueue.java:103) at java.awt.EventQueue$3.run(EventQueue.java:706) at java.awt.EventQueue$3.run(EventQueue.java:704) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:77) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87) at java.awt.EventQueue$4.run(EventQueue.java:720) at java.awt.EventQueue$4.run(EventQueue.java:718) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:77) at java.awt.EventQueue.dispatchEvent(EventQueue.java:717) at org.GNOME.Accessibility.AtkWrapper$5.dispatchEvent(AtkWrapper.java:697) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Attachments (0)
Change History (5)
comment:1 by , 9 years ago
comment:2 by , 9 years ago
Where does you josm.jar come from? It seems it have been compiled with jdk8 instead of jdk7.
comment:3 by , 9 years ago
Owner: | changed from | to
---|---|
Status: | new → needinfo |
can you please also add a status report as requested on newticket? Thanks.
comment:4 by , 9 years ago
First things first:
Build-Date:2015-12-31 15:58:29 Revision:9229 Is-Local-Build:true Identification: JOSM/1.5 (9229 SVN de) Linux Ubuntu 15.10 Memory Usage: 693 MB / 1609 MB (358 MB allocated, but free) Java version: 1.7.0_91, Oracle Corporation, OpenJDK 64-Bit Server VM Java package: openjdk-7-jre:amd64-7u91-2.6.3-0ubuntu0.15.10.1 Plugins: - PicLayer (31772) - RoadSigns (31772) - alignways (31772) - apache-commons (31772) - editgpx (31106) - imagery_offset_db (31772) - kendzi3d (1.0.189) - kendzi3d-jogl (41) - kendzi3d-resources (0.0.1) - log4j (31879) - openvisible (31106) - pbf (31772) - photo_geotagging (31772) - photoadjust (31772) - poly (31772) - print (31772) - reverter (31772) - turnlanes (31772) - turnrestrictions (31772) - utilsplugin2 (31890) - wikipedia (31866)
I've done some more research on this - as you've pointed out, I had built with openjdk8 and ran with jdk7. Using this configuration I am able to reproduce the bug reported, just tested with a fresh checkout. The following configurations, however, are fine and do not show bogus behavior:
- building w/ openjdk7, running w/ openjdk7
- building w/ openjdk7, running w/ openjdk8
- building w/ openjdk8, running w/ openjdk8
If you think it's not worth the effort to do research on this, I do not oppose closing the bug. Building with openjdk8 and running with a java version below probably isn't intended by the jdk devs anyway. Maybe a warning will help, however, like:
JOSM was built with a JDK versioned higher than your runtime, please update your runtime!
I know that there is a warning in place currently as MOTD, requesting to upgrade to Java8. But maybe similar problems will arise on a major upgrade of java versions at a later time, again. As such, checking built/runtime pair at start might be helpful to more easily detect potential bug sources.
Greetings
comment:5 by , 9 years ago
Resolution: | → invalid |
---|---|
Status: | needinfo → closed |
OK thanks for the info.
There's already an error message if you try to run JOSM with Java < 7, and a warning message on startup page of you run it with Java 7.
We take care of compiling JOSM with the adequate JDK. Anyone who tries to compile JOSM by hand must take care of running it with a correct runtime also :)
Environment: