Ticket #2230: Catch loose threads.2.patch

File Catch loose threads.2.patch, 2.6 KB (added by xeen, 15 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);