Modify

Opened 11 days ago

Closed 10 days ago

Last modified 8 days ago

#24446 closed defect (fixed)

[Patch] Error loading way-history

Reported by: PHerison Owned by: GerdP
Priority: normal Milestone: 25.08
Component: Core Version:
Keywords: template_report Cc: stoecker

Description

What steps will reproduce the problem?

  1. Load https://api.openstreetmap.org/api/0.6/map?bbox=-68.2694131,45.6256347,-68.25921,45.6300164
  2. Select way Molunkus Stream (93286904)
  3. Load History (Ctrl+H)

What is the expected result?

Open History-Viewer-Window

What happens instead?

Error-Message

Please provide any additional information below. Attach a screenshot if possible.

Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2025-07-11 10:12:51 +0200 (Fri, 11 Jul 2025)
Revision:19423
Build-Date:2025-07-12 01:30:35
URL:https://josm.openstreetmap.de/svn/trunk

Identification: JOSM/1.5 (19423 de) Windows 11 64-Bit
OS Build number: Windows 10 Pro 24H2 (26100)
Memory Usage: 4096 MB / 8192 MB (3374 MB allocated, but free)
Java version: 24.0.1+9-30, Oracle Corporation, OpenJDK 64-Bit Server VM
Look and Feel: com.sun.java.swing.plaf.windows.WindowsLookAndFeel
Screen: \Display0 2560x1440x32bpp@165Hz (scaling 1.00×1.00) \Display1 2560x1440x32bpp@59Hz (scaling 1.00×1.00)
Maximum Screen Size: 2560×1440
Best cursor sizes: 16×16→32×32, 32×32→32×32
System property file.encoding: UTF-8
System property sun.jnu.encoding: Cp1252
Locale info: de_DE
Numbers with default locale: 1234567890 -> 1234567890
VM arguments: [--add-exports=java.base/sun.security.action=ALL-UNNAMED, --add-exports=java.desktop/com.sun.imageio.plugins.jpeg=ALL-UNNAMED, --add-exports=java.desktop/com.sun.imageio.spi=ALL-UNNAMED]
Dataset consistency test: No problems found

Plugins:
+ FixAddresses (36438)
+ Mapillary (1813)
+ PicLayer (269)
+ RoadSigns (36438)
+ apache-commons (36438)
+ apache-http (36438)
+ buildings_tools (36438)
+ editgpx (36438)
+ ejml (36438)
+ ext_tools (36438)
+ geotools (36438)
+ imagery_offset_db (36438)
+ jackson (36438)
+ jaxb (36438)
+ jna (36438)
+ jts (36438)
+ log4j (36438)
+ photoadjust (36438)
+ reverter (36447)
+ terracer (36438)
+ turnrestrictions (36438)
+ undelete (36438)
+ utilsplugin2 (36438)
+ waydownloader (36438)

Tagging presets:
+ https://josm.openstreetmap.de/josmfile?page=Presets/OneClick&zip=1
+ <josm.pref>\presets.xml

Map paint styles:
+ https://josm.openstreetmap.de/josmfile?page=Styles/TigerReviewedNo&zip=1

