#8921 closed defect (othersoftware)
Many exceptions caused by EDT violations with latest security update of OpenJDK 6
Reported by: | skyper | Owned by: | team |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | Core | Version: | latest |
Keywords: | edt openjdk java6 linux debian ubuntu | Cc: |
Description
What steps will reproduce the problem?
- start JOSM and open some data
- select object and open add value dialog
- double click on a pair really fast
What is the expected result?
key-value pair is added and dialog is closed
What happens instead?
NPE
Please provide any additional information below. Attach a screenshot if
possible.
I use a list of 25 entries with preserving set to true.
Repository Root: http://josm.openstreetmap.de/svn Build-Date: 2013-07-28 01:34:50 Last Changed Author: akks Revision: 6090 Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b URL: http://josm.openstreetmap.de/svn/trunk Last Changed Date: 2013-07-26 21:45:36 +0200 (Fri, 26 Jul 2013) Last Changed Rev: 6090 Identification: JOSM/1.5 (6090 en) Linux Debian GNU/Linux 7.1 (wheezy) Memory Usage: 363 MB / 592 MB (177 MB allocated, but free) Java version: 1.6.0_27, Sun Microsystems Inc., OpenJDK 64-Bit Server VM Program arguments: [] Dataset consistency test: No problems found Plugin: OpeningHoursEditor (29778) Plugin: conflation (0.1.6) Plugin: jts (29613) Plugin: mirrored_download (29643) Plugin: notes (0.1-4-ge6be9c4) Plugin: openstreetbugs (29435) Plugin: reverter (29771) Plugin: undelete (29555) Plugin: utilsplugin2 (29771) Plugin: wikipedia (29778) java.lang.NullPointerException at javax.swing.SwingUtilities.getWindowAncestor(SwingUtilities.java:137) at javax.swing.SwingUtilities.windowForComponent(SwingUtilities.java:455) at javax.swing.ToolTipManager.showTipWindow(ToolTipManager.java:309) at javax.swing.ToolTipManager$insideTimerAction.actionPerformed(ToolTipManager.java:629) at javax.swing.Timer.fireActionPerformed(Timer.java:313) at javax.swing.Timer$DoPostEvent.run(Timer.java:244) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:673) at java.awt.EventQueue.access$300(EventQueue.java:96) at java.awt.EventQueue$2.run(EventQueue.java:634) at java.awt.EventQueue$2.run(EventQueue.java:632) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:108) at java.awt.EventQueue.dispatchEvent(EventQueue.java:643) 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)
Attachments (3)
Change History (46)
comment:1 by , 11 years ago
by , 11 years ago
Attachment: | possible_fix.patch added |
---|
comment:3 by , 11 years ago
Well, I get some "EDT violations" just adding tags.
Information: Einstellungsdatei '$HOME/.josm-test/preferences.xml' fehlt. Erstelle Standardeinstellungsdatei. GET http://api.openstreetmap.org/api/capabilities... OK Enabled EDT checker, wrongful access to gui from non EDT thread will be printed to console EDT violation detected javax.swing.plaf.metal.MetalComboBoxEditor$1[,0,0,277x24,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.metal.MetalComboBoxEditor$EditorBorder@1f4790be,flags=8388904,maximumSize=,minimumSize=,preferredSize=,caretColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],disabledTextColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],selectedTextColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],selectionColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],columns=9,columnWidth=12,command=,horizontalAlignment=LEADING] at java.lang.Thread.getStackTrace(Thread.java:1495) at org.jdesktop.swinghelper.debug.CheckThreadViolationRepaintManager.checkThreadViolations(CheckThreadViolationRepaintManager.java:81) at org.jdesktop.swinghelper.debug.CheckThreadViolationRepaintManager.addDirtyRegion(CheckThreadViolationRepaintManager.java:72) at javax.swing.JComponent.repaint(JComponent.java:4736) at java.awt.Component.repaint(Component.java:3137) at javax.swing.text.DefaultCaret.repaint(DefaultCaret.java:245) at javax.swing.text.DefaultCaret$Handler.actionPerformed(DefaultCaret.java:1651) at javax.swing.Timer.fireActionPerformed(Timer.java:313) at javax.swing.Timer$DoPostEvent.run(Timer.java:244) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:673) at java.awt.EventQueue.access$300(EventQueue.java:96) at java.awt.EventQueue$2.run(EventQueue.java:634) at java.awt.EventQueue$2.run(EventQueue.java:632) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:108) at java.awt.EventQueue.dispatchEvent(EventQueue.java:643) 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) EDT violation detected javax.swing.plaf.metal.MetalComboBoxEditor$1[,0,0,277x24,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.metal.MetalComboBoxEditor$EditorBorder@6ac1abcf,flags=8388904,maximumSize=,minimumSize=,preferredSize=,caretColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],disabledTextColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],selectedTextColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],selectionColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],columns=9,columnWidth=12,command=,horizontalAlignment=LEADING] at java.lang.Thread.getStackTrace(Thread.java:1495) at org.jdesktop.swinghelper.debug.CheckThreadViolationRepaintManager.checkThreadViolations(CheckThreadViolationRepaintManager.java:81) at org.jdesktop.swinghelper.debug.CheckThreadViolationRepaintManager.addDirtyRegion(CheckThreadViolationRepaintManager.java:72) at javax.swing.JComponent.repaint(JComponent.java:4736) at java.awt.Component.repaint(Component.java:3137) at javax.swing.text.DefaultCaret.repaint(DefaultCaret.java:245) at javax.swing.text.DefaultCaret$Handler.actionPerformed(DefaultCaret.java:1651) at javax.swing.Timer.fireActionPerformed(Timer.java:313) at javax.swing.Timer$DoPostEvent.run(Timer.java:244) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:673) at java.awt.EventQueue.access$300(EventQueue.java:96) at java.awt.EventQueue$2.run(EventQueue.java:634) at java.awt.EventQueue$2.run(EventQueue.java:632) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:108) at java.awt.EventQueue.dispatchEvent(EventQueue.java:643) 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) EDT violation detected javax.swing.JCheckBoxMenuItem[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.metal.MetalBorders$MenuItemBorder@19f71b53,flags=264,maximumSize=,minimumSize=,preferredSize=,defaultIcon=javax.swing.ImageIcon@7994d431,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2],paintBorder=true,paintFocus=false,pressedIcon=,rolloverEnabled=false,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=Angle snapping] at java.lang.Thread.getStackTrace(Thread.java:1495) at org.jdesktop.swinghelper.debug.CheckThreadViolationRepaintManager.checkThreadViolations(CheckThreadViolationRepaintManager.java:81) at org.jdesktop.swinghelper.debug.CheckThreadViolationRepaintManager.addDirtyRegion(CheckThreadViolationRepaintManager.java:72) at javax.swing.JComponent.repaint(JComponent.java:4736) at java.awt.Component.repaint(Component.java:3094) at javax.swing.AbstractButton$Handler.stateChanged(AbstractButton.java:2328) at javax.swing.DefaultButtonModel.fireStateChanged(DefaultButtonModel.java:350) at javax.swing.JToggleButton$ToggleButtonModel.setSelected(JToggleButton.java:269) at javax.swing.AbstractButton.setSelected(AbstractButton.java:346) at javax.swing.JCheckBoxMenuItem.setState(JCheckBoxMenuItem.java:205) at org.openstreetmap.josm.actions.mapmode.DrawAction$SnapHelper.toggleSnapping(DrawAction.java:1643) at org.openstreetmap.josm.actions.mapmode.DrawAction$SnapHelper.unFixOrTurnOff(DrawAction.java:1697) at org.openstreetmap.josm.actions.mapmode.DrawAction$SnapHelper.access$500(DrawAction.java:1312) at org.openstreetmap.josm.actions.mapmode.DrawAction.doKeyReleaseEvent(DrawAction.java:334) at org.openstreetmap.josm.actions.mapmode.DrawAction.access$400(DrawAction.java:83) at org.openstreetmap.josm.actions.mapmode.DrawAction$1.actionPerformed(DrawAction.java:229) at javax.swing.Timer.fireActionPerformed(Timer.java:313) at javax.swing.Timer$DoPostEvent.run(Timer.java:244) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:673) at java.awt.EventQueue.access$300(EventQueue.java:96) at java.awt.EventQueue$2.run(EventQueue.java:634) at java.awt.EventQueue$2.run(EventQueue.java:632) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:108) at java.awt.EventQueue.dispatchEvent(EventQueue.java:643) 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) EDT violation detected org.openstreetmap.josm.gui.widgets.ImageLabel[,313,5,73x19,layout=java.awt.GridBagLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9,maximumSize=,minimumSize=,preferredSize=] at java.lang.Thread.getStackTrace(Thread.java:1495) at org.jdesktop.swinghelper.debug.CheckThreadViolationRepaintManager.checkThreadViolations(CheckThreadViolationRepaintManager.java:81) at org.jdesktop.swinghelper.debug.CheckThreadViolationRepaintManager.addDirtyRegion(CheckThreadViolationRepaintManager.java:72) at javax.swing.JComponent.repaint(JComponent.java:4736) at java.awt.Component.repaint(Component.java:3094) at javax.swing.JComponent.setBackground(JComponent.java:2705) at org.openstreetmap.josm.gui.MapStatus.activateAnglePanel(MapStatus.java:889) at org.openstreetmap.josm.actions.mapmode.DrawAction.showStatusInfo(DrawAction.java:861) at org.openstreetmap.josm.actions.mapmode.DrawAction.computeHelperLine(DrawAction.java:812) at org.openstreetmap.josm.actions.mapmode.DrawAction.doKeyReleaseEvent(DrawAction.java:335) at org.openstreetmap.josm.actions.mapmode.DrawAction.access$400(DrawAction.java:83) at org.openstreetmap.josm.actions.mapmode.DrawAction$1.actionPerformed(DrawAction.java:229) at javax.swing.Timer.fireActionPerformed(Timer.java:313) at javax.swing.Timer$DoPostEvent.run(Timer.java:244) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:673) at java.awt.EventQueue.access$300(EventQueue.java:96) at java.awt.EventQueue$2.run(EventQueue.java:634) at java.awt.EventQueue$2.run(EventQueue.java:632) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:108) at java.awt.EventQueue.dispatchEvent(EventQueue.java:643) 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) EDT violation detected org.openstreetmap.josm.gui.MapStatus[,0,617,998x29,layout=java.awt.GridBagLayout,alignmentX=0.0,alignmentY=0.0,border=javax.swing.border.EmptyBorder@2e22f376,flags=9,maximumSize=,minimumSize=,preferredSize=] at java.lang.Thread.getStackTrace(Thread.java:1495) at org.jdesktop.swinghelper.debug.CheckThreadViolationRepaintManager.checkThreadViolations(CheckThreadViolationRepaintManager.java:81) at org.jdesktop.swinghelper.debug.CheckThreadViolationRepaintManager.addDirtyRegion(CheckThreadViolationRepaintManager.java:72) at javax.swing.JComponent.repaint(JComponent.java:4736) at java.awt.Component.repaint(Component.java:3094) at org.openstreetmap.josm.actions.mapmode.MapMode.updateStatusLine(MapMode.java:70) at org.openstreetmap.josm.actions.mapmode.DrawAction.redrawIfRequired(DrawAction.java:156) at org.openstreetmap.josm.actions.mapmode.DrawAction.doKeyReleaseEvent(DrawAction.java:336) at org.openstreetmap.josm.actions.mapmode.DrawAction.access$400(DrawAction.java:83) at org.openstreetmap.josm.actions.mapmode.DrawAction$1.actionPerformed(DrawAction.java:229) at javax.swing.Timer.fireActionPerformed(Timer.java:313) at javax.swing.Timer$DoPostEvent.run(Timer.java:244) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:673) at java.awt.EventQueue.access$300(EventQueue.java:96) at java.awt.EventQueue$2.run(EventQueue.java:634) at java.awt.EventQueue$2.run(EventQueue.java:632) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:108) at java.awt.EventQueue.dispatchEvent(EventQueue.java:643) 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) EDT violation detected org.openstreetmap.josm.gui.MapView[,0,0,617x615,alignmentX=0.0,alignmentY=0.0,border=,flags=2,maximumSize=,minimumSize=java.awt.Dimension[width=10,height=0],preferredSize=] at java.lang.Thread.getStackTrace(Thread.java:1495) at org.jdesktop.swinghelper.debug.CheckThreadViolationRepaintManager.checkThreadViolations(CheckThreadViolationRepaintManager.java:81) at org.jdesktop.swinghelper.debug.CheckThreadViolationRepaintManager.addDirtyRegion(CheckThreadViolationRepaintManager.java:72) at javax.swing.JComponent.repaint(JComponent.java:4736) at java.awt.Component.repaint(Component.java:3094) at org.openstreetmap.josm.actions.mapmode.DrawAction.redrawIfRequired(DrawAction.java:196) at org.openstreetmap.josm.actions.mapmode.DrawAction.doKeyReleaseEvent(DrawAction.java:336) at org.openstreetmap.josm.actions.mapmode.DrawAction.access$400(DrawAction.java:83) at org.openstreetmap.josm.actions.mapmode.DrawAction$1.actionPerformed(DrawAction.java:229) at javax.swing.Timer.fireActionPerformed(Timer.java:313) at javax.swing.Timer$DoPostEvent.run(Timer.java:244) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:673) at java.awt.EventQueue.access$300(EventQueue.java:96) at java.awt.EventQueue$2.run(EventQueue.java:634) at java.awt.EventQueue$2.run(EventQueue.java:632) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:108) at java.awt.EventQueue.dispatchEvent(EventQueue.java:643) 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) EDT violation detected javax.swing.plaf.metal.MetalComboBoxEditor$1[,0,0,277x24,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.metal.MetalComboBoxEditor$EditorBorder@1e4651bf,flags=8388904,maximumSize=,minimumSize=,preferredSize=,caretColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],disabledTextColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],editable=true,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],selectedTextColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],selectionColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],columns=9,columnWidth=12,command=,horizontalAlignment=LEADING] at java.lang.Thread.getStackTrace(Thread.java:1495) at org.jdesktop.swinghelper.debug.CheckThreadViolationRepaintManager.checkThreadViolations(CheckThreadViolationRepaintManager.java:81) at org.jdesktop.swinghelper.debug.CheckThreadViolationRepaintManager.addDirtyRegion(CheckThreadViolationRepaintManager.java:72) at javax.swing.JComponent.repaint(JComponent.java:4736) at java.awt.Component.repaint(Component.java:3137) at javax.swing.text.DefaultCaret.repaint(DefaultCaret.java:245) at javax.swing.text.DefaultCaret$Handler.actionPerformed(DefaultCaret.java:1651) at javax.swing.Timer.fireActionPerformed(Timer.java:313) at javax.swing.Timer$DoPostEvent.run(Timer.java:244) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:673) at java.awt.EventQueue.access$300(EventQueue.java:96) at java.awt.EventQueue$2.run(EventQueue.java:634) at java.awt.EventQueue$2.run(EventQueue.java:632) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:108) at java.awt.EventQueue.dispatchEvent(EventQueue.java:643) 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)
comment:4 by , 11 years ago
Yes, EDT can cause this. They are very nasty :)
Could you please log these violations with this build
https://dl.dropboxusercontent.com/u/63393258/josm-custom.jar
(it adds printing current event and thread, the link is always the same, old josm-custom was replaced)
comment:6 by , 11 years ago
Thank you. Sorry for that image-printing.
@team: I really can not understand how EDT violation could take place when Thread.currentTread in "main"...
comment:7 by , 11 years ago
Happened again. This time within the dialog. I am not sure if I did left click into map view or not.
Please find attached the error log file.
Build-Date: 2013-07-31 22:11:33 Revision: 6094 Is-Local-Build: true Identification: JOSM/1.5 (6094 SVN en) Linux Debian GNU/Linux 7.1 (wheezy) Memory Usage: 133 MB / 672 MB (35 MB allocated, but free) Java version: 1.6.0_27, Sun Microsystems Inc., OpenJDK 64-Bit Server VM Dataset consistency test: No problems found Plugin: OpeningHoursEditor (29778) Plugin: conflation (0.1.6) Plugin: jts (29613) Plugin: mirrored_download (29643) Plugin: notes (0.3) Plugin: openstreetbugs (29435) Plugin: reverter (29771) Plugin: undelete (29555) Plugin: utilsplugin2 (29771) Plugin: wikipedia (29778) java.lang.NullPointerException at javax.swing.ToolTipManager.showTipWindow(ToolTipManager.java:256) at javax.swing.ToolTipManager$insideTimerAction.actionPerformed(ToolTipManager.java:629) at javax.swing.Timer.fireActionPerformed(Timer.java:313) at javax.swing.Timer$DoPostEvent.run(Timer.java:244) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:673) at java.awt.EventQueue.access$300(EventQueue.java:96) at java.awt.EventQueue$2.run(EventQueue.java:634) at java.awt.EventQueue$2.run(EventQueue.java:632) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:108) at java.awt.EventQueue.dispatchEvent(EventQueue.java:643) 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)
follow-ups: 11 13 comment:9 by , 11 years ago
I found some info about Swing bug - if we set setTooltipText(null), there will be exception later in different place (JVM-dependent).
I tried to eliminate such calls, hope it will help.
comment:10 by , 11 years ago
Build for testing: https://dl.dropboxusercontent.com/u/63393258/josm-custom-6099.jar
comment:11 by , 11 years ago
Replying to akks:
I found some info about Swing bug - if we set setTooltipText(null), there will be exception later in different place (JVM-dependent).
I tried to eliminate such calls, hope it will help.
Are you sure ? I have set several tooltips to null
intentionnally because the Javadoc states:
text - the string to display; if the text is null, the tool tip is turned off for this component
What JVMs would not respect this statement ? OpenJdk6 ? Have you checked that setting up an empty string do not display an empty tooltip instead of disabling it ?
follow-up: 18 comment:12 by , 11 years ago
@Don-vip: Thank you for noticing!
Reverted it for sure in [6101]. We need to be more careful near stable version.
@skyper: If the custom build fixes the bug (though it seems that no), I can return needed portions of the patch.
follow-up: 15 comment:13 by , 11 years ago
Replying to akks:
I found some info about Swing bug - if we set setTooltipText(null), there will be exception later in different place (JVM-dependent).
I tried to eliminate such calls, hope it will help.
Can you post a link to the info? I also have some doubts that this is the best fix.
comment:15 by , 11 years ago
Replying to bastiK:
Replying to akks:
I found some info about Swing bug - if we set setTooltipText(null), there will be exception later in different place (JVM-dependent).
I tried to eliminate such calls, hope it will help.
Can you post a link to the info? I also have some doubts that this is the best fix.
I have already reverted the changes.
I meant the bug http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6219960
but seems that it is unrelated.
I have looked into JDK sources and can deduct that this is some EDT violation:
void showTipWindow() { if(insideComponent == null || !insideComponent.isShowing()) return; .... Window componentWindow = SwingUtilities.windowForComponent(insideComponent); <-------- NPE
windowForComponent(insideComponent) -> getWindowAncestor(insideComponent) -> insideComponent.getParent() , so
insideComponent was set to null by someone else during the void showTipWindow() call.
P.S. Just seen the same analysis in #8931. It is the same bug, I guess (and the same JDK 1.6.27 on linux 64),
comment:16 by , 11 years ago
Can the timer events be executed in different thread than mouse clicks, for example? (mouse clicks sets insideComponent to null). I feel suspicious of that Thread[AWT-EventQueue-2,6,main]
in log file (I have only AWT-EventQueue-0).
There are no plugins in #8931, by the way.
comment:17 by , 11 years ago
According to the code, AWT-EventQueue-2 can be created only after AWT-EventQueue-0 and AWT-EventQueue-1. Why JDK or someone else created it - that is a question...
P.S. According to https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000000019749, new queue is generated for a new java.awt.Dialog. So when one dialog will access other GUI, it will be EDT violation???
follow-up: 19 comment:18 by , 11 years ago
Replying to akks:
@skyper: If the custom build fixes the bug (though it seems that no), I can return needed portions of the patch.
Does not fix the bug
comment:19 by , 11 years ago
Replying to skyper:
Replying to akks:
@skyper: If the custom build fixes the bug (though it seems that no), I can return needed portions of the patch.
Does not fix the bug
So I was right to revert the changes :)
Must be openjdk-6 incompatibility, EDT-violation involved.
I am trying to reproduce EDT violations on Ubuntu 12.04 + 1.6.0_27 .
comment:20 by , 11 years ago
Reproduced EDTVs (no plugins!). I guess if we fix them, the bug will go too.
comment:21 by , 11 years ago
There are much more threads when program is run with OpenJDK6, so - much more EDT violations!
The bug is caused by them.
I also find openjdk6 extremely buggy on Ubuntu 12.04 - Netbeans can not create new projects and even save files (!), autocompletion hangs...
comment:22 by , 11 years ago
Arrgh! It is the freshest security-update-bug from Debian-Ubuntu-OpenJDK team :)
https://bugs.launchpad.net/ubuntu/+source/openjdk-6/+bug/1204906
comment:23 by , 11 years ago
Keywords: | edt openjdk java6 linux debian ubuntu added; template_report add value removed |
---|
comment:24 by , 11 years ago
Summary: | NPE in add value dialog → NPE in add value dialog and EDT violations with latest security update of OpenJDK 6 |
---|
comment:28 by , 11 years ago
Priority: | normal → major |
---|
comment:29 by , 11 years ago
Summary: | NPE in add value dialog and EDT violations with latest security update of OpenJDK 6 → Many exceptions caused by EDT violations with latest security update of OpenJDK 6 |
---|
comment:31 by , 11 years ago
Resolution: | → othersoftware |
---|---|
Status: | new → closed |
Java bug, nothing we can do.
Ubuntu bug report: https://bugs.launchpad.net/ubuntu/+source/openjdk-6/+bug/1204906
IcedTea bug report: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1516
follow-up: 38 comment:32 by , 11 years ago
Ubuntu 12.10 is also affected (openjdk-6-jre-6b27-1.12.6-1ubuntu0.12.10.2
)
comment:34 by , 11 years ago
same issue with XUnbutu precise 12.04.3 LTS 3.2.0-52-generic with java version "1.6.0_27"
OpenJDK Runtime Environment (IcedTea6 1.12.6) (6b27-1.12.6-1ubuntu0.12.04.2)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
comment:38 by , 11 years ago
Replying to bastiK:
Ubuntu 12.10 is also affected (
openjdk-6-jre-6b27-1.12.6-1ubuntu0.12.10.2
)
The line goes down as far as Ubuntu 10.4.4 LTS (openjdk-6-jre:i386-6b27-1.12.6-1ubuntu0.10.04.2
) which should be officially supported till 2015. Not sure if openjdk-7
is available though.
comment:39 by , 11 years ago
I hope this bug will be fixed before 2015 :) It has been triaged recently on IcedTea's bugzilla.
comment:42 by , 11 years ago
There is finally an update for IcedTea 6 1.12.x:
http://blog.fuseyism.com/index.php/2013/11/25/security-icedtea-1-12-7-for-openjdk-6-released/
My bug has not been treated but may has been solved through another one, we'll have to look at debian/ubuntu package update.
This and #8922 may be really hard to fix, because no JOSM code is involved directly.
Could you try applying the following patch? (or using this build: https://dl.dropboxusercontent.com/u/63393258/josm-custom.jar)