Ticket #17040: 17040-work6.patch

File 17040-work6.patch, 10.9 KB (added by GerdP, 7 years ago)

fix more leaks reg. Dataset

  • src/org/openstreetmap/josm/actions/ValidateAction.java

     
    165165                test.visit(validatedPrimitives);
    166166                test.endTest();
    167167                errors.addAll(test.getErrors());
     168                test.clear();
    168169            }
    169170            tests = null;
    170171            if (ValidatorPrefHelper.PREF_USE_IGNORE.get()) {
  • src/org/openstreetmap/josm/actions/upload/ValidateUploadHook.java

     
    6464            test.endTest();
    6565            if (ValidatorPrefHelper.PREF_OTHER.get() && ValidatorPrefHelper.PREF_OTHER_UPLOAD.get()) {
    6666                errors.addAll(test.getErrors());
     67                test.clear();
    6768            } else {
    6869                for (TestError e : test.getErrors()) {
    6970                    if (e.getSeverity() != Severity.OTHER) {
  • src/org/openstreetmap/josm/data/validation/Test.java

     
    373373    public int compareTo(Test t) {
    374374        return name.compareTo(t.name);
    375375    }
     376
     377    /**
     378     * Free resources.
     379     */
     380    public void clear() {
     381        errors.clear();
     382    }
    376383}
  • src/org/openstreetmap/josm/data/validation/tests/PowerLines.java

     
    9696                    .ifPresent(ignore -> errors.add(e));
    9797        }
    9898        potentialErrors.clear();
     99        powerStations.clear();
    99100        super.endTest();
    100101    }
    101102
  • src/org/openstreetmap/josm/gui/MainPanel.java

     
    88import javax.swing.JPanel;
    99
    1010import org.openstreetmap.josm.actions.mapmode.MapMode;
     11import org.openstreetmap.josm.data.UndoRedoHandler;
    1112import org.openstreetmap.josm.gui.layer.Layer;
    1213import org.openstreetmap.josm.gui.layer.MainLayerManager;
    1314import org.openstreetmap.josm.gui.layer.MainLayerManager.LayerAvailabilityEvent;
     
    6566            map = null;
    6667            MainApplication.map = map;
    6768            add(getGettingStarted(), BorderLayout.CENTER);
     69            UndoRedoHandler.getInstance().clean();
    6870        }
    6971        setVisible(true);
    7072
  • src/org/openstreetmap/josm/gui/MapView.java

     
    807807        }
    808808        nonChangedLayersBuffer = null;
    809809        offscreenBuffer = null;
     810        removeAllZoomChangeListeners();
    810811    }
    811812
    812813    /**
  • src/org/openstreetmap/josm/gui/NavigatableComponent.java

     
    128128    }
    129129
    130130    /**
     131     * Removes a zoom change listener
     132     *
     133     * @param listener the listener. Ignored if null or already absent
     134     */
     135    protected static void removeAllZoomChangeListeners() {
     136        zoomChangeListeners.clear();
     137    }
     138
     139
     140    /**
    131141     * Adds a zoom change listener
    132142     *
    133143     * @param listener the listener. Ignored if null or already registered.
  • src/org/openstreetmap/josm/gui/dialogs/NotesDialog.java

     
    222222        return noteData != null ? noteData.getSelectedNote() : null;
    223223    }
    224224
     225    @Override
     226    public void destroy() {
     227        MainApplication.getLayerManager().removeLayerChangeListener(this);
     228        super.destroy();
     229    }
     230
    225231    private static class NoteRenderer implements ListCellRenderer<Note> {
    226232
    227233        private final DefaultListCellRenderer defaultListCellRenderer = new DefaultListCellRenderer();
     
    436442            }
    437443        }
    438444    }
     445
    439446}
  • src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java

     
    4545import org.openstreetmap.josm.actions.relation.RecentRelationsAction;
    4646import org.openstreetmap.josm.actions.relation.SelectMembersAction;
    4747import org.openstreetmap.josm.actions.relation.SelectRelationAction;
     48import org.openstreetmap.josm.data.UndoRedoHandler;
    4849import org.openstreetmap.josm.data.osm.DataSet;
    4950import org.openstreetmap.josm.data.osm.DefaultNameFormatter;
    5051import org.openstreetmap.josm.data.osm.IPrimitive;
     
    208209
    209210    @Override
    210211    public void destroy() {
     212        UndoRedoHandler.getInstance().removeCommandQueueListener(recentRelationsAction);
     213        exportRelationFromFirstAction.setPrimitives(Collections.emptyList());
     214        exportRelationFromFirstToLayerAction.setPrimitives(Collections.emptyList());
     215        exportRelationFromLastAction.setPrimitives(Collections.emptyList());
     216        exportRelationFromLastToLayerAction.setPrimitives(Collections.emptyList());
    211217        recentRelationsAction.destroy();
    212218        model.clear();
    213219        super.destroy();
  • src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java

     
    455455
    456456    @Override
    457457    public void destroy() {
     458        dialogsPanel = null;
    458459        rememberHeight();
    459460        closeDetachedDialog();
    460461        if (isShowing) {
  • src/org/openstreetmap/josm/gui/dialogs/properties/PropertiesDialog.java

     
    551551
    552552    @Override
    553553    public void destroy() {
     554        taginfoAction.destroy();
    554555        super.destroy();
    555556        Config.getPref().removeKeyPreferenceChangeListener("display.discardable-keys", preferenceListener);
    556557        Container parent = pluginHook.getParent();
  • src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java

     
    5050import org.openstreetmap.josm.actions.JosmAction;
    5151import org.openstreetmap.josm.command.ChangeCommand;
    5252import org.openstreetmap.josm.command.Command;
     53import org.openstreetmap.josm.data.UndoRedoHandler;
    5354import org.openstreetmap.josm.data.osm.DefaultNameFormatter;
    5455import org.openstreetmap.josm.data.osm.OsmPrimitive;
    5556import org.openstreetmap.josm.data.osm.Relation;
     
    309310    }
    310311
    311312    @Override
     313    public void dispose() {
     314        UndoRedoHandler.getInstance().removeCommandQueueListener(refreshAction);
     315        super.dispose();
     316    }
     317
     318    @Override
    312319    public void reloadDataFromRelation() {
    313320        setRelation(getRelation());
    314321        populateModels(getRelation());
  • src/org/openstreetmap/josm/gui/dialogs/relation/RelationEditor.java

     
    3939    private transient Relation relationSnapshot;
    4040
    4141    /** The data layer the relation belongs to */
    42     private final transient OsmDataLayer layer;
     42    private transient OsmDataLayer layer;
    4343
    4444    private final PropertyChangeSupport support = new PropertyChangeSupport(this);
    4545
     
    154154    @Override
    155155    public void dispose() {
    156156        layer.setRecentRelation(relation);
     157        layer = null;
    157158        super.dispose();
    158159    }
    159160}
  • src/org/openstreetmap/josm/gui/io/SaveLayersDialog.java

     
    134134                    default: return false;
    135135                }
    136136            }
     137            dialog.closeDialog();
    137138        }
    138139
    139140        return true;
     
    347348     */
    348349    public void closeDialog() {
    349350        setVisible(false);
     351        MainApplication.removeMapFrameListener(saveSessionAction);
     352        saveSessionAction.destroy();
    350353        dispose();
    351354    }
    352355
  • src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java

     
    10531053        super.destroy();
    10541054        data.removeSelectionListener(this);
    10551055        data.removeHighlightUpdateListener(this);
     1056        validationErrors.clear();
    10561057    }
    10571058
    10581059    @Override
  • src/org/openstreetmap/josm/gui/tagging/ac/AutoCompletionManager.java

     
    484484                    INSTANCES.remove(ds);
    485485                    ds.removeDataSetListener(AutoCompletionManager.this);
    486486                    MainApplication.getLayerManager().removeLayerChangeListener(this);
     487                    tagCache.clear();
     488                    roleCache.clear();
     489                    ds = null;
    487490                }
    488491            }
    489492