Last errors/warnings:
- 00006.570 W: Not a single layer for the name 'Bing Sat': []
- 00006.571 W: Not a single layer for the name 'Bing Sat': []
- 00006.571 W: Not a single layer for the name 'Bing Sat': []
- 00006.572 W: Not a single layer for the name 'Bing Sat': []
- 00006.572 W: Not a single layer for the name 'Bing Sat': []
- 00006.572 W: Not a single layer for the name 'Bing Sat': []
- 00006.572 W: Not a single layer for the name 'Bing Sat': []
- 00006.572 W: Not a single layer for the name 'Bing Sat': []
- 00006.573 W: Not a single layer for the name 'Bing Sat': []
- 00021.937 W: {Way id=93286904 version=4 VT> nodes=[{Node id=12914251424 version=1 V lat=45.6277694,lon=-68.2644294}, {Node id=12914276723 version=1 V lat=45.6276194,lon=-68.2644807}, {Node id=12914251423 version=1 V lat=45.627501,lon=-68.2645727}, {Node id=12914251422 version=1 V lat=45.6273262,lon=-68.2649482}, {Node id=12914251421 version=1 V lat=45.6272815,lon=-68.2651401}, {Node id=12914251420 version=1 V lat=45.6272328,lon=-68.2653718}, {Node id=12914276724 version=1 V lat=45.6271382,lon=-68.265445}, {Node id=12914251419 version=1 V lat=45.6268462,lon=-68.2654838}, {Node id=12914251418 version=1 V lat=45.6266896,lon=-68.2654908}, {Node id=12914251417 version=1 V lat=45.6264938,lon=-68.2654768}, {Node id=12914251416 version=1 V lat=45.6262589,lon=-68.2653928}, {Node id=12914251415 version=1 V lat=45.6260044,lon=-68.2653788}, {Node id=12914251414 version=1 V lat=45.6258234,lon=-68.2654138}, {Node id=12914251413 version=1 V lat=45.6256374,lon=-68.2655747}, {Node id=7877038891 version=1 V lat=45.6254396,lon=-68.2658404}, {Node id=7877038890 version=1 V lat=45.6253871,lon=-68.2660818}, {Node id=7877038889 version=1 V lat=45.625177,lon=-68.2662642}, {Node id=7877038888 version=1 V lat=45.6249257,lon=-68.266232}, {Node id=7877038887 version=1 V lat=45.6226972,lon=-68.2652235}, {Node id=7877038886 version=1 V lat=45.6204611,lon=-68.2645369}, {Node id=7877038885 version=1 V lat=45.619328,lon=-68.2641399}, {Node id=7877038884 version=1 V lat=45.6179397,lon=-68.2637322}, {Node id=7877038883 version=1 V lat=45.6173094,lon=-68.2633889}, {Node id=7877038882 version=1 V lat=45.6167616,lon=-68.2630134}, {Node id=7877038881 version=1 V lat=45.6165364,lon=-68.262949}, {Node id=7877038880 version=1 V lat=45.6162963,lon=-68.2629597}, {Node id=7877038879 version=1 V lat=45.6161087,lon=-68.2631314}, {Node id=7877038878 version=1 V lat=45.6157935,lon=-68.2641721}, {Node id=7877038877 version=1 V lat=45.6155158,lon=-68.2646442}, {Node id=7877038876 version=1 V lat=45.6150055,lon=-68.2652879}, {Node id=7877038875 version=1 V lat=45.6140674,lon=-68.2657278}, {Node id=7877038874 version=1 V lat=45.6133395,lon=-68.2658565}, {Node id=7877038873 version=1 V lat=45.612634,lon=-68.2662428}, {Node id=7877038872 version=1 V lat=45.6121612,lon=-68.2666075}, {Node id=7877038871 version=1 V lat=45.6119436,lon=-68.2670367}, {Node id=7877038870 version=1 V lat=45.6116584,lon=-68.2677448}, {Node id=7877038869 version=1 V lat=45.6114257,lon=-68.267895}, {Node id=7877038868 version=1 V lat=45.6111405,lon=-68.2678735}, {Node id=7877038867 version=1 V lat=45.6109004,lon=-68.2674873}, {Node id=7877038866 version=1 V lat=45.6108628,lon=-68.2667685}, {Node id=7877038865 version=1 V lat=45.6109604,lon=-68.2660067}, {Node id=7877038864 version=1 V lat=45.6109679,lon=-68.2654274}, {Node id=7877038863 version=1 V lat=45.6108628,lon=-68.2650519}, {Node id=7877038862 version=1 V lat=45.6106677,lon=-68.264966}, {Node id=7877038861 version=1 V lat=45.610345,lon=-68.2651484}, {Node id=7877038860 version=1 V lat=45.6100223,lon=-68.2653737}, {Node id=7877038859 version=1 V lat=45.6094068,lon=-68.2663715}, {Node id=7877038858 version=1 V lat=45.6090015,lon=-68.2670367}, {Node id=7877038857 version=1 V lat=45.6086638,lon=-68.2672191}, {Node id=7877038856 version=1 V lat=45.608236,lon=-68.2673156}, {Node id=7877038855 version=1 V lat=45.6080108,lon=-68.2674337}, {Node id=7877038854 version=1 V lat=45.6079208,lon=-68.2677448}, {Node id=7877038853 version=1 V lat=45.6079433,lon=-68.2679594}, {Node id=7877038852 version=1 V lat=45.6084086,lon=-68.2681203}, {Node id=7877038851 version=1 V lat=45.6087088,lon=-68.268249}, {Node id=7877038850 version=1 V lat=45.6087914,lon=-68.2686031}, {Node id=7877038849 version=1 V lat=45.6087163,lon=-68.2688928}, {Node id=7877038848 version=1 V lat=45.6083786,lon=-68.2691181}, {Node id=7877038847 version=1 V lat=45.6078757,lon=-68.2691932}, {Node id=7877038846 version=1 V lat=45.6073578,lon=-68.2691288}, {Node id=7877038845 version=1 V lat=45.6070126,lon=-68.268925}, {Node id=7877038844 version=1 V lat=45.60684,lon=-68.2685709}, {Node id=7877038843 version=1 V lat=45.6067049,lon=-68.2676911}, {Node id=7877038842 version=1 V lat=45.6063446,lon=-68.2669616}, {Node id=7877038841 version=1 V lat=45.6059881,lon=-68.2664251}, {Node id=7877038792 version=1 V lat=45.6057741,lon=-68.2660711}, {Node id=7877038791 version=1 V lat=45.6055978,lon=-68.265996}, {Node id=7877038790 version=1 V lat=45.6054101,lon=-68.266114}, {Node id=7877038789 version=1 V lat=45.6052262,lon=-68.2663661}, {Node id=7877038788 version=1 V lat=45.6049973,lon=-68.2666236}, {Node id=7877038787 version=1 V lat=45.6049035,lon=-68.2668865}, {Node id=7877038786 version=1 V lat=45.6048847,lon=-68.2670474}, {Node id=7877038785 version=1 V lat=45.604667,lon=-68.267042}, {Node id=7877038840 version=1 V lat=45.6045357,lon=-68.2668972}, {Node id=7877038784 version=1 V lat=45.6044569,lon=-68.2666397}, {Node id=7877038783 version=1 V lat=45.6044531,lon=-68.2662159}, {Node id=7877038782 version=1 V lat=45.604348,lon=-68.2658511}, {Node id=7877038781 version=1 V lat=45.6041791,lon=-68.2656473}, {Node id=7877038780 version=1 V lat=45.6038639,lon=-68.2656634}, {Node id=7877038839 version=1 V lat=45.603695,lon=-68.2653952}, {Node id=7877038779 version=1 V lat=45.6039202,lon=-68.265084}, {Node id=7877038838 version=1 V lat=45.6043518,lon=-68.2651538}, {Node id=7877038778 version=1 V lat=45.6044906,lon=-68.2649553}, {Node id=7877038777 version=1 V lat=45.6045544,lon=-68.264612}, {Node id=7877038776 version=1 V lat=45.6045957,lon=-68.2634372}, {Node id=7877038775 version=1 V lat=45.6046895,lon=-68.2627398}, {Node id=7877038774 version=1 V lat=45.6048284,lon=-68.262493}, {Node id=7877038773 version=1 V lat=45.6049185,lon=-68.262198}, {Node id=7877038837 version=1 V lat=45.6048397,lon=-68.2618976}, {Node id=7877038772 version=1 V lat=45.6044981,lon=-68.261793}, {Node id=7877038771 version=1 V lat=45.6043105,lon=-68.2619834}, {Node id=7877038770 version=1 V lat=45.6039671,lon=-68.2621068}, {Node id=7877038836 version=1 V lat=45.6037869,lon=-68.2620826}, {Node id=7877038769 version=1 V lat=45.6036668,lon=-68.2619727}, {Node id=7877038768 version=1 V lat=45.6035618,lon=-68.261801}, {Node id=7877038767 version=1 V lat=45.603543,lon=-68.2616267}, {Node id=7877038766 version=1 V lat=45.6035993,lon=-68.2614335}, {Node id=7877038765 version=1 V lat=45.6036237,lon=-68.2612377}, {Node id=7877038764 version=1 V lat=45.6035336,lon=-68.2610714}, {Node id=7877038763 version=1 V lat=45.603346,lon=-68.2609803}, {Node id=7877038835 version=1 V lat=45.6031958,lon=-68.2610205}, {Node id=7877038762 version=1 V lat=45.603132,lon=-68.2612216}, {Node id=7877038761 version=1 V lat=45.6031226,lon=-68.2614711}, {Node id=7877038760 version=1 V lat=45.603072,lon=-68.2618305}, {Node id=7877038759 version=1 V lat=45.6029463,lon=-68.2620317}, {Node id=7877038758 version=1 V lat=45.6027924,lon=-68.2622087}, {Node id=7877038834 version=1 V lat=45.6026272,lon=-68.262265}, {Node id=7877038757 version=1 V lat=45.6024415,lon=-68.2621336}, {Node id=7877038756 version=1 V lat=45.602297,lon=-68.2619807}, {Node id=7877038755 version=1 V lat=45.6021731,lon=-68.2615489}, {Node id=7877038833 version=1 V lat=45.6021581,lon=-68.2612458}, {Node id=7877038754 version=1 V lat=45.6022501,lon=-68.2607898}, {Node id=7877038832 version=1 V lat=45.6023814,lon=-68.2605055}, {Node id=7877038753 version=1 V lat=45.6024039,lon=-68.2602856}, {Node id=7877038752 version=1 V lat=45.6023476,lon=-68.2600924}, {Node id=7877038751 version=1 V lat=45.602145,lon=-68.2599476}, {Node id=7877038750 version=1 V lat=45.6017209,lon=-68.2598001}, {Node id=7877038831 version=1 V lat=45.6014168,lon=-68.2599127}, {Node id=7877038749 version=1 V lat=45.6013249,lon=-68.2599798}, {Node id=7877038748 version=1 V lat=45.6012404,lon=-68.2602185}, {Node id=7877038747 version=1 V lat=45.6011785,lon=-68.2605404}, {Node id=7877038746 version=1 V lat=45.6011335,lon=-68.2608032}, {Node id=7877038745 version=1 V lat=45.6011185,lon=-68.2611895}, {Node id=7877038744 version=1 V lat=45.6009515,lon=-68.2615811}, {Node id=7877038830 version=1 V lat=45.6007788,lon=-68.2618386}, {Node id=7877038743 version=1 V lat=45.6006024,lon=-68.2620773}, {Node id=7877038742 version=1 V lat=45.600381,lon=-68.2621765}, {Node id=7877038741 version=1 V lat=45.6002327,lon=-68.2621926}, {Node id=7877038829 version=1 V lat=45.6000957,lon=-68.2620558}, {Node id=7877038740 version=1 V lat=45.6000394,lon=-68.2617608}, {Node id=7877038739 version=1 V lat=45.6000432,lon=-68.2613906}, {Node id=7877038738 version=1 V lat=45.5999869,lon=-68.2607335}, {Node id=7877038737 version=1 V lat=45.599908,lon=-68.2603607}, {Node id=7877038736 version=1 V lat=45.5997917,lon=-68.2599691}, {Node id=7877038735 version=1 V lat=45.5995627,lon=-68.259505}, {Node id=7877038828 version=1 V lat=45.5994539,lon=-68.2591751}, {Node id=7877038734 version=1 V lat=45.5995102,lon=-68.2589847}, {Node id=7877038733 version=1 V lat=45.5996622,lon=-68.2588318}, {Node id=7877038732 version=1 V lat=45.5997354,lon=-68.2586038}, {Node id=7877038731 version=1 V lat=45.5996979,lon=-68.258459}, {Node id=7877038827 version=1 V lat=45.5995477,lon=-68.2583463}, {Node id=7877038730 version=1 V lat=45.5993375,lon=-68.2583007}, {Node id=7877038729 version=1 V lat=45.5988834,lon=-68.2581157}, {Node id=7877038728 version=1 V lat=45.598448,lon=-68.2578018}, {Node id=7877038727 version=1 V lat=45.5979863,lon=-68.2574773}, {Node id=7877038726 version=1 V lat=45.5977649,lon=-68.2572949}, {Node id=7877038826 version=1 V lat=45.5971155,lon=-68.2570696}, {Node id=7877038725 version=1 V lat=45.5967589,lon=-68.2570052}, {Node id=7877038825 version=1 V lat=45.5963573,lon=-68.2571662}, {Node id=7877038724 version=1 V lat=45.5962747,lon=-68.2573056}, {Node id=7877038723 version=1 V lat=45.596241,lon=-68.2575899}, {Node id=7877038722 version=1 V lat=45.596316,lon=-68.2579279}, {Node id=7877038721 version=1 V lat=45.596331,lon=-68.2582122}, {Node id=7877038824 version=1 V lat=45.5962072,lon=-68.2587057}, {Node id=7877038720 version=1 V lat=45.5960082,lon=-68.2591885}, {Node id=7877038823 version=1 V lat=45.5957305,lon=-68.2594299}, {Node id=7877038719 version=1 V lat=45.595509,lon=-68.259505}, {Node id=7877038718 version=1 V lat=45.5952988,lon=-68.2594138}, {Node id=7877038822 version=1 V lat=45.5951224,lon=-68.2591295}, {Node id=7877038717 version=1 V lat=45.5950961,lon=-68.2585502}, {Node id=7877038716 version=1 V lat=45.5950361,lon=-68.2581103}, {Node id=7877038821 version=1 V lat=45.5949572,lon=-68.2577992}, {Node id=7877038715 version=1 V lat=45.5948146,lon=-68.2576543}, {Node id=7877038714 version=1 V lat=45.5946682,lon=-68.2576329}, {Node id=7877038713 version=1 V lat=45.5945443,lon=-68.2577831}, {Node id=7877038712 version=1 V lat=45.5943792,lon=-68.2579869}, {Node id=7877038711 version=1 V lat=45.594199,lon=-68.2582122}, {Node id=7877038710 version=1 V lat=45.593985,lon=-68.2583302}, {Node id=7877038709 version=1 V lat=45.593741,lon=-68.2583302}, {Node id=7877038820 version=1 V lat=45.5935346,lon=-68.2582605}, {Node id=7877038708 version=1 V lat=45.5933319,lon=-68.2581049}, {Node id=7877038707 version=1 V lat=45.5930353,lon=-68.2581425}, {Node id=7877038706 version=1 V lat=45.5927538,lon=-68.2581854}, {Node id=7877038705 version=1 V lat=45.5924648,lon=-68.2580996}, {Node id=7877038704 version=1 V lat=45.5921307,lon=-68.2579011}, {Node id=7877038703 version=1 V lat=45.5916952,lon=-68.2577992}, {Node id=7877038702 version=1 V lat=45.591455,lon=-68.2578313}, {Node id=7877038701 version=1 V lat=45.591226,lon=-68.2580566}, {Node id=7877038700 version=1 V lat=45.5908882,lon=-68.2581103}, {Node id=7877038819 version=1 V lat=45.5906442,lon=-68.2580674}, {Node id=7877038699 version=1 V lat=45.5903664,lon=-68.257885}, {Node id=7877038698 version=1 V lat=45.5901712,lon=-68.2575792}, {Node id=7877038697 version=1 V lat=45.5901411,lon=-68.2573646}, {Node id=7877038818 version=1 V lat=45.5901599,lon=-68.2572144}, {Node id=7877038696 version=1 V lat=45.5902913,lon=-68.2568121}, {Node id=7877038695 version=1 V lat=45.5905653,lon=-68.2565439}, {Node id=7877038817 version=1 V lat=45.5909745,lon=-68.2561737}, {Node id=7877038694 version=1 V lat=45.5916051,lon=-68.2547683}, {Node id=7877038693 version=1 V lat=45.5919505,lon=-68.2537812}, {Node id=7877038692 version=1 V lat=45.5924873,lon=-68.252821}, {Node id=7877038816 version=1 V lat=45.5931855,lon=-68.2517481}, {Node id=7877038691 version=1 V lat=45.5932531,lon=-68.2514584}, {Node id=7877038690 version=1 V lat=45.5932793,lon=-68.2511634}, {Node id=7877038689 version=1 V lat=45.5932343,lon=-68.2509542}, {Node id=7877038815 version=1 V lat=45.5930466,lon=-68.2506645}, {Node id=7877038688 version=1 V lat=45.5927613,lon=-68.2504553}, {Node id=7877038687 version=1 V lat=45.592401,lon=-68.2504177}, {Node id=7877038814 version=1 V lat=45.5920631,lon=-68.2505626}, {Node id=7877038813 version=1 V lat=45.5913424,lon=-68.2510507}, {Node id=7877038686 version=1 V lat=45.590997,lon=-68.2511044}, {Node id=7877038812 version=1 V lat=45.5907005,lon=-68.25104}, {Node id=7877038685 version=1 V lat=45.590494,lon=-68.25082}, {Node id=7877027384 version=1 V lat=45.5904227,lon=-68.2504928}, {Node id=7877038811 version=1 V lat=45.5903101,lon=-68.249951}, {Node id=7877027383 version=1 V lat=45.5902462,lon=-68.2496935}, {Node id=7877027382 version=1 V lat=45.5900773,lon=-68.249554}, {Node id=7877027381 version=1 V lat=45.5898633,lon=-68.2496023}, {Node id=7877027380 version=1 V lat=45.5896081,lon=-68.2497418}, {Node id=7877027379 version=1 V lat=45.5893641,lon=-68.2497311}, {Node id=7877038810 version=1 V lat=45.5892665,lon=-68.2493824}, {Node id=7877027378 version=1 V lat=45.5893941,lon=-68.2490766}, {Node id=7877027377 version=1 V lat=45.5895217,lon=-68.2489318}, {Node id=7877038809 version=1 V lat=45.5894579,lon=-68.2486314}, {Node id=7877027376 version=1 V lat=45.5892965,lon=-68.2484275}, {Node id=7877038808 version=1 V lat=45.5889436,lon=-68.2483202}, {Node id=7877027375 version=1 V lat=45.5886846,lon=-68.2483524}, {Node id=7877027374 version=1 V lat=45.5885006,lon=-68.2485187}, {Node id=7877027373 version=1 V lat=45.5884368,lon=-68.2487923}, {Node id=7877027372 version=1 V lat=45.5881665,lon=-68.2492268}, {Node id=7877038807 version=1 V lat=45.5879638,lon=-68.2493019}, {Node id=7877027371 version=1 V lat=45.5877235,lon=-68.2492644}, {Node id=7877027370 version=1 V lat=45.5874157,lon=-68.2491142}, {Node id=7877038806 version=1 V lat=45.5872618,lon=-68.2489103}, {Node id=7877027369 version=1 V lat=45.5871454,lon=-68.2485509}, {Node id=7877027368 version=1 V lat=45.5871341,lon=-68.2478535}, {Node id=7877027367 version=1 V lat=45.5871529,lon=-68.2475317}, {Node id=7877038805 version=1 V lat=45.5870628,lon=-68.2471508}, {Node id=7877027366 version=1 V lat=45.586984,lon=-68.2470542}, {Node id=7877027365 version=1 V lat=45.5866386,lon=-68.2470381}, {Node id=7877027364 version=1 V lat=45.5863833,lon=-68.2471025}, {Node id=7877038804 version=1 V lat=45.5855198,lon=-68.2469201}, {Node id=7877027363 version=1 V lat=45.5852983,lon=-68.2470167}, {Node id=7877027362 version=1 V lat=45.5850881,lon=-68.247301}, {Node id=7877027361 version=1 V lat=45.5849191,lon=-68.2476175}, {Node id=7877038803 version=1 V lat=45.5847464,lon=-68.2476497}, {Node id=7877027360 version=1 V lat=45.5846301,lon=-68.2475638}, {Node id=7877027359 version=1 V lat=45.5846188,lon=-68.2473224}, {Node id=7877038802 version=1 V lat=45.5847615,lon=-68.2471401}, {Node id=7877027358 version=1 V lat=45.5848891,lon=-68.2469469}, {Node id=7877038801 version=1 V lat=45.5850393,lon=-68.2466412}, {Node id=7877027357 version=1 V lat=45.5857226,lon=-68.2456166}, {Node id=7877027356 version=1 V lat=45.5859891,lon=-68.2454449}, {Node id=7877027355 version=1 V lat=45.5862669,lon=-68.2449514}, {Node id=7877027354 version=1 V lat=45.5864321,lon=-68.2446241}, {Node id=7877038800 version=1 V lat=45.5865185,lon=-68.2442915}, {Node id=7877038799 version=1 V lat=45.5864133,lon=-68.2441306}, {Node id=7877027353 version=1 V lat=45.5860905,lon=-68.244136}, {Node id=7877038798 version=1 V lat=45.5856024,lon=-68.2443398}, {Node id=7877027352 version=1 V lat=45.5850205,lon=-68.2444418}, {Node id=7877038797 version=1 V lat=45.5845512,lon=-68.2444418}, {Node id=7877027351 version=1 V lat=45.5843748,lon=-68.2443935}, {Node id=7877027350 version=1 V lat=45.5841645,lon=-68.2442755}, {Node id=7877027349 version=1 V lat=45.5840369,lon=-68.2441253}, {Node id=7877038796 version=1 V lat=45.5839768,lon=-68.243959}, {Node id=7877027348 version=1 V lat=45.5839843,lon=-68.2437336}, {Node id=7877038795 version=1 V lat=45.5841195,lon=-68.2435191}, {Node id=7877027347 version=1 V lat=45.5844161,lon=-68.2433689}, {Node id=7877027346 version=1 V lat=45.5846075,lon=-68.2431382}, {Node id=7877038794 version=1 V lat=45.5846864,lon=-68.2428861}, {Node id=7877027345 version=1 V lat=45.5846826,lon=-68.242693}, {Node id=7877038793 version=1 V lat=45.5845925,lon=-68.2425481}, {Node id=7877027344 version=1 V lat=45.5842997,lon=-68.2426661}, {Node id=1081479326 version=1 V lat=45.5832672,lon=-68.2433848}, {Node id=1081479016 version=1 V lat=45.5829368,lon=-68.2435833}, {Node id=1081479190 version=1 V lat=45.5827115,lon=-68.243535}, {Node id=1081478935 version=1 V lat=45.5825914,lon=-68.2432721}, {Node id=1081479306 version=1 V lat=45.5825163,lon=-68.2429503}, {Node id=1081479235 version=1 V lat=45.5825351,lon=-68.2424997}, {Node id=1081479294 version=1 V lat=45.5826252,lon=-68.2421188}, {Node id=1081479265 version=1 V lat=45.5826439,lon=-68.2417808}, {Node id=1081479106 version=1 V lat=45.5826064,lon=-68.2414053}, {Node id=1081479038 version=1 V lat=45.5824975,lon=-68.2411371}, {Node id=1081478961 version=1 V lat=45.5822422,lon=-68.241003}, {Node id=1081479110 version=1 V lat=45.5820582,lon=-68.2409011}, {Node id=1081479268 version=1 V lat=45.5816903,lon=-68.2408528}, {Node id=1081479324 version=1 V lat=45.5813111,lon=-68.2408152}, {Node id=1081479256 version=1 V lat=45.5809582,lon=-68.2406221}, {Node id=1081479105 version=1 V lat=45.5807892,lon=-68.2405953}, {Node id=1081479125 version=1 V lat=45.5806015,lon=-68.2406704}, {Node id=1081479179 version=1 V lat=45.5804213,lon=-68.2409171}, {Node id=1081479008 version=1 V lat=45.5802373,lon=-68.2412658}, {Node id=1081479089 version=1 V lat=45.5801397,lon=-68.2414965}, {Node id=1081479337 version=1 V lat=45.579997,lon=-68.2416896}, {Node id=1081479045 version=1 V lat=45.5797755,lon=-68.2416789}, {Node id=1081479366 version=1 V lat=45.5795427,lon=-68.241518}, {Node id=1081479024 version=1 V lat=45.5794188,lon=-68.2412497}, {Node id=1081479057 version=1 V lat=45.5792986,lon=-68.2409171}, {Node id=1081479210 version=1 V lat=45.5793024,lon=-68.2405738}, {Node id=1081479153 version=1 V lat=45.5794038,lon=-68.240193}, {Node id=1081478977 version=1 V lat=45.5795389,lon=-68.2398818}, {Node id=1081479021 version=1 V lat=45.5796929,lon=-68.2395331}, {Node id=1081479220 version=1 V lat=45.5798055,lon=-68.23934}, {Node id=1081479401 version=1 V lat=45.5798919,lon=-68.2390611}, {Node id=1081479276 version=1 V lat=45.5800345,lon=-68.2389377}, {Node id=1081479073 version=1 V lat=45.5801847,lon=-68.2388411}, {Node id=1081479132 version=1 V lat=45.5802373,lon=-68.2386802}, {Node id=1081479203 version=1 V lat=45.580196,lon=-68.2384871}, {Node id=1081479321 version=1 V lat=45.5801021,lon=-68.2383315}, {Node id=1081479185 version=1 V lat=45.5799106,lon=-68.2382028}, {Node id=1081478982 version=1 V lat=45.5796365,lon=-68.2381116}, {Node id=1081479022 version=1 V lat=45.5792798,lon=-68.2380526}, {Node id=1081478976 version=1 V lat=45.5789569,lon=-68.2379721}, {Node id=1081479342 version=1 V lat=45.5787129,lon=-68.2379989}, {Node id=1081479360 version=1 V lat=45.5784914,lon=-68.2382725}, {Node id=1081478956 version=1 V lat=45.5782961,lon=-68.2384495}, {Node id=1081479056 version=1 V lat=45.5780596,lon=-68.2385622}, {Node id=1081478967 version=1 V lat=45.5778531,lon=-68.2385085}, {Node id=1081479433 version=1 V lat=45.5776127,lon=-68.2382832}, {Node id=1081478980 version=1 V lat=45.5774776,lon=-68.2380526}, {Node id=1081479193 version=1 V lat=45.5772748,lon=-68.2374517}, {Node id=1081479154 version=1 V lat=45.5772222,lon=-68.2371782}, {Node id=1081478963 version=1 V lat=45.5771359,lon=-68.2368831}, {Node id=1081479200 version=1 V lat=45.5769068,lon=-68.2366363}, {Node id=1081479362 version=1 V lat=45.5765914,lon=-68.2363574}, {Node id=1081479345 version=1 V lat=45.5762497,lon=-68.2361214}, {Node id=1081479108 version=1 V lat=45.5758217,lon=-68.23588}, {Node id=1081479340 version=1 V lat=45.5754612,lon=-68.2356386}, {Node id=1081479004 version=1 V lat=45.5751683,lon=-68.2353757}, {Node id=1081479343 version=1 V lat=45.574883,lon=-68.2350753}, {Node id=1081479052 version=1 V lat=45.5746426,lon=-68.23485}, {Node id=1081479019 version=1 V lat=45.5743835,lon=-68.2347588}, {Node id=1081479140 version=1 V lat=45.574177,lon=-68.2349197}, {Node id=1081479227 version=1 V lat=45.5740231,lon=-68.2352094}, {Node id=1081478918 version=1 V lat=45.5739179,lon=-68.2355849}, {Node id=1081479135 version=1 V lat=45.5738578,lon=-68.2358478}, {Node id=1081479067 version=1 V lat=45.573794,lon=-68.2360248}, {Node id=1081479147 version=1 V lat=45.5736513,lon=-68.2361106}, {Node id=1081478993 version=1 V lat=45.573456,lon=-68.2360731}, {Node id=1081479225 version=1 V lat=45.5732833,lon=-68.2359443}, {Node id=1081479255 version=1 V lat=45.5731481,lon=-68.235719}, {Node id=1081479087 version=1 V lat=45.573028,lon=-68.2354615}, {Node id=1081479157 version=1 V lat=45.5729792,lon=-68.2352148}, {Node id=1081478923 version=1 V lat=45.5728665,lon=-68.2349626}, {Node id=1081479173 version=1 V lat=45.57269,lon=-68.2347266}, {Node id=1081479098 version=1 V lat=45.5724685,lon=-68.2345657}, {Node id=1081478949 version=1 V lat=45.5721868,lon=-68.2344477}, {Node id=1081479374 version=1 V lat=45.5719277,lon=-68.2343565}, {Node id=1081479152 version=1 V lat=45.5717625,lon=-68.2342599}, {Node id=1081479450 version=1 V lat=45.5716498,lon=-68.2339702}, {Node id=1081479290 version=1 V lat=45.5715109,lon=-68.2336752}, {Node id=1081479261 version=1 V lat=45.5713795,lon=-68.2336162}, {Node id=1081478920 version=1 V lat=45.5711692,lon=-68.2336966}, {Node id=1081479204 version=1 V lat=45.57088,lon=-68.2338898}, {Node id=1081479085 version=1 V lat=45.5704219,lon=-68.2342545}, {Node id=1081479059 version=1 V lat=45.5702003,lon=-68.2344316}, {Node id=1081479078 version=1 V lat=45.5699975,lon=-68.234673}, {Node id=1081479007 version=1 V lat=45.5699112,lon=-68.2350324}, {Node id=1081479451 version=1 V lat=45.5699187,lon=-68.2353006}, {Node id=1081479041 version=1 V lat=45.5698436,lon=-68.2355366}, {Node id=1081479063 version=1 V lat=45.5696746,lon=-68.2356386}, {Node id=1081479071 version=1 V lat=45.5694831,lon=-68.2356332}, {Node id=1081479082 version=1 V lat=45.5693253,lon=-68.235483}, {Node id=1081479088 version=1 V lat=45.5692502,lon=-68.2351504}, {Node id=1081479297 version=1 V lat=45.5691826,lon=-68.2346944}, {Node id=1081479137 version=1 V lat=45.569239,lon=-68.234394}, {Node id=1081479028 version=1 V lat=45.5693704,lon=-68.2341473}, {Node id=1081479036 version=1 V lat=45.5696145,lon=-68.2337932}, {Node id=1081479253 version=1 V lat=45.5699374,lon=-68.2333587}, {Node id=1081479266 version=1 V lat=45.5702867,lon=-68.2329724}, {Node id=1081479370 version=1 V lat=45.5705158,lon=-68.2326238}, {Node id=1081479393 version=1 V lat=45.5707936,lon=-68.2324199}, {Node id=1081479049 version=1 V lat=45.5710152,lon=-68.232377}, {Node id=1081479074 version=1 V lat=45.5711541,lon=-68.2322858}, {Node id=1081479020 version=1 V lat=45.5712293,lon=-68.2320498}, {Node id=1081479258 version=1 V lat=45.571218,lon=-68.2318352}, {Node id=1081479356 version=1 V lat=45.5711541,lon=-68.2316635}, {Node id=1081479384 version=1 V lat=45.5709251,lon=-68.2315401}, {Node id=1081479295 version=1 V lat=45.5706472,lon=-68.2314758}, {Node id=1081479213 version=1 V lat=45.5703693,lon=-68.2316206}, {Node id=1081478929 version=1 V lat=45.5701252,lon=-68.2317547}, {Node id=1081479077 version=1 V lat=45.5697534,lon=-68.2318674}, {Node id=1081479015 version=1 V lat=45.5694831,lon=-68.2319532}, {Node id=1081479262 version=1 V lat=45.5691714,lon=-68.2322107}, {Node id=1081479415 version=1 V lat=45.5689648,lon=-68.232672}, {Node id=1081479303 version=1 V lat=45.5687846,lon=-68.2331817}, {Node id=1081479372 version=1 V lat=45.5686343,lon=-68.2337557}, {Node id=1081479011 version=1 V lat=45.5685667,lon=-68.2340936}, {Node id=1081479417 version=1 V lat=45.5684203,lon=-68.2343189}, {Node id=1081478926 version=1 V lat=45.5682175,lon=-68.2344477}, {Node id=1081479353 version=1 V lat=45.5679659,lon=-68.2344047}, {Node id=1081479128 version=1 V lat=45.5677406,lon=-68.2341848}, {Node id=1081479044 version=1 V lat=45.5675903,lon=-68.2338629}, {Node id=1081479462 version=1 V lat=45.5675302,lon=-68.233407}, {Node id=1081479046 version=1 V lat=45.5675828,lon=-68.233069}, {Node id=1081478919 version=1 V lat=45.5676504,lon=-68.2327471}, {Node id=1081479064 version=1 V lat=45.5677593,lon=-68.2325433}, {Node id=1081479437 version=1 V lat=45.5679095,lon=-68.2323341}, {Node id=1081479456 version=1 V lat=45.5679997,lon=-68.2320873}, {Node id=1081479344 version=1 V lat=45.5680785,lon=-68.2317815}, {Node id=1081479368 version=1 V lat=45.5680898,lon=-68.2314758}, {Node id=1081478946 version=1 V lat=45.568071,lon=-68.2312505}, {Node id=1081478912 version=1 V lat=45.5679246,lon=-68.2310252}, {Node id=1081479168 version=1 V lat=45.5677481,lon=-68.2309608}, {Node id=1081479023 version=1 V lat=45.5675002,lon=-68.2310734}, {Node id=1081479226 version=1 V lat=45.5673237,lon=-68.2313095}, {Node id=1081479269 version=1 V lat=45.5670833,lon=-68.2315992}, {Node id=1081479033 version=1 V lat=45.5668468,lon=-68.2317708}, {Node id=1081478959 version=1 V lat=45.5665501,lon=-68.2319693}, {Node id=1081479186 version=1 V lat=45.5662834,lon=-68.2321731}, {Node id=1081479284 version=1 V lat=45.5661107,lon=-68.2323609}, {Node id=1081479263 version=1 V lat=45.5660618,lon=-68.232672}, {Node id=1081479238 version=1 V lat=45.5660694,lon=-68.2331012}, {Node id=1081479267 version=1 V lat=45.5661144,lon=-68.2335357}, {Node id=1081479282 version=1 V lat=45.5662233,lon=-68.2337717}, {Node id=1081479439 version=1 V lat=45.5662947,lon=-68.2340131}, {Node id=1081479149 version=1 V lat=45.5662496,lon=-68.2342814}, {Node id=1081479150 version=1 V lat=45.5660994,lon=-68.2344423}, {Node id=1081479178 version=1 V lat=45.5658778,lon=-68.2344745}, {Node id=1081479460 version=1 V lat=45.5655849,lon=-68.2342975}, {Node id=1081479307 version=1 V lat=45.5654234,lon=-68.2341902}, {Node id=1081478925 version=1 V lat=45.565183,lon=-68.2339166}, {Node id=1081478924 version=1 V lat=45.5649727,lon=-68.2335572}, {Node id=1081479318 version=1 V lat=45.5648713,lon=-68.2333104}, {Node id=1081478986 version=1 V lat=45.5647925,lon=-68.2329188}, {Node id=1081478930 version=1 V lat=45.5647587,lon=-68.232436}, {Node id=1081479301 version=1 V lat=45.5647173,lon=-68.2320176}, {Node id=1081479100 version=1 V lat=45.5644958,lon=-68.2316206}, {Node id=1081478994 version=1 V lat=45.5641577,lon=-68.231347}, {Node id=1081478991 version=1 V lat=45.5638798,lon=-68.2313041}, {Node id=1081479124 version=1 V lat=45.5635568,lon=-68.2313095}, {Node id=1081479217 version=1 V lat=45.5631437,lon=-68.2314221}, {Node id=1081479325 version=1 V lat=45.5629221,lon=-68.2315133}, {Node id=1081479423 version=1 V lat=45.5628094,lon=-68.2316957}, {Node id=1081479127 version=1 V lat=45.5628132,lon=-68.2319586}, {Node id=1081479333 version=1 V lat=45.5628921,lon=-68.2323019}, {Node id=1081479171 version=1 V lat=45.5630348,lon=-68.2326184}, {Node id=1081479397 version=1 V lat=45.563185,lon=-68.2329027}, {Node id=1081478954 version=1 V lat=45.5633803,lon=-68.2330636}, {Node id=1081478997 version=1 V lat=45.5635493,lon=-68.2331495}, {Node id=1081479289 version=1 V lat=45.5636395,lon=-68.2334016}, {Node id=1081479211 version=1 V lat=45.5636169,lon=-68.2336484}, {Node id=1081479013 version=1 V lat=45.5633916,lon=-68.2339273}, {Node id=1081478969 version=1 V lat=45.5631061,lon=-68.2341473}, {Node id=1081479091 version=1 V lat=45.5628545,lon=-68.2342653}, {Node id=1081479452 version=1 V lat=45.5625841,lon=-68.2341526}, {Node id=1081478984 version=1 V lat=45.5623325,lon=-68.2338844}, {Node id=1081479126 version=1 V lat=45.5619456,lon=-68.2333211}, {Node id=1081479441 version=1 V lat=45.5616226,lon=-68.2330529}, {Node id=1081479055 version=1 V lat=45.5613747,lon=-68.2329081}, {Node id=1081478972 version=1 V lat=45.5610855,lon=-68.2327632}, {Node id=1081479230 version=1 V lat=45.5607587,lon=-68.232613}, {Node id=1081479364 version=1 V lat=45.5604846,lon=-68.2324467}, {Node id=1081478931 version=1 V lat=45.5604057,lon=-68.2321034}, {Node id=1081479228 version=1 V lat=45.5603681,lon=-68.2317279}, {Node id=1081479233 version=1 V lat=45.560278,lon=-68.2315401}, {Node id=1081479161 version=1 V lat=45.5601127,lon=-68.2314436}, {Node id=1081479293 version=1 V lat=45.5598573,lon=-68.231508}, {Node id=1081479296 version=1 V lat=45.5596845,lon=-68.2318674}, {Node id=1081479081 version=1 V lat=45.5596432,lon=-68.2324253}, {Node id=1081479280 version=1 V lat=45.5597672,lon=-68.2328383}, {Node id=1081479287 version=1 V lat=45.5599174,lon=-68.2331602}, {Node id=1081479274 version=1 V lat=45.5600376,lon=-68.2333265}, {Node id=1081479425 version=1 V lat=45.5600226,lon=-68.2335089}, {Node id=1081479240 version=1 V lat=45.5598761,lon=-68.2336859}, {Node id=1081479229 version=1 V lat=45.5596094,lon=-68.2337717}, {Node id=1081479029 version=1 V lat=45.5592376,lon=-68.233702}, {Node id=1081478990 version=1 V lat=45.5588545,lon=-68.2336484}, {Node id=1081479012 version=1 V lat=45.5586479,lon=-68.2335464}, {Node id=1081479222 version=1 V lat=45.5584225,lon=-68.2333104}, {Node id=1081479123 version=1 V lat=45.558077,lon=-68.2328973}, {Node id=1081479018 version=1 V lat=45.5578253,lon=-68.2324736}, {Node id=1081479155 version=1 V lat=45.5577201,lon=-68.2322214}, {Node id=1081479166 version=1 V lat=45.5577051,lon=-68.2318781}, {Node id=1081479060 version=1 V lat=45.5577539,lon=-68.2316474}, {Node id=1081479199 version=1 V lat=45.5579831,lon=-68.2314919}, {Node id=1081478933 version=1 V lat=45.5583061,lon=-68.2312666}, {Node id=1081479000 version=1 V lat=45.5586516,lon=-68.2309715}, {Node id=1081479421 version=1 V lat=45.558847,lon=-68.2308857}, {Node id=1081479358 version=1 V lat=45.5591324,lon=-68.230655}, {Node id=1081479254 version=1 V lat=45.5592601,lon=-68.2305209}, {Node id=1081479187 version=1 V lat=45.5592902,lon=-68.2302741}, {Node id=1081479207 version=1 V lat=45.5592338,lon=-68.2300274}, {Node id=1081478927 version=1 V lat=45.5589859,lon=-68.2299255}, {Node id=1081479310 version=1 V lat=45.5584037,lon=-68.2298182}, {Node id=1081479241 version=1 V lat=45.5581108,lon=-68.2297323}, {Node id=1081479292 version=1 V lat=45.5579079,lon=-68.2298879}, {Node id=1081479309 version=1 V lat=45.5576901,lon=-68.2302259}, {Node id=1081479160 version=1 V lat=45.5574948,lon=-68.2305209}, {Node id=1081479086 version=1 V lat=45.5572994,lon=-68.231111}, {Node id=1081479449 version=1 V lat=45.5571793,lon=-68.2314114}, {Node id=1081479236 version=1 V lat=45.557014,lon=-68.2316152}, {Node id=1081479380 version=1 V lat=45.5568187,lon=-68.2316313}, {Node id=1081479443 version=1 V lat=45.5566309,lon=-68.2314972}, {Node id=1081479413 version=1 V lat=45.5564618,lon=-68.2312451}, {Node id=1081479458 version=1 V lat=45.5563379,lon=-68.2309447}, {Node id=1081479403 version=1 V lat=45.5563266,lon=-68.2306872}, {Node id=1081479308 version=1 V lat=45.5563679,lon=-68.2303224}, {Node id=1081479409 version=1 V lat=45.5564768,lon=-68.2299308}, {Node id=1081479223 version=1 V lat=45.5566196,lon=-68.2295178}, {Node id=1081479145 version=1 V lat=45.5567248,lon=-68.2291423}, {Node id=1081479112 version=1 V lat=45.5568412,lon=-68.2288633}, {Node id=1081479075 version=1 V lat=45.557044,lon=-68.2286112}, {Node id=1081478987 version=1 V lat=45.5572431,lon=-68.2283698}, {Node id=1081479464 version=1 V lat=45.5574084,lon=-68.2281337}, {Node id=1081479411 version=1 V lat=45.5574647,lon=-68.227887}, {Node id=1081479084 version=1 V lat=45.557461,lon=-68.2276029}, {Node id=1081479302 version=1 V lat=45.5573295,lon=-68.2272542}, {Node id=1081479335 version=1 V lat=45.5571492,lon=-68.226927}, {Node id=1081479014 version=1 V lat=45.5568111,lon=-68.2265783}, {Node id=1081479311 version=1 V lat=45.5565407,lon=-68.2262726}, {Node id=1081478973 version=1 V lat=45.5562102,lon=-68.2257737}, {Node id=1081479002 version=1 V lat=45.5557707,lon=-68.2251246}, {Node id=1081478951 version=1 V lat=45.55538,lon=-68.2244487}, {Node id=1081478989 version=1 V lat=45.555087,lon=-68.2240624}, {Node id=1081478915 version=1 V lat=45.5547415,lon=-68.2236654}, {Node id=1081478985 version=1 V lat=45.5545349,lon=-68.2233704}, {Node id=1081479072 version=1 V lat=45.554302,lon=-68.2229949}, {Node id=1081479198 version=1 V lat=45.554054,lon=-68.2223941}, {Node id=1081479162 version=1 V lat=45.5538362,lon=-68.222142}, {Node id=1081479144 version=1 V lat=45.553607,lon=-68.221922}, {Node id=1081478922 version=1 V lat=45.5534044,lon=-68.2217933}, {Node id=1081478921 version=1 V lat=45.5531339,lon=-68.2217396}, {Node id=1081479206 version=1 V lat=45.5528672,lon=-68.2218147}, {Node id=1081479197 version=1 V lat=45.5526118,lon=-68.2220132}, {Node id=1081479037 version=1 V lat=45.5523188,lon=-68.2222707}, {Node id=1081479279 version=1 V lat=45.5521572,lon=-68.2223941}, {Node id=1081479322 version=1 V lat=45.5519619,lon=-68.2224585}, {Node id=1081479395 version=1 V lat=45.5517023,lon=-68.2225295}, {Node id=9890218431 version=1 V lat=45.5513572,lon=-68.2225467}, {Node id=9890218432 version=1 V lat=45.5509111,lon=-68.2225378}, {Node id=9890218433 version=1 V lat=45.5506632,lon=-68.2226971}, {Node id=9890218434 version=1 V lat=45.5504758,lon=-68.2231214}]} not found in HistoryDataSet

