Wykres commitów

600 Commity (master)

Autor SHA1 Wiadomość Data
Taylor Smock de47e9c589
Significantly reduce memory usage by MergeBuildingAddress#getAddressPoints
This reduces CPU usage by 98.6% and memory allocations by 99.6%.
The time for adding all addresses in the
`39.69427;-86.104252;39.72361;-86.082427` download area went from ~1.25
minutes to ~10 seconds (~86% reduction).

Signed-off-by: Taylor Smock <tsmock@meta.com>
2022-12-20 06:42:52 -07:00
Taylor Smock 84682ba8c6
StreetAddressTest: Significantly improve performance
This reduces CPU cycles by ~99% and memory allocations by ~74%.

Signed-off-by: Taylor Smock <tsmock@meta.com>
2022-12-15 07:20:31 -07:00
Taylor Smock c453368368
StreetAddressOrder: Improve performance
This reduces CPU time in getNearbyAddresses by ~85% and memory
allocations by ~97%.

Signed-off-by: Taylor Smock <tsmock@meta.com>
2022-12-15 07:20:31 -07:00
Taylor Smock f633e40322
Fix JavaDocs
Signed-off-by: Taylor Smock <tsmock@meta.com>
2022-12-14 09:18:09 -07:00
Taylor Smock 9507670753
Paginate Esri sources
Signed-off-by: Taylor Smock <tsmock@meta.com>
2022-12-14 09:05:47 -07:00
Taylor Smock b893f8a09e
Fix TM bound generation
Signed-off-by: Taylor Smock <tsmock@meta.com>
2022-12-13 15:22:46 -07:00
Taylor Smock 01ce992d24
Update to non-deprecated methods
Signed-off-by: Taylor Smock <tsmock@meta.com>
2022-12-07 07:23:42 -07:00
Taylor Smock 61d5b62689
MapWithAISourceReader#getBounds *must* return a modifiable list
Also, add @Territories annotation to a test that needed it

Signed-off-by: Taylor Smock <tsmock@meta.com>
2022-12-07 06:02:37 -07:00
Taylor Smock 9a61f34d7f
Fix many SonarLint issues, mostly documentation
Signed-off-by: Taylor Smock <tsmock@meta.com>
2022-12-06 14:32:30 -07:00
Taylor Smock ee0c576ee7
Fix #22509: stale URLs may cause downloads to fail
Signed-off-by: Taylor Smock <tsmock@meta.com>
2022-11-17 10:32:48 -07:00
Taylor Smock 6d1ab18335
Attempt to fix #22511: Deadlock in DataSet#beginUpdate
This race occurs when
* MapWithAI is downloading and cleaning data *and*
* JOSM is performing a map paint

This attempts to fix the issue by getting a write lock
*prior to* entering any synchronized methods in DataSet.

