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