Attachments (2)

24446.patch (7.8 KB ) - added by GerdP 10 days ago.
Implement new methods getCodePointCount() and checkCodePointCount(), use them instead of checking String.length() against a max value
24446-2.patch (2.0 KB ) - added by GerdP 8 days ago.
new method to truncate a string to a given maximum of grapheme clusters

Download all attachments as: .zip

Change History (38)

comment:1 by GerdP, 11 days ago

Owner: changed from team to GerdP

I can reproduce the problem: No history window, no error message in the dialog, long error message in the console saying that data is missing. I'll try to find out if this is an error in the server data or in JOSM.

comment:2 by GerdP, 11 days ago

Something in the changeset comment for cs 167608541 seems to be the problem. When I try to revert that cs with the reverter plugin I see an error message Changeset tag value is too long
https://www.openstreetmap.org/changeset/167608541

I guess a utf8 problem with the special character before the text "Strava Heatmap" is the cause.

comment:3 by GerdP, 11 days ago

Cc: stoecker added

@stoecker: The String.length() method returns 259 for this comment, but obviously the OSM server calculates a different length. Any idea how to handle this?
Code in Changeset.java:

        if (value != null && value.length() > MAX_CHANGESET_TAG_LENGTH) {
            throw new IllegalArgumentException("Changeset tag value is too long: "+value);
        }

