|
|
@18866
|
8 months |
taylor.smock |
|
|
Fix #23196: DataIntegrityProblemException: Primitive must be part of the dataset
It turns out that FilterModel doesn't care whether a primitive's referrers are
in the dataset or not.
This additionally adds a non-regression test and modifies WindowMocker to cover
some more headless exceptions. This additionally lets us stop mocking
ExtendedDialog#setupDialog .
|
|
|
@18865
|
8 months |
stoecker |
|
|
see #23228 - i18n update
|
|
|
@18864
|
8 months |
taylor.smock |
|
|
Fix mistype for secondary_link where the display value was Secondary (patch by KorneySan, see GitHub PR #131)
|
|
|
@18863
|
8 months |
taylor.smock |
|
|
Fix #23209: Add generator:type=boiler (patch by gaben)
|
|
|
@18862
|
8 months |
taylor.smock |
|
|
Fix #23232: Improve handrail.svg icon (drawn by AntoninDelFabbro, modified)
It is easier to distinguish this new icon from the icon for benches.
Modifications are as follows:
- Widen strokes to pixel sizes
- Ensure that vertical/horizontal strokes are within pixel boundaries
|
|
|
@18861
|
8 months |
stoecker |
|
|
remove hardcoded plugin Java versions, see #23218
|
|
|
@18860
|
8 months |
stoecker |
|
|
see #23228 - add sidewalk context to Bus bay
|
|
|
@18859
|
8 months |
taylor.smock |
|
|
Fix icon viewboxes
|
|
|
@18858
|
8 months |
taylor.smock |
|
|
See #23218: Fix check-plugins (hardcoded excludes for plugins with min Java versions > 8)
Additional changes:
- Tabs to spaces (SonarLint)
check-plugins can now be run on Java 20 (animal_sniffer does not yet support Java 21)
|
|
|
@18857
|
8 months |
taylor.smock |
|
|
See #23218: Update proguard to 7.4.0-beta02 for Java 21 support
|
|
|
@18856
|
8 months |
taylor.smock |
|
|
See #23218: Adapt rendering tests for Java 21
|
|
|
@18855
|
8 months |
stoecker |
|
|
add some important tags
|
|
|
@18854
|
8 months |
taylor.smock |
|
|
Fix regression from r18853: test-compile failing due to an import for JavaDoc
|
|
|
@18853
|
8 months |
taylor.smock |
|
|
See #16567: Update to JUnit 5
This removes new JOSMTestRules() with no additional setup and most
JOSMFixture calls.
Removing the bare JOSMTestRules speeds up the test suite since there are two
fewer System.gc() calls per test.
|
|
|
@18852
|
8 months |
taylor.smock |
|
|
Fix regression from r18847: Current tests expect a search for access= to match access=null and access="" (has key, but no value)
|
|
|
@18851
|
8 months |
taylor.smock |
|
|
Fix #23203: Simplify Way dialog can cause a deadlock
This is caused by a write lock being acquired in SimplifyWayAction.actionPerformed
in the EDT and then a read lock is attempted to be acquired in a styled-map-renderer
thread. The styled-map-renderer thread is waited on by the EDT, which causes the
deadlock. The fix is removing the dataset write lock in SimplifyWayAction.actionPerformed
which was added back in 2011. An analysis of the code shows that the commands generated
lock the dataset themselves, so the dataset lock in SimplifyWayAction.actionPerformed
should no longer be necessary.
The deadlock does not happen reliably with only the JOSM default paintstyle; adding
additional paintstyles was required for the initial analysis.
|
|
|
@18850
|
8 months |
taylor.smock |
|
|
Fix #23187: Don't show validation results panel when no issues will be shown
|
|
|
@18849
|
8 months |
taylor.smock |
|
|
Fix #16485: Modal dialogs may occasionally be behind another dialog
From the Modality javadocs:
- keeps its Z-order below the modal dialog that blocks it
Warning! Some window managers allow users to change the window Z-order in an arbitrary way — in that case the last requirement may not be met.
The workaround is to set the blocking dialog as always on top.
|
|
|
@18848
|
8 months |
taylor.smock |
|
|
GitHub CI: Update java matrix (20, 21-ea -> 21, 22-ea)
|
|
|
@18847
|
8 months |
taylor.smock |
|
|
Fix #23212: Overpass query wizard should transform key: to ["key"] instead of [~"key"~""]
This is fixed by using ExactKeyValue instead of KeyValue for key: queries.
As a happy side effect, this significantly reduces the cost of key: queries.
In a test area ("Mesa County, Colorado"), this reduces the cpu time from 2600ms
to 200ms and reduces memory allocations from 425mb to effectively 0 for a name:
query.
In addition, this simplifies many equals methods by converting the following
pattern to Objects.equals(first, second) :
if (first == null) {
if (second != null) {
return true;
}
} else if (!first.equals(second))
return false;
return true;
There are some additional changes, mostly related to documentation and lint
issues.
|
|
|
@18846
|
9 months |
taylor.smock |
|
|
Fix i18n issue introduced in r18843
|
|
|
@18845
|
9 months |
taylor.smock |
|
|
Fix #23189: Conflict tag tables should resize with the conflict window
|
|
|
@18844
|
9 months |
taylor.smock |
|
|
Fix some recently introduced issues
- Fix some issues with updated presets, see r18843
- Fix a HeadlessException issue in TagEditHelperTest#testTicket23191
|
|
|
@18843
|
9 months |
taylor.smock |
|
|
Fix #23184: Add/ignore popular tags
Add
Ignore
check_date:?* : Used by surveying applications (fix #23182)
boundary=religious_administration : Not well documented
Replace
This additionally fixes an issue discovered by gaben in #23183, whereby
values_from="java.util.Locale#getISOCountries" could have some values
translated. This was fixed by adding a values_context attribute; in this case,
I used "country codes".
|
|
|
@18842
|
9 months |
taylor.smock |
|
|
Fix #23191: NPE in AddTagsDialog
This is caused when a new layer is added via Remote Control while the add tag
dialog is open.
|
|
|
@18841
|
9 months |
taylor.smock |
|
|
Fix #23183: Add country and target to office=diplomatic
country is needed to indicate which country the diplomatic office belongs
to, and target is needed for the cases where a diplomatic office is outside
the country the embassy owner is communicating with.
|
|
|
@18840
|
9 months |
taylor.smock |
|
|
Revert r18838, see #23008: natural=coastline does not work well with the changes
This adds a test to ensure future changes don't break the natural=coastline
branch.
|
|
|
@18839
|
9 months |
taylor.smock |
|
|
Fix #23179: Include changeset in note comment if feasible (patch by qeef, modified)
Modifications are as follows:
- Unit tests
- Better note matching
- Find multiple changesets referring the same note
|
|
|
@18838
|
9 months |
taylor.smock |
|
|
Fix #23008: Improve PowerLines test performance (patch by gaben)
|
|
|
@18837
|
9 months |
taylor.smock |
|
|
Fix #23057: An invisible layer should not become active when removing a layer
|
|
|
@18836
|
9 months |
taylor.smock |
|
|
Reduce memory allocations from SplashScreenProgressRenderer#setTasks
This reduces startup memory allocations from that method to effectively zero from
475 MB. There is a total reduction of ~580 MB (or ~1/3 of startup memory
allocations). This reduces the GC pressure significantly, and reduces startup
time by 2.5-3.8 seconds.
Most of the additional memory allocation reductions come from not needing to
repaint the text caret after the setTasks call.
|
|
|
@18835
|
9 months |
taylor.smock |
|
|
Fix #22134: Only show cycle dashes on one side of roundabout
|
|
|
@18834
|
9 months |
taylor.smock |
|
|
Fix #23149: Add line_arrangement to power supports presets (patch by gaben)
|
|
|
@18833
|
9 months |
taylor.smock |
|
|
Fix #17052: Allow plugins to save state to session file
The primary feature request was for the TODO plugin to save the list elements for
a future session.
This allows plugins to register via ServiceLoader classes which need to be
called to save or restore their state.
In addition, this fixes an ordering issue with tests whereby the OsmApi cache
would be cleared, but the FakeOsmApi class would not recache itself when called.
|
|
|
@18832
|
9 months |
stoecker |
|
|
JavaDoc
|
|
|
@18831
|
9 months |
taylor.smock |
|
|
Fix #23112: Expand visibility of some objects and methods in JCSCachedTileLoaderJob for plugin subclasses
|
|
|
@18830
|
9 months |
taylor.smock |
|
|
Fix #23111: Hoist the common acceptsDocumentationSummary DownloadTask method definition into the interface
|
|
|
@18829
|
9 months |
taylor.smock |
|
|
Fix #16998: Add parent_osm_primitives and convert_primitives_to_string
|
|
|
@18828
|
9 months |
taylor.smock |
|
|
See #22810: OSM OAuth 1.0a/Basic auth deprecation and removal
This prevents users from using Basic Authentication or OAuth 1.0a unless one of the following is true:
- They were previously using the authentication method
- They have enabled
Expert Mode
- They are not using the default OSM API
|
|
|
@18827
|
9 months |
taylor.smock |
|
|
See #23165: Use test file with smaller (Integer.MAX_VALUE) changeset id
|
|
|
@18826
|
9 months |
taylor.smock |
|
|
Fix #23165: Cannot assign a changesetId > 0 to a new primitive
There were two problems:
- Using Number.intValue instead of Number.longValue
- Using
>> instead of >>> (bit shift)
|
|
|
@18825
|
9 months |
taylor.smock |
|
|
Fix #23169: NPE when running validator with no validations enabled
|
|
|
@18824
|
9 months |
taylor.smock |
|
|
Fix #23153: Remote Control API call is adding hashtags many times
This occurs due to adding the hashtags to the comment multiple times.
This is fixed by doing the following:
1) When finding hashtags from a comment, only return the distinct hashtags
2) When adding hashtags from the dataset, only add hashtags that are not already
part of the comment.
|
|
|
@18823
|
9 months |
taylor.smock |
|
|
Improve performance for TaggingPresetSelector$PresetClassifications.getMatchingPresets
This was found when profiling with the Name Suggestion Index enabled.
The improvements are as follows:
- ~80% reduction in CPU usage
- ~85% reduction in memory allocations
A good chunk of the remaining cpu cycles and memory allocations is from the sort
operation.
Non-performance related changes are as follows:
- Add documentation
- Lint fixes
|
|
|
@18822
|
9 months |
taylor.smock |
|
|
i18n update
|
|
|
@18821
|
10 months |
taylor.smock |
|
|
Fix #23140: RejectedExecutionException when MultiFetchServerObjectReader is cancelled while creating download jobs
This was caused by a race condition.
User starts a download, and cancels it as jobs are submitted to the thread pool.
The next job to be submitted will cause a RejectedExecutionException. In order
to fix this, we ensure that we shutdown the thread pool inside a synchronized
block, and add jobs to the executor inside a synchronized block.
|
|
|
@18820
|
10 months |
taylor.smock |
|
|
Fix #23138: Add characters for Lushootseed to TagChecker#isAllowedPhoneticCharacter
|
|
|
@18819
|
10 months |
taylor.smock |
|
|
See #22652, r18817: Stop parsing gpx files when point elements have invalid coordinates
This adds back the wpt check that was temporarily removed in r18818 to get back
to the previous "known good" state and additionally adds checks for rtept and
trkpt elements.
This also removes a change to build.xml that was accidentally committed in r18818.
The specific change (adding Automatic-Module-Name to the JOSM manifest) will
probably be done in a separate commit in the future.
|
|
|
@18818
|
10 months |
taylor.smock |
|
|
Fix tests
|
|
|
@18817
|
10 months |
taylor.smock |
|
|
Fix #22652: Stop parsing gpx files when wpt elements do not have valid coordinates
This does move the parsing code out of GpxReader into GpxParser and refactors it
so that it is (hopefully) easier to understand and debug.
|
|
|
@18816
|
10 months |
taylor.smock |
|
|
Fix #23134: Cancelling a json download will cause an exception dialog
We extract the underlying IOException from the JsonException into an
IllegalDataException which can be parsed by calling methods and properly handled.
|
|
|
@18815
|
10 months |
taylor.smock |
|
|
Improve paste behavior of large amounts of data
Both SelectionListDialog and MapStatus can use the consolidated events, which
drastically reduces the amount of time spent pasting large amounts of data. This
reduces the time spent in their listener methods by >99%.
The test paste of 41k objects took ~20s after the change and ~80s prior to the change.
A good chunk of the remaining time spent pasting is from checking to see whether
an upload is needed. Fixing that will take a lot more work, since there is
currently no concept of consolidated events for that specific listener type.
This was found while investigating #4145.
|
|
|
@18814
|
10 months |
taylor.smock |
|
|
Fix #23105: Add action to select shared/common child objects (patch by Woazboat, modified)
Modifications are as follows:
- Basic test added
- Icon added (copied and modified from selectall.svg)
default methods for IPrimitive.getChildren were moved to the appropriate locations
- Lint cleanups in modified files
Additional notes:
- The behavior when only one way is selected is very similar to
SelectWayNodesAction from utilsplugin2
|
|
|
@18813
|
10 months |
taylor.smock |
|
|
See #22832: Don't quote $JPACKAGEOPTIONS
|
|
|
@18812
|
10 months |
taylor.smock |
|
|
Fix #23110: Add cash_in to amenity=atm
This also ignores some tags.
|
|
|
@18811
|
10 months |
taylor.smock |
|
|
Fix #23124: Azul Java 17.0.4.1 will cause a NumberFormatException
Java can have multiple dots instead of just two. Specifically, the Java version
specifier is $MAJOR.$MINOR.$SECURITY.$PATCH.
Previously, we assumed that there would only ever be two dots in the version
specifier, and got the first and last dot. Now we get the first and second dot.
In addition, this fixes some lint issues.
|
|
|
@18810
|
10 months |
taylor.smock |
|
|
Dependency updates
- jakarta.json-api: 2.1.1 -> 2.1.2
- org.eclipse.parsson: 1.1.1 -> 1.1.4
- Fix an SOE caused by parsing an untrusted string
- org.apache.commons-lang3: 3.12.0 -> 3.13.0
- Various bugfixes and enhancements
- io.github.classgraph: 4.8.158 -> 4.8.162
- Better support for MRJars
- JUnit 5.9.3 -> 5.10.0
- Stacktrace pruning to hide internal JUnit calls
|
|
|
@18809
|
10 months |
taylor.smock |
|
|
See #23125: Prefer notarytool if it is available; fall back to altool if it is not
The altool notarization process will stop working in the next few months, so we
need to switch to notarytool.
For now, we will try to use notarytool, and if I messed up the command line,
it should fall back to altool.
|
|
|
@18808
|
10 months |
stoecker |
|
|
move nodes count into own function, so it can be changed in a sub class
|
|
|
@18807
|
10 months |
taylor.smock |
|
|
Allow importing geojson files that were saved to a session file
- GeoJSONImporter now extends OsmImporter instead of FileImporter and deprecates
the
parseDataSet(String) method.
|
|
|
@18806
|
10 months |
taylor.smock |
|
|
Fix #23119: NPE in RemoteEntry.getLastModified
|
|
|
@18805
|
10 months |
taylor.smock |
|
|
Fix #23117: NPE in PlaceSelection$NamedResultTableModel
This occurs when (a) search results are returned and then (b) the user searches
for more results, but nominatim returns garbage.
In addition, this also fixes some lint issues.
|
|
|
@18804
|
10 months |
taylor.smock |
|
|
Fix #23116: Adding a member to a newly created relation will cause an NPE
This was caused by returning a null relation for a new relation.
|
|
|
@18803
|
10 months |
taylor.smock |
|
|
remove TLD from IANA
|
|
|
@18802
|
10 months |
taylor.smock |
|
|
Fix #23109, see #18982 (r16217): Use the error body from the exception if it is HTML
|
|
|
@18801
|
10 months |
taylor.smock |
|
|
Fix #22832: Code cleanup and some simplification, documentation fixes (patch by gaben)
There should not be any functional changes in this patch; it is intended to do
the following:
- Simplify and cleanup code (example:
Arrays.asList(item) -> Collections.singletonList(item) )
- Fix typos in documentation (which also corrects the documentation to match what actually happens, in some cases)
|
|
|
@18800
|
10 months |
taylor.smock |
|
|
Add WindowMocker to test to fix test failure
|
|
|
@18799
|
10 months |
taylor.smock |
|
|
See r18798: Actually use the @Territories annotation
This also fixes some tests that fail with specific options, but were passing due
to run order.
|
|
|
@18798
|
10 months |
taylor.smock |
|
|
See #16567: Add @Territories annotation for JUnit 5
This reduces memory allocations during test runs by ~20% since we are no longer
running Territories.initialize() on every test where JOSMTestRules.territories()
was called. This reduced overall test time by ~10%, mostly due to less time spent
in JVM internals.
|
|
|
@18797
|
10 months |
taylor.smock |
|
|
Fix #21364: GPX export of image new position use old coordinates
This was due to not clearing cached data (done for performance reasons)
|
|
|
@18796
|
10 months |
taylor.smock |
|
|
Fix #23097: Significantly reduce allocations during startup in XmlObjectParser, PluginListParser, and ReadLocalPluginInformationTask
With the Name Suggestion Index preset added to JOSM, the following methods are
relatively expensive during startup (mem old -> mem new, cpu old -> cpu new):
XmlObjectParser$Entry.getField (124 MB -> 8.1 MB, 501ms -> 99ms)
XmlObjectParser$Entry.getMethod (126 MB -> 452 kB, 292ms -> 45ms)
The gains are almost entirely from getting rid of copy calls to Method and Field
(done when calling Class.getMethods() and Class.getFields() ). There are
further gains in JVM methods (like GC), but those can be a bit ticklish to
profile correctly. It does look like a 20% improvement there though
(32,653ms -> 26,075ms).
This additionally reduces pattern compilation from PluginListParser.parse and
ReadLocalPluginInformationTask.listFiles .
|
|
|
@18795
|
10 months |
taylor.smock |
|
|
Fix #23095: Missing space after name template output (patch by matthijs)
|
|
|
@18794
|
10 months |
taylor.smock |
|
|
Fix #23085: Improve speed of selecting large amounts of objects
- JVM CPU usage was down ~50%, EDT CPU usage was down ~25%. EDT memory usage was down
- Avoid
Stream allocations in ConflictCollection.hasConflictForMy by only looking for a conflict if conflicts exist
- Avoid many string instantiations in
DefaultNameFormatter by using cached properties. This significantly reduces memory allocations CPU usage for DefaultNameFormatter methods.
- Avoid some
Stream allocations by using standard for loops in DefaultNameFormatter
- Use
"" to get the component in PrimitiveRenderer.getListCellRendererComponent -- this reduced the memory allocations by ~50% and CPU usage by ~70% for getListCellRendererComponent by itself, and appears to have no side-effects. We should ask users on different systems with different UI systems if it works properly.
- Significantly reduce cost of
Way.hasOnlyLocatableNodes by using a standard for loop instead of a stream -- this isn't as important for this ticket, but was found while profiling. This makes that method have no effective memory allocations and reduces the CPU usage by ~90%.
|
|
|
@18793
|
10 months |
taylor.smock |
|
|
Fix #23091: Opening a preset from inside a relation editor causes a DataIntegrityProblemException
|
|
|
@18792
|
10 months |
taylor.smock |
|
|
Fix #23018: The Name Suggestion Index preset causes dramatic slowing in line drawing and following
The root cause is that every time the dataset fires a DataChangedEvent, we
rebuild the relation list. This causes a search in the presets, which can become
very expensive with the NSI. To fix this, we instead iterate through each
individual event in the DataChangedEvent, and perform the appropriate action.
|
|
|
@18791
|
10 months |
taylor.smock |
|
|
remove TLD from IANA
|
|
|
@18790
|
10 months |
taylor.smock |
|
|
Fix #23103, see #17858: Notify users that a plugin requires a newer Java version
We were previously only logging a warning if a plugin required a newer Java
version. We additionally needed to update the download link generation for Azul
and sync the next minimum Java version with that used by the JOSM wiki check.
There was also a help topic that linked to a dead page (which was also
unavailable in the internet archive).
|
|
|
@18789
|
10 months |
taylor.smock |
|
|
i18n update
|
|
|
@18788
|
11 months |
stoecker |
|
|
fix tests
|
|
|
@18787
|
11 months |
stoecker |
|
|
separate NmeaParser from NmeaReader
|
|
|
@18786
|
11 months |
taylor.smock |
|
|
Fix #23083: SocketTimeoutException in OAuth20Authorization$OAuth20AuthorizationHandler.handleRequest
|
|
|
@18785
|
11 months |
taylor.smock |
|
|
remove TLD from IANA
|
|
|
@18784
|
11 months |
taylor.smock |
|
|
See #23081: NoSuchElementException in ConflictDialog.ResolveToAction#actionPerformed, fix extra indentation
|
|
|
@18783
|
11 months |
taylor.smock |
|
|
Fix #23081: NoSuchElementException in ConflictDialog.ResolveToAction#actionPerformed
This occurs when one of the Resolve to (my|their) versions actions is called
when no conflict is selected.
There are two distinct bugs:
isConflictSelected did not check to make certain that the selection index
made sense
ResolveAction s were not enabled/disabled when the popup menu became visible,
depending upon whether the current selection was valid
|
|
|
@18782
|
11 months |
taylor.smock |
|
|
Fix #23024: Set foreground color for feedback warning label (patch by Larsossum, modified)
This fixes an issue where a dark colour theme would use a light-coloured
foreground when we set the background colour to a light colour.
|
|
|
@18781
|
11 months |
taylor.smock |
|
|
Fix #23023: Fix logic for enabling buttons in color preferences (patch by Larsossum)
This makes the buttons work properly with the filterfield.
|
|
|
@18780
|
11 months |
taylor.smock |
|
|
Fix #22733: Add UI feedback for url guessing, account for nan responses from servers
|
|
|
@18779
|
11 months |
taylor.smock |
|
|
Fix #23078: Improve cancel action on OSM API errors (patch by gaben, heavily modified)
|
|
|
@18778
|
11 months |
taylor.smock |
|
|
Fix #23079: Freeze on conflict resolution after upload
|
|
|
@18777
|
11 months |
taylor.smock |
|
|
Reduce allocations during startup from Shape
Shape#hashCode made between 8 and 24 MB of allocations at startup. This was
reduced by moving the math out of Arrays#hash and the default List#hash methods.
This additionally reduced the allocations from the Shape#equals method.
As an implementation note, the Shape#hashCode method returns exactly the same
hashcode as it did prior to this change. This may change in the future.
|
|
|
@18776
|
11 months |
taylor.smock |
|
|
See #23049, fix an issue where tests might visit the entire dataset during upload
|
|
|
@18775
|
11 months |
taylor.smock |
|
|
Fix #23049: Informational errors cause validator dialog to occur on upload, even if they are not enabled
|
|
|
@18774
|
11 months |
taylor.smock |
|
|
remove TLD from IANA
|
|
|
@18773
|
11 months |
taylor.smock |
|
|
See #22990: synchronize jakarta.json versions in ivy.xml
|
|
|
@18772
|
11 months |
taylor.smock |
|
|
i18n update
|
|
|
@18771
|
11 months |
taylor.smock |
|
|
Fix #23022: Application name on macOS 12 is MainApplication
|
|
|
@18770
|
12 months |
taylor.smock |
|
|
Fix a potential resource leak (CID-1349914)
|
|
|
@18769
|
12 months |
taylor.smock |
|
|
Fix #22569: Add beauty multiselect key to shop=beauty preset (patch by jose1711)
|
|
|
@18768
|
12 months |
taylor.smock |
|
|
Fix #22534: Inform users when the clipboard has too much data
|
|
|
@18767
|
12 months |
taylor.smock |
|
|
Fix #23015, see #2483: Right click (map move) + scale/rotate modes should not interfere with each other
The workaround added for #2483 (r1634, Java 5) does not appear to be needed
anymore (tested with a Magic Mouse in one-button mode under Java 8). Removing
the workaround fixes the behavior whereby a right-click will cause the
scale/rotate mode to be enabled.
To fix extraneous commands being generated during a map pan when scale/rotate
mode is enabled, we check to see if the right mouse button is down in
updateCommandWhileDragging .
|
|
|