Signed-off-by: Taylor Smock <tsmock@meta.com>
2022-11-17 09:58:52 -07:00
Taylor Smock ed1af91aef
Move from Apache HTTP 4 to Apache HTTP 5
Signed-off-by: Taylor Smock <tsmock@meta.com>
2022-11-07 16:14:24 -07:00
Taylor Smock 88a48a5fdb
Fix #22440: NPE in MapWithAIInfo#getConflationUrl
Signed-off-by: Taylor Smock <tsmock@meta.com>
2022-10-11 10:46:43 -06:00
Taylor Smock 96503e69d0
Update URL locations
Signed-off-by: Taylor Smock <tsmock@meta.com>
2022-10-10 09:26:16 -06:00
Taylor Smock 207161b6c6
Fix #22316: CancellationException when cancelling after OSM download screen
Signed-off-by: Taylor Smock <tsmock@meta.com>
2022-10-06 15:24:06 -06:00
Taylor Smock 7380924ccc
UpdateProdTest: Use JOSM test rules to set revision (polluted following tests)
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-10-05 15:31:08 -06:00
Taylor Smock 26c0fda8d2
MapWithAICopyProhibitTest: Update testDestroyable for r18390
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-10-05 11:34:23 -06:00
Taylor Smock 4d736c967f
Fix #22414: RuntimeException instead of OsmApiException is thrown from ForkJoinPool#join
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-10-03 08:40:12 -06:00
Taylor Smock 89c7d898ce
MapWithAILayerInfo: Fix an IllegalMonitorStateException
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-08-30 06:57:49 -06:00
Taylor Smock 26d229fd3a
MapWithAIDataUtilsTest: Disable flaky test
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-07-05 08:33:07 -06:00
Taylor Smock 7d7464f5da
Fix JOSM #22186: NPE in MapWithAIDataUtils#mergeDataSet
This is due to the localized message being null.

Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-07-05 07:23:03 -06:00
Taylor Smock 48751b16ec
ESRISourceReader: Account for `null` values for "accessInformation"
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-06-28 12:43:44 -06:00
Taylor Smock 840cadb61b
Lint fixes
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-06-22 12:26:24 -06:00
Taylor Smock b4a32e426c
GetDataRunnable: Move away from streams
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-06-02 13:08:52 -06:00
Taylor Smock 9e00328d33
Decrease allocations in various locations
With the changes from
325c169468bce987bd93e78da81b92c12e52d86f..2c11de9e3ca95e5ea26ba08b053692ff013eb728,
this reduces allocations due to MapWithAI cleanup methods
(on download) from 1.7 GB to 265 MB.

Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-06-01 16:54:11 -06:00
Taylor Smock 7c3c0e72c2
MapWithAIDataUtils: Cleanup legacy methods
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-06-01 10:29:25 -06:00
Taylor Smock 2c11de9e3c
GetDataRunnable: Significantly reduce allocations from merging nodes
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-06-01 08:04:56 -06:00
Taylor Smock c9beb019ef
GetDataRunnable: Various cleanups
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-06-01 08:04:56 -06:00
Taylor Smock 482ccffb8e
MapWithAIPreferenceHelper: Cache a property that is constantly hit
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-06-01 08:04:56 -06:00
Taylor Smock 844e67d5a1
MapWithAIDataUtils: Download inside a safe ForkJoinPool
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-06-01 08:04:56 -06:00
Taylor Smock b350286a36
MapWithAIInfoTest: Add equals check
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-06-01 08:04:54 -06:00
Taylor Smock 7acae1ca7f
CountryUtils: Significantly reduce allocations by caching
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-05-31 16:10:40 -06:00
Taylor Smock ebc1725a10
GetDataRunnable: Avoid allocations
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-05-31 14:47:47 -06:00
Taylor Smock 5a74db8351
MapWithAIPreferenceHelper: Avoid allocations by using specific property classes
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-05-31 14:45:37 -06:00
Taylor Smock 325c169468
Various fixups (mostly for parallelStream -> stream)
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-05-27 06:34:48 -06:00
Taylor Smock d6914567c4
Fix a deadlock that could occur when downloading data
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-05-27 06:16:27 -06:00
Taylor Smock f8723d9db4
ESRISourceReader: Directly submit ForkJoinTasks to safe ForkJoinPool
This fixes JOSM #22077, which was caused by ForkJoinTask#fork submitting
the task to ForkJoinPool#commonPool, when not called inside a
ForkJoinPool. This is problematic under WebStart.

Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-05-18 08:25:40 -06:00
Taylor Smock 10a821f794
MapWithAIPlugin: Call addDownloadSelection in tests
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-05-16 16:41:58 -06:00
Taylor Smock 1dc1f18e8e
ESRI: Get data in a ForkJoinPool (significant speedup)
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-05-16 16:02:29 -06:00
Taylor Smock 5aa3843271
Fix some javadoc issues
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-05-16 16:02:23 -06:00
Taylor Smock 1ff3296863
MapWithAILayerInfo: Fix EDT violation
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-05-16 15:07:20 -06:00
Taylor Smock 6c9e6c6719
Add test for remote icons
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-05-16 14:50:32 -06:00
Taylor Smock 0d24b66fd7
Fix issue with UI blocking
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-05-13 08:53:20 -06:00
Taylor Smock 5a265e6520
MapWithAIPlugin: initialize download option when user first starts download
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-05-13 08:36:20 -06:00
Taylor Smock 42aec40b25
MapWithAIInfo: Fix an issue where users would be unable to file bug reports
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-05-12 12:21:55 -06:00
Taylor Smock 52724d0ab7
Fix JOSM #21872: NPE in MapWithAIProvidersPanel
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-03-23 12:20:37 -06:00
Taylor Smock 623d2dc6a8
MapWithAIInfo: Use conflate setting in addition to conflate
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-03-10 08:51:22 -07:00
Taylor Smock 960eb784e1
Commands: Add tests for participating primitives (partial)
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-03-02 14:26:40 -07:00
Taylor Smock 2b9c88040c
Commands: Override getParticipatingPrimitives for better error reports
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-03-01 16:26:24 -07:00
Taylor Smock f535eaab6e
Refactor for test fixtures
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-01-12 10:31:10 -07:00
Taylor Smock bdd2d5bafe
BoundingBoxMapWithAIDownloader: Fix issue where conflated Esri servers would fail
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-01-10 07:26:47 -07:00
Taylor Smock 98031cc0f3
Remove Esri detection for too many objects
This is due to issues with streams and parsing JSON.

Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-01-05 13:14:33 -07:00
Taylor Smock 88d1bc7b81
Work around CI failure due to attempting to write preferences
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-01-05 11:04:39 -07:00
Taylor Smock 62f43c10ff
Add basic test for conflation (BoundingBoxMapWithAIDownloaderTest)
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-01-05 10:53:02 -07:00
Taylor Smock a739e55eb7
Add BoundingBoxMapWithAIDownloaderTest
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-01-05 09:56:51 -07:00
Taylor Smock 526688ab4f
BoundingBoxMapWithAIDownloader: Account for feature servers that don't set the appropriate headers
Signed-off-by: Taylor Smock <tsmock@fb.com>
2022-01-04 16:29:19 -07:00
Taylor Smock 7d12e23b64
Fix an issue where query parameter modifications would not be saved
This is only for true/false parts.

Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-12-07 11:46:44 -07:00
Taylor Smock cf01febcf1
Fix URL reset on JOSM restart
This was reported on Slack by drkludge.

Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-12-06 16:50:15 -07:00
Taylor Smock a3cd232117
Really fix bound expansion issue
This was partially fixed in ca85a58cae.

Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-12-02 14:52:55 -07:00
Taylor Smock eb143d0afc
Fix some lint issues
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-12-02 13:52:32 -07:00
Taylor Smock ca85a58cae
Fix issue where downloaded bounds is expanded
Also fix some lint issues, and remove last non-guarded reference to
ForkJoinPool.commonPool.

Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-12-02 13:44:09 -07:00
Taylor Smock 0f8072833a
Fix JOSM #21623: ACE in MapWithAILayerInfo
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-12-02 09:57:52 -07:00
Taylor Smock 52f9d8eae2
GetDataRunnable: Allow removal of tags
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-12-02 09:55:19 -07:00
Taylor Smock 8ec50cc5dc
Third party conflation: Add some better guards against conflation
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-12-02 09:37:14 -07:00
Taylor Smock 516a508620
BoundingBoxMapWithAIDownloader: Use response headers to determine parser
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-11-22 08:27:56 -07:00
Taylor Smock 385c16a061
MapWithAIProvidersPanel: Fix EDT violation
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-11-15 14:39:48 -07:00
Taylor Smock 5e163fed61
Fix JOSM #21551: NPE in RoutingIslandsTest
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-11-11 11:12:55 -07:00
Taylor Smock 9f424eaaa2
DataConflationSender: Add initial tests
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-11-11 08:20:29 -07:00
Taylor Smock 99f4de5dd4
Rework URL handling
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-11-10 11:24:10 -07:00
Taylor Smock 8c80790127
MergeAddressBuildings: fix a lint/best practices issue
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-11-09 10:14:28 -07:00
Taylor Smock 0ea652f46d
MergeAddressBuildings: Consider any node with an `addr:` tag to be an address node
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-11-09 10:12:47 -07:00
Cj Malone 290aec3f1e Include nodes with "addr:postcode" as address nodes 2021-11-05 23:47:05 +00:00
Taylor Smock bc5fb4c0ff
Fix JOSM #21455: Merge Address Nodes and Buildings not saving
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-10-20 16:09:16 -06:00
Taylor Smock 20d58f018a
ESRISourceReader: Fix permission issue when run under webstart
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-10-20 06:39:56 -06:00
Taylor Smock d47b59161b
Work around JOSM bug in CachedFile#clear
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-10-19 07:44:26 -06:00
Taylor Smock 5930bda453
MapWithAILayerInfo: Fix typo
Call was to NetworkManager#isOffline, but was stored in a variable named
"online". Fix: Invert the returned boolean from NetworkManager#isOffline

Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-10-19 07:16:45 -06:00
Taylor Smock 453ceb38b9
MapWithAILayerInfo: Fix CME
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-10-18 14:30:57 -06:00
Taylor Smock ef13fd97d4
EsriSourceReader: Lazily load replacement tags
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-10-18 12:02:00 -06:00
Taylor Smock 810831af37
GetDataRunnable: Fix race condition where creation of two dataset might attempt to increment primitive id backward
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-09-30 16:25:38 -06:00
Taylor Smock 849f571837
Lint: Cleanup warnings on build
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-09-30 14:54:21 -06:00
Taylor Smock 5cb5262128
MapWithAI SourceReaders: Create common class for deduplication
Also ensure that users can ignore cache for MapWithAI sources.

Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-09-30 14:54:21 -06:00
Taylor Smock 1d2859c1c5
MapPaintUtils: Add `,` to regex for replacement with `_`
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-09-30 14:54:21 -06:00
Taylor Smock a23e94be0d
Tests: Better test isolation
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-09-08 06:06:14 -06:00
Taylor Smock a0ed7272aa
Gradle: Dependency updates + fix for errorprone
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-09-07 08:30:42 -06:00
Taylor Smock e092718f2f
RoutingIslands: Add highway=platform to exclusions
See https://wiki.openstreetmap.org/wiki/Tag:highway%3Dplatform for tag
information.

Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-09-07 08:22:55 -06:00
Taylor Smock 16feefa1c4 MapWithAISourceReader: set provider
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-07-20 14:53:47 -06:00
Taylor Smock f9308da42f MapWithAILayerInfo: Sort all entries
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-07-20 14:12:49 -06:00
Taylor Smock a4ab60cbe3 MapWithAISourceReader: Account for multiple categories
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-07-20 13:59:39 -06:00
Taylor Smock d8fdc1683f MapWithAIProvidersPanel: Avoid index error when clicking outside of table
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-07-20 13:58:15 -06:00
Taylor Smock 0aaa1b6ba7 MapWithAIProvidersPanel: Avoid setting final static field to final field
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-07-20 12:12:52 -06:00
Taylor Smock b00a35b953 ESRISourceReader: Increase initial search, some perf optimizations
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-07-20 12:12:52 -06:00
Taylor Smock 5ea5ab9b04 ESRISourceReader: Sort by name, by featured, and then by general category
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-07-20 07:55:51 -06:00
Taylor Smock 596efa1982 ESRISourceReader: Allow for variable max ages
This means that the base ESRI collection urls will be updated more often
(with default settings, every day if JOSM is restarted), while the
specific feature server information urls will be updated weekly (again,
with default settings).

