source: josm

Revision Log Mode:


Copied or renamed
Diff Rev Age Author
(edit) @18565   5 days taylor.smock

i18n update

(edit) @18564   7 days Klumbumbus

fix #22397 - Warn about temporary image URLs starting with

(edit) @18563   7 days taylor.smock

Fix #22268: Upload of data triggering exception "Primitive cannot be modified in read-only dataset"

This occurs during upload, and appears to be a race condition where a dataset is
not locked when we check, but becomes locked while the relation copy constructor
is running.

This attempts to fix the problem by checking to see if any OsmDataLayer objects are
in the upload process.

(edit) @18562   8 days taylor.smock

See r18555: Fix tests on Windows

This occurred due to the changes to TestUtils.assertEqualsNewline assuming that
the actual text would include the system dependent newline. This is not always
the case.

(edit) @18561   8 days taylor.smock

See #22183: NoClassDefFoundError: Could not initialize class org.openstreetmap.josm.actions.SessionSave...

Add check after the setting of contentPanePrivate to figure out why it might be null.

(edit) @18560   9 days GerdP

fix #19340: Validator complains about maxweightrating:X:conditional

  • add maxweightrating as valid keyword
(edit) @18559   2 weeks Klumbumbus

fix #22359 - Change default color of landuse=railway and landuse=quarry as they were too similar to untagged ways color (#808080)

(edit) @18558   2 weeks Klumbumbus

fix #22379 - Warn about parking=yes, add parking=layby

(edit) @18557   3 weeks Klumbumbus

fix #22367, see #11499 - Don't warn anymore about payment:credit_cards=yes and payment:debit_cards=yes, Reduce warning of payment:electronic_purses=yes and payment:cryptocurrencies=yes to info level

(edit) @18556   4 weeks taylor.smock

Fix #22333: Allow delete + move up/down actions in filter dialog to act on all selected filters (patch by Woazboat, modified)

This also adds build add/remove methods
in FilterModel and FilterTableModel.

(edit) @18555   4 weeks taylor.smock

Update tests for new UI information

See #20716: Search for missing power line support features.

This also improves test failure feedback in TestUtils.assertEqualsNewline.
This is done by creating arrays and comparing those, which will help narrow
down where the actual problem was.

(edit) @18554   4 weeks taylor.smock

Fix #22309: Add option to merge by default when dragging nodes (patch by Woazboat)

This is currently an advanced preference only. It uses the ctrl key to manage

(edit) @18553   4 weeks taylor.smock

Fix #20716: Search for missing power line support features (patch by gaben, modified)


  • Avoid in hasIncompleteNodes. This decreases CPU cost by 90%+ and makes it free from a memory allocation standpoint.
  • Add method to get segment lengths (meters)


  • Avoid Node#getEastNorth calls
  • Add a getSegments call that takes ILatLon


  • Check for inconsistent support node reference numbering
  • Check for ways with unusually long segments without node supports
  • Check for ways where line types might be misused


  • Avoid unnecessary calls to Node#getEastNorth
  • Add getSegmentCells for ILatLon


  • Add average segment length statistic


  • Add getSegmentSegmentIntersection for ILatLon to avoid new EastNorth objects


  • Add getStandardDeviation methods
(edit) @18552   4 weeks taylor.smock

Fix #21396: Add/ignore popular tags

  • Ignores
    • maxspeed:type
  • Ignores in TODO section (now sorted)
    • advertising=board
    • amenity=loading_dock
    • amenity=parcel_locker
    • amenity=payment_terminal
    • barrier=sliding_gate
    • boundary=forest_compartment
    • craft=grinding_mill
    • emergency=access_point
    • healthcare:speciality=general
    • hedge=hedge_bank
    • historic=bomb_crater
    • indoor=area
    • leisure=sports_hall
    • man_made=courtyard
    • man_made=gantry
    • military=trench
    • natural=crevasse
    • path=crossing
    • railway=proposed
    • road_marking=solid_stop_line
    • oneway (F::oneway/S:oneway:), but indicates that this might need better software support
  • Issues:
    • Suggest paving_stones:length/paving_stones:width for paving_stones:30
    • Indicate type="turnlanes:turns" is deprecated
  • Preset updates
    • Modify lit to be more than yes/no
    • Add rock to surfaces
    • Add none to religions (other_religions)
    • Add locked (text="Usually locked" -- there is probably better wording for this)
    • Add pavilion to building
    • Add shop as a possible value for entrance
    • Add product as an optional key for man_made=works. With all currently documented values.
    • Add fuel to possible values for vending
