Ticket #2230: Catch loose threads.2.patch

File Catch loose threads.2.patch, 2.6 KB (added by xeen, 3 years ago)

Forgot updating the patch

  • src/org/openstreetmap/josm/gui/MapFrame.java

     
    143143 
    144144        // remove menu entries 
    145145        Main.main.menu.viewMenu.setVisible(false); 
     146         
     147        // MapFrame gets destroyed when the last layer is removed, but the status line background 
     148        // thread that collects the information doesn't get destroyed automatically. 
     149        if(statusLine.thread == null) return; 
     150        try { 
     151            statusLine.thread.interrupt(); 
     152        } catch (Exception e) {} 
    146153    } 
    147154 
    148155    public Action getDefaultButtonAction() { 
  • src/org/openstreetmap/josm/gui/MapStatus.java

     
    100100    ImageLabel distText = new ImageLabel("dist", tr("The length of the new way segment being drawn."), 8); 
    101101 
    102102    /** 
     103     * This is the thread that runs in the background and collects the information displayed. 
     104     * It gets destroyed by MapFrame.java/destroy() when the MapFrame itself is destroyed. 
     105     */ 
     106    public Thread thread; 
     107     
     108    /** 
    103109     * The collector class that waits for notification and then update 
    104110     * the display objects. 
    105111     * 
     
    293299 
    294300        // The background thread 
    295301        final Collector collector = new Collector(mapFrame); 
    296         new Thread(collector).start(); 
     302        thread = new Thread(collector, "Map Status Collector"); 
     303        thread.setDaemon(true); 
     304        thread.start(); 
    297305 
    298306        // Listen to keyboard/mouse events for pressing/releasing alt key and 
    299307        // inform the collector. 
     
    344352    public String helpTopic() { 
    345353        return "Statusline"; 
    346354    } 
    347      
     355         
    348356    @Override 
    349357    public void addMouseListener(MouseListener ml) { 
    350358        //super.addMouseListener(ml); 
  • src/org/openstreetmap/josm/tools/XmlObjectParser.java

     
    196196    } 
    197197 
    198198    public Iterable<Object> start(final Reader in) { 
    199         new Thread(){ 
     199        new Thread("XML Reader"){ 
    200200            @Override public void run() { 
    201201                try { 
    202202                    SAXParserFactory.newInstance().newSAXParser().parse(new InputSource(in), parser);