This uses the advanced preference `mirror.maxtime`, which is also used
by CachedFile.

We therefore recommend that anyone thinking about changing
`mirror.maxtime` to for faster updates for the ESRI feature server
collection url to *not* set that value to be less than `14400` (4
hours). This is to avoid hitting public servers too often.

Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-07-01 08:27:05 -06:00
Taylor Smock 7bfffa3a10 MapWithAILayerInfo: Reduce initial allocations
For this, we just avoid saving preferences until we are are't getting
all the data sources.

For most users, this should have no effect. Only users that open JOSM,
quickly make a preference change, and exit without the preference.save
method being called will have issues.

Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-07-01 08:22:27 -06:00
Taylor Smock ed6b8bcd5d MapWithAILayerInfo: Don't block JOSM startup
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-07-01 08:22:27 -06:00
Taylor Smock 64ff82db04 DetectTaskingManagerUtils: Update for TM 4
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-06-03 12:54:27 -06:00
Taylor Smock 455d5f5345 Prohibit copy-paste from MapWithAI layer to OSM layer
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-05-26 09:42:35 -06:00
Taylor Smock b8e18653d9 Fix JOSM #20555: ACE when removing the plugin
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-05-19 15:52:26 -06:00
Taylor Smock 7cf36357d2 FIXUP: Readd the check for whether or not a node pair exists as a segment
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-05-19 09:51:13 -06:00
Taylor Smock 1d99028c93 WaySegment -> IWaySegment
Signed-off-by: Taylor Smock <tsmock@fb.com>
2021-05-19 08:36:24 -06:00