(edit) @18551   4 weeks taylor.smock

Fix test failures due to StackOverflowError

This occurs due to JMockit not cleaning up mocks in JUnit4 vintage.
This means that EDTAssertionMocker, WindowlessMapViewStateMocker, and
WindowlessNavigatableComponentMocker are all present after a JUnit4
test is run.

(edit) @18550   4 weeks taylor.smock

Fix CID 1497740: Concurrent data access violations

SUPPRESSED_EXCEPTIONS.add was originally not guarded, since
the possible exception could be caused by pop, and I wanted
to prevent that by keeping multiple threads from calling
pop at the same time.

(edit) @18549   4 weeks taylor.smock

See #22183: NoClassDefFoundError: Could not initialize class org.openstreetmap.josm.actions.SessionSaveAction

The root cause is a suppressed NPE whose stack trace is not given
in the bug report.

This adds a method to BugReport to add suppressed exceptions to a report.
In the future, if we keep the code long-term, methods in Logging which take
exceptions may assume the exception is suppressed, and add it to the
suppressed exceptions.

(edit) @18548   4 weeks Klumbumbus

Fix #22310 - Rename "Parking Entrance" preset to "Parking Entrance/Exit"

(edit) @18547   5 weeks Klumbumbus

fix #22338 - Warn about unnecessary area=yes on: boundary, indoor, office and place (patch by Famlam)

(edit) @18546   5 weeks Klumbumbus

Fix #22295, see #18374 - Don't warn about "collection_times together with amenity=recycling. Probably opening_hours is meant." for cases when also opening_hours is set.

(edit) @18545   5 weeks Klumbumbus

Fix #22335 - Deprecate toilet in favor of toilets

(edit) @18544   5 weeks Klumbumbus

fix #22336, see #13391 - Autofix wood=deciduous to leaf_cycle=deciduous

(edit) @18543   5 weeks taylor.smock

i18n update

(edit) @18542   6 weeks taylor.smock

Fix #21046: Add description to the default naming tags for relations

description currently comes before note, since description is
more likely to describe the object well for the mapper.

(edit) @18541   6 weeks taylor.smock

Fix #22250: Abort on XML error elements

(edit) @18540   6 weeks taylor.smock

Fix #22307: Add popup menu for notes (patch by Woazboat)

The popup menu has the following actions:

  • Comment
  • Open in Browser
  • Close
  • Reopen
(edit) @18539   7 weeks taylor.smock

Fix #21856: Split way: Wrong position of new member in PTv2 relation splitting a loop

(edit) @18538   7 weeks taylor.smock

JosmTextField: setHint now properly returns the old hint

See #21319/r18221. This additionally adds a non-regression test.

(edit) @18537   7 weeks Klumbumbus

see #20682 - Use proper name "Arête" instead of "Arete", fix unit test

(edit) @18536   7 weeks Klumbumbus

see #21836 - Improve error messages (use only key instead of whole tag)

(edit) @18535   7 weeks Klumbumbus

see #21836 - Add some power/voltage validation rules:

  • voltage:primary/secondary/tertiary without transformer
  • voltage:primary/secondary/tertiary on a way
  • voltage:primary/secondary/tertiary not in correct number format (should be in volts with no units/delimiter/spaces)
  • don't warn about unknown numeric values of voltage:primary/secondary/tertiary
  • transformer together with voltage on nodes
  • voltage:secondary is lower than voltage:primary on transformer=generator
  • deprecate voltage-high and voltage-low in favor of voltage:primary/secondary
