Ignore:
Timestamp:
2012-06-24T21:02:36+02:00 (12 years ago)
Author:
Don-vip
Message:

see #4899, see #7266, see #7333: Resolved NPE in conflict manager when copying a member created by merging two layers

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/conflict/pair/relation/RelationMemberListMergeModel.java

    r4191 r5298  
    55
    66import java.util.List;
     7import java.util.Map;
    78
    89import javax.swing.table.DefaultTableModel;
    910
    1011import org.openstreetmap.josm.command.RelationMemberConflictResolverCommand;
    11 import org.openstreetmap.josm.data.osm.DataSet;
    1212import org.openstreetmap.josm.data.osm.OsmPrimitive;
     13import org.openstreetmap.josm.data.osm.PrimitiveId;
    1314import org.openstreetmap.josm.data.osm.Relation;
    1415import org.openstreetmap.josm.data.osm.RelationMember;
     
    2122 */
    2223public class RelationMemberListMergeModel extends ListMergeModel<RelationMember>{
    23     private DataSet myDataset;
    2424
    2525    @Override
     
    6060     * @param my my relation. Must not be null.
    6161     * @param their their relation. Must not be null.
     62     * @param mergedMap The map of merged primitives if the conflict results from merging two layers
    6263     *
    6364     * @throws IllegalArgumentException if my is null
    6465     * @throws IllegalArgumentException if their is null
    6566     */
    66     public void populate(Relation my, Relation their) {
    67         this.myDataset = my.getDataSet();
    68 
    69         CheckParameterUtil.ensureParameterNotNull(my, "my");
    70         CheckParameterUtil.ensureParameterNotNull(their, "their");
    71 
    72         getMergedEntries().clear();
    73         getMyEntries().clear();
    74         getTheirEntries().clear();
     67    public void populate(Relation my, Relation their, Map<PrimitiveId, PrimitiveId> mergedMap) {
     68        initPopulate(my, their, mergedMap);
    7569
    7670        for (RelationMember n : my.getMembers()) {
     
    9488    @Override
    9589    protected RelationMember cloneEntryForMergedList(RelationMember entry) {
    96         OsmPrimitive primitive = getMyPrimitive(entry);
    97         return new RelationMember(entry.getRole(), primitive);
     90        return new RelationMember(entry.getRole(), getMyPrimitive(entry));
    9891    }
    9992
    10093    @Override
    10194    protected OsmPrimitive getMyPrimitive(RelationMember entry) {
    102         return myDataset.getPrimitiveById(entry.getMember());
     95        return getMyPrimitiveDefault(entry.getMember());
    10396    }
    10497
Note: See TracChangeset for help on using the changeset viewer.