Ticket #22529: cs-perf.patch
| File cs-perf.patch, 2.2 KB (added by , 3 years ago) |
|---|
-
src/org/openstreetmap/josm/data/osm/ChangesetDataSet.java
65 65 CheckParameterUtil.ensureParameterNotNull(primitive, "primitive"); 66 66 CheckParameterUtil.ensureParameterNotNull(cmt, "cmt"); 67 67 DefaultChangesetDataSetEntry csEntry = new DefaultChangesetDataSetEntry(cmt, primitive); 68 Object val = entryMap.get(primitive.getPrimitiveId());68 final PrimitiveId pid = primitive.getPrimitiveId(); 69 69 ChangesetDataSetEntry[] entries; 70 if (val == null) {71 entryMap.put(primitive.getPrimitiveId(), csEntry);70 Object val = entryMap.computeIfAbsent(pid, k -> csEntry); 71 if (val == csEntry) 72 72 return; 73 }74 73 if (val instanceof ChangesetDataSetEntry) { 75 74 entries = new ChangesetDataSetEntry[2]; 76 75 entries[0] = (ChangesetDataSetEntry) val; … … 77 76 if (primitive.getVersion() <= entries[0].getPrimitive().getVersion()) { 78 77 throw new IllegalArgumentException( 79 78 tr("Changeset {0}: Unexpected order of versions for {1}: v{2} is not higher than v{3}", 80 String.valueOf(primitive.getChangesetId()), p rimitive.getPrimitiveId(),79 String.valueOf(primitive.getChangesetId()), pid, 81 80 primitive.getVersion(), entries[0].getPrimitive().getVersion())); 82 81 } 83 82 } else { … … 85 84 } 86 85 if (entries[1] != null) { 87 86 Logging.info("Changeset {0}: Change of {1} v{2} is replaced by version v{3}", 88 String.valueOf(primitive.getChangesetId()), p rimitive.getPrimitiveId(),87 String.valueOf(primitive.getChangesetId()), pid, 89 88 entries[1].getPrimitive().getVersion(), primitive.getVersion()); 90 89 } 91 90 entries[1] = csEntry; 92 entryMap.put(p rimitive.getPrimitiveId(), entries);91 entryMap.put(pid, entries); 93 92 } 94 93 95 94 /**