(edit) @18534   7 weeks Klumbumbus

fix #20682 - Add natural=arete, reuse glacier icon, modify icon for glacier (PD and CC0 licensed), remove ele from ridge preset (not useful on linear feature)

(edit) @18533   7 weeks Klumbumbus

see #22225 - Draw unclosed leisure=track sport=running without area style

(edit) @18532   8 weeks taylor.smock

Fix #22160: Retry on SocketException: Unexpected end of file from server

This allows additional exceptions to force a retry. Specifically, the
following subclasses of SocketException were considered:

  • BindException -- shouldn't be thrown, "Signals that an error occurred

while attempting to bind a socket to a local address and port. Typically,
the port is in use, or the requested local address could not be assigned."
This will be raised if it is ever encountered.

  • ConnectException-- replacing that here, "Signals that an error occurred

while attempting to connect a socket to a remote address and port.
Typically, the connection was refused remotely (e.g., no process is
listening on the remote address/port)."

  • ConnectionResetException -- "Thrown to indicate a connection reset"

This seems to be a Java internal class. It is rethrown.

  • NoRouteToHostException -- "Signals that an error occurred while attempting

to connect a socket to a remote address and port. Typically, the remote
host cannot be reached because of an intervening firewall, or if an
intermediate router is down."

  • PortUnreachableException -- "Signals that an ICMP Port Unreachable message

has been received on a connected datagram."

SocketException is only thrown in one location in the JDK source code, but
just in case someone decided to throw the exception in a library, we
additionally check that the message matches that from the JDK source. This is,
unfortunately, a bit more fragile than it should be.

(edit) @18531   2 months taylor.smock

Fix signtool.exe path location for GitHub Actions

At time of writing, signtool.exe is not in the bin\x64 path that it was
previously in. Instead, it is in the following paths:

  • C:\Program Files (x86)\Windows Kits\10\App Certification Kit
  • C:\Program Files (x86)\Windows Kits\10\bin\$VERSION\$ARCH, with the following version matrix:
    • VERSION:
      • 10.0.17763.0
      • 10.0.19041.0
      • 10.0.20348.0
      • 10.0.22000.0
      • 10.0.22621.0
    • ARCH:
      • arm
      • arm64
      • x32
      • x64

This uses App Certification Kit, as that will presumably be the most stable
path for signtool.exe.

(edit) @18530   2 months taylor.smock

i18n update

(edit) @18529   2 months taylor.smock

MainMenu: Add missing final keywords

(edit) @18528   2 months taylor.smock

Fix #22048: building=construction preset missing some values (patch by skyper, modified)

(edit) @18527   2 months taylor.smock

Fix #22102: Add a warning if surface does not match tracktype (patch by mkoniecz)

(edit) @18526   2 months taylor.smock

Fix tests that have been broken on Mac and Windows