comment:4 by GerdP, 11 days ago

Besides: With this small patch JOSM shows at least a popup with an error text:

  • src/org/openstreetmap/josm/io/OsmChangesetParser.java

     
    285285            return parser.getChangesets();
    286286        } catch (ParserConfigurationException | SAXException e) {
    287287            throw new IllegalDataException(e.getMessage(), e);
    288         } catch (IOException e) {
     288        } catch (IOException | IllegalArgumentException e) {
    289289            throw new IllegalDataException(e);
    290290        } finally {
    291291            progressMonitor.finishTask();

comment:5 by GerdP, 11 days ago

Owner: changed from GerdP to team

comment:6 by stoecker, 11 days ago

According to the wiki the limit is still 255 in UTF-8/Unicode.

https://wiki.openstreetmap.org/wiki/API_v0.6#Maximum_string_lengths

Question is if this is still true for the code? Maybe it silently supports more.

In any case I'd simply strip it down to 255.

comment:7 by GerdP, 11 days ago

Did you analyse the bytes before "Strava" in the comment? It seems to me that 19 bytes are rendered as a single symbol. So, something special happens and I guess the same can happen with normal tag values, so we have to make sure that JOSM can handle this.

comment:8 by GerdP, 11 days ago

I talk about this symbol in the comment: ⚪

in reply to:  7 comment:9 by stoecker, 11 days ago

Replying to GerdP:

Did you analyse the bytes before "Strava" in the comment? It seems to me that 19 bytes are rendered as a single symbol. So, something special happens and I guess the same can happen with normal tag values, so we have to make sure that JOSM can handle this.

I copied the string into my text editor and it does the same: Also gets 259 als length.

Only 0xE2 0x9A 0xAA (U+26AA) is the bubble. In front of it is 4 times 0xF3 0xA0 0x80 0xA0, which is Tag Space https://www.fileformat.info/info/unicode/char/e0020/index.htm and has no real meaning. Dropping that will reduce the length to 255 ;-)

Maybe the server has a bug and doesn't count that as character?

comment:10 by GerdP, 11 days ago

Can you open a ticket? Can't remember how or where to do that :(

comment:11 by stoecker, 11 days ago

https://github.com/openstreetmap/openstreetmap-website/issues/6350

That does not solve the JOSM issue thought ;-) We need to handle it properly. I'd suggest two solutions:
a) Drop 0xE0020 from the string
b) Cut strings longer than 255

