Opened 15 years ago

Last modified 14 years ago

#5632 closed defect

crash during update of large dataset — at Version 2

Reported by: vpbroman Owned by: team
Priority: normal Milestone:
Component: Core Version: tested
Keywords: Cc:

Description (last modified by Don-vip)

Josm crashed when editing a 152 Mb section of san diego, california
the first thing I did after opening the file was requesting
an update of all the data, which came in 12 sections,
during the fifth or sixth, the progress stopped and I got
the crash dialog inviting me to submit a bug report.
This is on Fedora 12 with current updates.

Repository Root: http://josm.openstreetmap.de/svn
Build-Date: 2010-10-06 01:31:17
Last Changed Author: bastiK
Revision: 3592
Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
URL: http://josm.openstreetmap.de/svn/trunk
Last Changed Date: 2010-10-05 20:34:31 +0200 (Tue, 05 Oct 2010)
Last Changed Rev: 3592

Identification: JOSM/1.5 (3592 en)
Memory Usage: 317 MB / 508 MB (94 MB allocated, but free)
Java version: 1.6.0_18, Sun Microsystems Inc., OpenJDK Client VM
Operating system: Linux
Dataset consistency test: No problems found

Plugin: ImportImagePlugin (23305)
Plugin: livegps (21706)
Plugin: measurement (22547)
Plugin: openvisible (21706)
Plugin: osmarender (22765)
Plugin: routing (22549)
Plugin: slippymap (22848)
Plugin: turnrestrictions (24125)
Plugin: validator (23917)
Plugin: wmsplugin (23904)

java.lang.ClassCastException: javax.swing.JLabel cannot be cast to javax.swing.text.JTextComponent
	at javax.swing.text.html.EditableView.paint(EditableView.java:76)
	at javax.swing.text.BoxView.paintChild(BoxView.java:161)
	at javax.swing.text.BoxView.paint(BoxView.java:433)
	at javax.swing.text.BoxView.paintChild(BoxView.java:161)
	at javax.swing.text.BoxView.paint(BoxView.java:433)
	at javax.swing.text.ParagraphView.paint(ParagraphView.java:604)
	at javax.swing.text.html.ParagraphView.paint(ParagraphView.java:241)
	at javax.swing.text.BoxView.paintChild(BoxView.java:161)
	at javax.swing.text.BoxView.paint(BoxView.java:433)
	at javax.swing.text.html.BlockView.paint(BlockView.java:282)
	at javax.swing.text.BoxView.paintChild(BoxView.java:161)
	at javax.swing.text.BoxView.paint(BoxView.java:433)
	at javax.swing.text.html.BlockView.paint(BlockView.java:282)
	at javax.swing.plaf.basic.BasicHTML$Renderer.paint(BasicHTML.java:481)
	at javax.swing.plaf.synth.SynthGraphicsUtils.paintText(SynthGraphicsUtils.java:405)
	at javax.swing.plaf.synth.SynthLabelUI.paint(SynthLabelUI.java:181)
	at javax.swing.plaf.synth.SynthLabelUI.update(SynthLabelUI.java:162)
	at javax.swing.JComponent.paintComponent(JComponent.java:765)
	at javax.swing.JComponent.paint(JComponent.java:1029)
	at javax.swing.JComponent.paintChildren(JComponent.java:866)
	at javax.swing.JComponent.paint(JComponent.java:1038)
	at javax.swing.JComponent.paintChildren(JComponent.java:866)
	at javax.swing.JComponent.paint(JComponent.java:1038)
	at javax.swing.JComponent.paintChildren(JComponent.java:866)
	at javax.swing.JComponent.paint(JComponent.java:1038)
	at javax.swing.JComponent.paintChildren(JComponent.java:866)
	at javax.swing.JComponent.paint(JComponent.java:1038)
	at javax.swing.JComponent.paintChildren(JComponent.java:866)
	at javax.swing.JComponent.paint(JComponent.java:1038)
	at javax.swing.JComponent.paintChildren(JComponent.java:866)
	at javax.swing.JComponent.paint(JComponent.java:1038)
	at javax.swing.JLayeredPane.paint(JLayeredPane.java:581)
	at javax.swing.JComponent.paintChildren(JComponent.java:866)
	at javax.swing.JComponent.paintToOffscreen(JComponent.java:5145)
	at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:302)
	at javax.swing.RepaintManager.paint(RepaintManager.java:1145)
	at javax.swing.JComponent.paint(JComponent.java:1015)
	at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39)
	at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:78)
	at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:115)
	at java.awt.Container.paint(Container.java:1844)
	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:751)
	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:696)
	at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:676)
	at javax.swing.RepaintManager.access$700(RepaintManager.java:57)
	at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1550)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:602)
	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.event.InvocationEvent.dispatch(InvocationEvent.java:226)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:602)
	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:1464)
	at java.awt.Component.setVisible(Component.java:1416)
	at java.awt.Window.setVisible(Window.java:842)
	at java.awt.Dialog.setVisible(Dialog.java:1011)
	at org.openstreetmap.josm.gui.progress.PleaseWaitProgressMonitor$3.run(PleaseWaitProgressMonitor.java:83)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:602)
	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)

Change History (2)

comment:1 by bastiK, 15 years ago

Resolution: irreproducible
Status: newclosed

there is a netbeans bug with this error, the fix was this:

changeset:   151796:29830b12c0f5
user:        Tomas Stupka <tstupka@netbeans.org>
date:        Mon Nov 02 12:05:38 2009 +0100
summary:     #175911 - ClassCastException: javax.swing.JLabel cannot be cast to javax.swing.text.JTextComponent

diff -r ab81f0bfd03f -r 29830b12c0f5 bugtracking/src/org/netbeans/modules/bugtracking/ui/search/PopupItem.java
--- a/bugtracking/src/org/netbeans/modules/bugtracking/ui/search/PopupItem.java	Mon Nov 02 11:20:40 2009 +0100
+++ b/bugtracking/src/org/netbeans/modules/bugtracking/ui/search/PopupItem.java	Mon Nov 02 12:05:38 2009 +0100
@@ -40,6 +40,7 @@
 package org.netbeans.modules.bugtracking.ui.search;
 
 import org.netbeans.modules.bugtracking.spi.Issue;
+import org.netbeans.modules.bugtracking.util.TextUtils;
 
 /**
  *
@@ -71,6 +72,9 @@
             if(text == null || text.trim().equals("")) return displayText;      // NOI18N
             StringBuffer sb = new StringBuffer();
 
+            text = TextUtils.escapeForHTMLLabel(text);
+            displayText = TextUtils.escapeForHTMLLabel(displayText);
+
             String displayTextLower = displayText.toLowerCase();
             String textLower = text.toLowerCase();
             int idx = displayTextLower.indexOf(textLower);

with

    /**
     * Replaces problematic characters by escape sequences.
     * This method is designed for text that should appear
     * in HTML label.
     *
     * @param text text to process.
     * @return text with correct escape sequences.
     */
    public static String escapeForHTMLLabel(String text) {
        StringBuilder sb = new StringBuilder();
        for (int i=0; i<text.length(); i++) {
            char c = text.charAt(i);
            switch (c) {
                case '<': sb.append("&lt;"); break; // NOI18N
                case '>': sb.append("&gt;"); break; // NOI18N
                default: sb.append(c);
            }
        }
        return sb.toString();
    }

however I have no clue how this can happen at the 5th of 12 updates. Maybe the api returned unexpected data?

comment:2 by Don-vip, 14 years ago

Description: modified (diff)
Resolution: irreproducible
Status: closedreopened
Note: See TracTickets for help on using tickets.