Mac was due to ctrl -> cmd differences, Windows was
path issues ('\' versus '/').

(edit) @18525   2 months taylor.smock

Add module java.compiler to Mac and Window packages

This should fix #22188.

(edit) @18524   2 months taylor.smock

Fix #22120: Add 'school=entrance' to deprecation warnings

The number of school=entrance tags reached its peak in 2014 (1),
and has since started to see a decrease in usage. At its height,
there were about 1,700 uses of school=entrance.

(1) taginfo:tags/school=entrance#chronology

(edit) @18523   3 months taylor.smock

Fix #21235: Stop whitelisting footway=*, and add footway=separate to blacklist candidates for sidewalk=* (patch by JeroenHoek)

Patch notes by JeroenHoek (modified):

  • Add a check for footway=separate.
  • Remove special treatment for footway=none, none is added to the general footway=* check.
  • The whitelist for footway=* is removed.
(edit) @18522   3 months taylor.smock

Fix #22166: ignore more barrier types for psv suspicious tag combination

(edit) @18521   3 months taylor.smock

Fix #22225: Don't warn about sport=running on unclosed ways

(edit) @18520   3 months taylor.smock

VectorPrimitive: Reduce memory allocations in isTagged

(edit) @18519   3 months taylor.smock

Fix #21630: Drop the "Riverbank" template (patch by zelonewolf)

TagInfo(1) shows that usage of waterway=riverbank has cratered over
the past year. As of writing, the total number of objects with
waterway=riverbank is less than 5,000 objects, and due to the significant
drop in usage, can be considered to be deprecated instead of
in use.

(1) taginfo:tags/waterway=riverbank#chronology

(edit) @18518   3 months taylor.smock

Allow VectorPrimitives to be filtered (see r18516)

(edit) @18517   3 months taylor.smock

Fix #22176: Add subdivisions for Federated States of Micronesia (patch by westnordost, modified)

(edit) @18516   3 months taylor.smock

Move OsmPrimitive isDrawable to AbstractPrimitive

This should have no effect on binary compatibility (according to
japi-compliance-checker), and allows filters to work properly on
non-OsmPrimitive objects (like vector primitives).

(edit) @18515   3 months taylor.smock

Improve josm launchers (patch by sebastic)

Patch notes from sebastic, modified. See #22193.

  • Use /bin/bash instead of /usr/bin/env bash usrmerge systems have both /bin/bash and /usr/bin/bash, non-usrmerge systems only have /bin/bash. Distributions that have differing behaviors between /bin/bash and /usr/bin/bash should update/fix their version of bash.
  • Set ALTERNATIVE_JDK only if /etc/alternatives/java exists. While not only Debian based distributions use the alternatives system, not all distributions do.
  • Use 4 spaces for indentation consistently. Some indentation used tabs, others 2 spaces.
  • Simplify java_version function.
  • Don't use command -v to test whether dpkg is available. The command may be an alias which results in output like:

dpkg is aliased to 'd*-p*-k*-g*'

  • Fix issues reported by shellcheck. SC2086 is disabled for $JAVA_OPTS because that only works unquoted.
(edit) @18514   3 months taylor.smock

Dependency updates



pmd: 6.44.0 -> 6.47.0

  • EmptyControlStatement (we have a few empty if blocks) This replaces EmptyFinallyBlock, EmptyIfStmt, EmptyInitializer, EmptyStatementBlock, EmptySwitchStatements, EmptySynchronizedBlock, EmptyTryBlock, and EmptyWhileStmt We currently ignore this, since we were previously ignoring EmptyIfStmt and EmptyWhileStmt
(edit) @18513   3 months taylor.smock

Way: Fix IAE where getNodePairs would be called on an empty way

This fixes #22198 and #22199.

(edit) @18512   3 months taylor.smock

Fix #22193: /usr/bin/bash is not present on all Debian systems

This switches to /usr/bin/env bash.

(edit) @18511   3 months stoecker

remove vi, see #21720

(edit) @18510   3 months stoecker

i18n update, disable vi, fix #21720

(edit) @18509   3 months Klumbumbus

fix #22189 - Update valid wikipedia languages from (sitematrix.*.code)

(edit) @18508   3 months stoecker

i18n update

(edit) @18507   3 months GerdP

see #22187, see 21825: Same error code 1708 for two different problems
fix unit test

(edit) @18506   3 months GerdP

fix #22187, see #21825: Same error code 1708 for two different problems
I introduced this annoying bug with r14990 and it probably caused lots of empty relations since users where not warned when they ignored the less important message "Role of relation member does not match template expression"

(edit) @18505   3 months Klumbumbus

fix #22172 - Don't warn about barrier=berm looks like barrier=kerb

(edit) @18504   3 months Klumbumbus

fix #22154 - Add incline, surface and fee to slipway preset

(edit) @18503   3 months taylor.smock

Fix #22170: AIOOBE in org.openstreetmap.josm.gui.util.imagery.CameraPlane

(edit) @18502   3 months taylor.smock

Fix #22139: Significantly reduce allocations in NodeElement

This significantly reduces the cost for painting nodes.
In testing (Mesa County, Colorado, downloaded via overpass),
this reduces the cost for painting nodes (no paintstyle) by
66% (memory allocations) and ~17% (CPU allocations).

This comes out to about 7% of CPU cycles during map paint and
~20% of memory allocations during map paint.

(edit) @18501   3 months taylor.smock

Fix #22140: Significantly reduce allocations in AbstractMapRenderer#drawVirtualNodes

This reduces MapViewState#getViewArea from ~56.5% of memory allocations to ~4.2%.
This also reduced the CPU samples for that method from 5.1% to 2.9%.
The profiling occurred with Mesa County, Colorado downloaded (via overpass).

(edit) @18500   3 months taylor.smock

See #22088: use hardcoded to avoid casing issues

(edit) @18499   3 months taylor.smock

Sync josm-latest with josm for linux start scripts

The differences were for the server side instance of
checkbashisms (there exists differences between some
versions of checkbashisms).

(edit) @18498   3 months taylor.smock

Fix issues from checkbashisms introduced in r18497

(edit) @18497   3 months taylor.smock

Fix #22088: Debian start script does not properly check if a path does not exist or is not executable

This also fixes #22157: java options from start script not passed

#22157 had two issues:

  1. The start script fell back to /bin/java, which did not allow for version information (we were using the path to java to get the version information)
  2. #!/bin/bash was not working properly

(1) was fixed in the patch for #22088, while (2) was a single-line change.

#22088 largely made the start scripts more portable, and some variables can be
overridden via environment variables.

  • JAVAFX_HOME (defaults to /usr/share/openjfx/lib)
  • JOSM_PATH (defaults to /usr/share/${JOSM_VERSION}/${JOSM_VERSION}.jar, with JOSM_VERSION being one of josm or josm-latest)
  • JAVA_VERSION is now parsed from $JAVACMD -version instead of the binary path
  • The JAVACMD should now always be executable
  • dpkg is no longer required, although it is still checked for, which allows us to prioritize specific Java versions
  • The differences between the josm-latest and josm binaries is 2 lines
(edit) @18496   4 months taylor.smock

Fix #22156: ArithmeticException: / by zero in$Nth.match

This was caused by nth%: 0, as x % 0 will throw a divide by 0

(edit) @18495   4 months taylor.smock

Fix since xxx

(edit) @18494   4 months taylor.smock

Fix #22115: Extract methods from LatLon into ILatLon where they are generally applicable

This also removes calls to Node#getCoor where possible, which reduces
the number of memory allocations in SearchCompiler#match, and overall
allocations due to Node#getCoor

(edit) @18493   4 months taylor.smock

PMD/Checkstyle: if( -> if (

(edit) @18492   4 months stoecker

fix #22109 - fix IPv6 detection, as fails in Java.isReachable() nowadays

(edit) @18491   4 months taylor.smock

Fix #20823: Reject uploads that do not follow either comment policy or source policy (patch by ljdelight)

This fixes an issue where a the length of the comment or source was checked first,
and a warning instead of a rejection was generated when the upload policy would
have otherwise rejected the comment or source.

This also performs the validation check first, prior to the user being able to
make changes in the upload dialog UI, so that the initial dialog state matches
the upload policy.

(edit) @18490   4 months Don-vip

JavaFX 17.0.3 binaries not yet available on github, keep 17.0.2

(edit) @18489   4 months Don-vip

see #22104 - fix deprecation warnings

(edit) @18488   4 months Don-vip

see #21005 - java 18 support

(edit) @18487   4 months taylor.smock

PMD/Checkstyle fixes for r18485

(edit) @18486   4 months taylor.smock

Fix CID 1489883: Dereference null return value

This was introduced in r18475, but it was unlikely to ever be a problem,
as the constructor used sets the default element attributes to a non-null

(edit) @18485   4 months taylor.smock

SonarLint: Fix most recent code smells

This also fixes some tests so that the JOSMTestRules is more
accurate for them.

(edit) @18484   4 months taylor.smock


This is mostly due to a false positive (the only way
for mainJOSM to be called with null is if
new ProgramArguments throws an exception, but we
exit the program in that case using Lifecycle.exitJosm).

In any case, moving mainJOSM into the try-catch
block should be marginally clearer, in so far as
it is easier to tell that we don't run mainJOSM
if we cannot parse the program arguments.

(edit) @18483   4 months taylor.smock

NotesDialog: Fix test broken in r18479, see #21600

The test ensures that updates to the dialog do not
cause a IOOBE, which often only occurs when a note
is closed and the user is filtering for open notes.

(edit) @18482   4 months taylor.smock

VectorDataSet: Fix MT_CORRECTNESS issues

This was most likely caused by using Collections.synchronizedCollection
initially, and then switching to a ConcurrentHashMap.

(edit) @18481   4 months taylor.smock

i18n: \r -> <br>

(edit) @18480   4 months taylor.smock

Fix JOSM #21422: Tile cache stats unreadable in debug mode (patch by gaben)

This also changes the organization of stats a bit.

(edit) @18479   4 months taylor.smock

Fix #21600: When setting/updating notes, fire selectionChanged events (patch by gaben)

(edit) @18478   4 months taylor.smock

Really fix failing tests in VectorDataSetTest

The test failed ~50% of the time (it depended upon the HashSet ordering).
We now use an ArrayList instead, and a the optimization that caused the
failure is not as significant anymore (node search is significantly cheaper
since r18465).

(edit) @18477   4 months taylor.smock

Fix tests broken in r18473, see #22032

This was caused by vector tiles not always having points,
then ways, then polygons. The code now ensures that we
add points first, followed by ways, and finally by polygons.

(edit) @18476   4 months taylor.smock

Fix #21727: Make MacOS local builds possible without signature (patch by Stereo)

(edit) @18475   4 months taylor.smock

Fix #21794: Allow for cases where tags can be URL or key values in Tag2Link

This also adds a Pattern cache (memory only) to avoid many allocations for
the same pattern in Tag2Link.

(edit) @18474   4 months taylor.smock

Replace @since xxx

(edit) @18473   4 months taylor.smock

Fix #22032: Various memory enhancements for MVT tiles

There is about a 88% decrease in memory allocations due to MVT tiles.

The majority of changes came from the following:

  1. Avoiding ArrayList#grow calls by using a ByteArrayOutputStream that gets passed around
  2. Caching nodes to avoid QuadBuckets#search calls

This additionally fixes a bug where VectorRelation#setMembers does not
work properly and adds a putAll method in Tagged (there is a default

(edit) @18472   4 months taylor.smock

Fix some coverity warnings

  • CID 1489777: FB.RV_RETURN_VALUE_IGNORED_BAD_PRACTICE Fixed by using Files.deleteIfExists instead of File.delete. We do catch the security exception and print a message for the user.
  • CID 1489773: FORWARD_NULL Fixed by synchronizing around the potential null object. Shouldn't be too expensive, as it is mostly UI loop.
(edit) @18471   4 months stoecker

fix dead code

(edit) @18470   4 months taylor.smock

Reduce memory allocations and CPU calls in Way#getNodePairs

This reduces memory allocations and CPU calls by ~33% for the method call
by setting the size of the list at construction time.

See #20716 comment:68.

(edit) @18469   4 months taylor.smock

Fix #21997: Add a general preset for power=generator (patch by skyper)

(edit) @18468   4 months taylor.smock

Fix #21893: Align movement of objects when the last selected way has two nodes and the ctrl/meta modifier is pressed (patch by cmuelle8, modified)

(edit) @18467   4 months taylor.smock

Fix #20025, #22080: Notify users when changeset tags are programmatically modified

This only works for non-late upload hooks.

(edit) @18466   4 months taylor.smock

Fix #21813: Improve marker handling in sessions and #21923: Improve session workflow/Add "save session" (patch by Bjoeni)

  • Allow saving a previously saved session
  • Add "File" -> "Save Session"
  • Add shortcuts for saving sessions
  • Add warning if a layer in a session is being removed when saving over the session
  • Improve GPX marker handling
Note: See TracRevisionLog for help on using the revision log.