comment:12 by GerdP, 11 days ago

Thanks for opening the ticket.
The question is where (in what class) this could happen. While I see no big problem with data that is only displayed, what do we do if a normal object has a tag like description=* that contains such a value or another too long string and the object is uploaded after an update?

comment:13 by stoecker, 11 days ago

To be clear:
In my eyes the string violates the API rules and thus should also in the future be illegal. I'd only add a workaround, so that the string gets sanitized into the acceptable 255 characters range for further processing when the data comes from the API. That means the workaround should only be done handling the input. I would not extend this to other places except there is need for that.

uploaded after an update

Nothing changes, we still only upload 255 character strings. This broken string is bad and not uploadable.

comment:14 by GerdP, 11 days ago

OK, this patch seems to do the trick for the changeset parser (which is also used by the reverter plugin):

  • src/org/openstreetmap/josm/io/OsmChangesetParser.java

     
    211211            case "tag":
    212212                String key = atts.getValue("k");
    213213                String value = atts.getValue("v");
    214                 current.put(key, value);
     214                // see #24446: drop Unicode Character 'TAG SPACE' (U+E0020)
     215                current.put(key, value.replace("\uDB40\uDC20", ""));
    215216                break;
    216217            case "discussion":
    217218                break;

comment:15 by stoecker, 10 days ago

In the OSM ticket Tom Hughes checked it and in principle the length of 255 for the string can be verified. Java and KDE kate sees that a bit different ;-)

Tom adds:

You probably want to use String.codePointCount instead of the normal length function.

If that would help, we can be in sync with the server algorithm.

comment:16 by GerdP, 10 days ago

Yes, helps, but code is more complex. Something like this:

        if (value != null && value.length() > MAX_CHANGESET_TAG_LENGTH
                && value.codePointCount(0, value.length()) > MAX_CHANGESET_TAG_LENGTH) {
            throw new IllegalArgumentException("Changeset tag value is too long: " + value);
        }

If performance is not an issue we may remove the simple check for value.length()
There are a few more places where this change is needed...

comment:17 by stoecker, 10 days ago

I think that looks good. Usually the first will catch. I'd add a note linking to this ticket.

in reply to:  16 comment:18 by stoecker, 10 days ago

There are a few more places where this change is needed...

Make an Utils.checkCodePointCount(String s, int len) of it? Also solves the complexity issue ;-)

comment:19 by GerdP, 10 days ago

Hmm, how should that method handle a null value? Most times we need the actual count for user feedback, e.g. for the validator tests.

comment:20 by GerdP, 10 days ago

It seems we have a long standing bug in class ApiPreconditionCheckerHook. It checks if key.length() is too large and then possibly tries to truncate value.

in reply to:  19 comment:21 by stoecker, 10 days ago

Replying to GerdP:

Hmm, how should that method handle a null value?

Return 0 for null :-)

Most times we need the actual count for user feedback, e.g. for the validator tests.

A second function which returns the value? Utils.getCodePointCount(String s)

But do not forget, who does the code decides: I only do suggestions...

It seems we have a long standing bug in class ApiPreconditionCheckerHook. It checks if key.length() is too large and then possibly tries to truncate value.

One of these "why the hell did nobody find this before"?

comment:22 by GerdP, 10 days ago

I really wonder if this code is a good idea. A method called checkMaxNodes() is certainly not the right place to possibly manipulate the tag values, even if it is private.
Besides that it should probably check both the key and the value, similar to TagChecker.
Or maybe the manipilation part should be removed because it never worked, anyway.

Last edited 10 days ago by GerdP (previous) (diff)

by GerdP, 10 days ago

Attachment: 24446.patch added

Implement new methods getCodePointCount() and checkCodePointCount(), use them instead of checking String.length() against a max value

comment:23 by GerdP, 10 days ago

Milestone: 25.08
Owner: changed from team to GerdP
Summary: Error loading way-history[Patch] Error loading way-history

Please review the patch.
I've kept the code to truncate the value, I did not add code (yet) to check the key length as well, as this also would add translated strings.
Further issues that I found:

  • Some messages just say "String is too long", others report something like "longer than {x} characters".
  • Some of our dialogs don't allow to paste or create the problematic comment as they simply check agains String.lenght(), see e.g. AutoCompletingTextField.setMaxChars(). The patch doesn't change that.

comment:24 by stoecker, 10 days ago

Already had a look. Looks good to me.

comment:25 by GerdP, 10 days ago

OK, thanks. I'll do some performance tests reg. the changes in TagChecker. If nothing serious pops up I'll commit the patch later.

comment:26 by GerdP, 10 days ago

Resolution: fixed
Status: newclosed

In 19437/josm:

fix #24446: Error loading way-history
Turned out that the OSM server counts the number of unicode code points, not the number of characters when checking the maximum lengths of keys and tags in tags.

  • implement new methods in Util to calculate the number of code points or check agains a given limit
  • fix long standing bug in ApiPreconditionCheckerHook.java which was introduced with r2906 (key -> value)

comment:27 by stoecker, 10 days ago

Congratulations for fixing a 15 years old bug 👏

comment:28 by pnorman, 9 days ago

If you want to truncate a string you can't just cut it off at a certain number of code points. You can end up truncating in the middle of a grapheme cluster.

comment:29 by GerdP, 9 days ago

Do you have an idea how to find the right place to cut? I've not found anything obvious in the String class.

by GerdP, 8 days ago

Attachment: 24446-2.patch added

new method to truncate a string to a given maximum of grapheme clusters

comment:31 by GerdP, 8 days ago

The patch implements a possible solution. It changes only the one call in ApiPreconditionCheckerHook. The problematic method Utils.shortenString() is used in many places and I assume we also have many places were a String.substring() call is used to truncate a string.
New ticket?

comment:32 by pnorman, 8 days ago

https://adam-p.ca/blog/2025/04/string-length/ is one article I found that goes over the different ways and problems. It's not language specific so it doesn't recommend any libraries.

in reply to:  31 comment:33 by stoecker, 8 days ago

Replying to GerdP:

The patch implements a possible solution. It changes only the one call in ApiPreconditionCheckerHook. The problematic method Utils.shortenString() is used in many places and I assume we also have many places were a String.substring() call is used to truncate a string.
New ticket?

Hmm, I'm not sure we should introduce another function. I'd rather think shortenString should be adapted, so that it cuts before a grapheme cluster without changing the semantics (i.e. compared to now it would drop some additional bytes). Would that be feasible?

comment:34 by GerdP, 8 days ago

I first coded it like that but then I thought that some callers may really expect to get a string with a maximum number of chars, so I'd prefer to keep the impact small and have a new method.
I might be wrong there. We have lots of code where dialog fields are truncated to a maximum length where they should truncate to a maximum number of grapheme clusters. I don't know yet how to find all of them. Maybe only the places where String.substring(int beginIndex,int endIndex) is used need to be checked, probably many more. Too much for me.


in reply to:  34 comment:35 by stoecker, 8 days ago

Replying to GerdP:

I first coded it like that but then I thought that some callers may really expect to get a string with a maximum number of chars, so I'd prefer to keep the impact small and have a new method.

Well yes, but cutting in the middle is always wrong, that's why I thought keep the logic (i.e. shorten get's called with the number of chars), but ensures that it does not cut in the middle of a grapheme cluster. So it calculates the char split position and if that's inside a grapheme cluster use the nearest position before. That way you keep the function as is, but prevent bad broken output.

In our example that would mean we would reduce the string a bit more than strictly necessary - If you think that's not good enough, your new function can be used explicit in that place (i.e. the tag length).

Again, you decide ;-)

comment:36 by GerdP, 8 days ago

I think we need both methods, one that cuts to the given length, the other which cuts to given maximum number of grapheme clusters.
Maybe only the second is really needed, but I think that has to verified very carefully.
You are right, both should never cut inside a grapheme cluster.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain GerdP.
as The resolution will be set.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.