Modify

Opened 4 months ago

Last modified 4 months ago

#23808 reopened defect

Cannot align nodes in circle on a specific way segment

Reported by: jfd553 Owned by: team
Priority: normal Milestone:
Component: Core Version:
Keywords: template_report Cc: taylor_smock

Description

What steps will reproduce the problem?

  1. split a specific way (1301600687) to align nodes of a circular segment.
  2. select the segment to align nodes in circle (O).
  3. Error/warning message: "One or more nodes involved in this action may have additional referrers".

What is the expected result?

Align nodes in circle as it does for all other features I tried.

What happens instead?

Doesn't do anything - because of error/warning 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: 2024-07-02 17:10:50 +0200 (Tue, 02 Jul 2024)
Revision:19128
Build-Date:2024-07-03 01:31:15
URL:https://josm.openstreetmap.de/svn/trunk

Identification: JOSM/1.5 (19128 en) Windows 11 64-Bit
OS Build number: Windows 10 Pro 23H2 (22631)
Memory Usage: 3064 MB / 8140 MB (880 MB allocated, but free)
Java version: 21.0.3+9-LTS, Azul Systems, Inc., OpenJDK 64-Bit Server VM
Look and Feel: com.sun.java.swing.plaf.windows.WindowsLookAndFeel
Screen: \Display0 1920x1080x32bpp@60Hz (scaling 1.00×1.00)
Maximum Screen Size: 1920×1080
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: en_US
Numbers with default locale: 1234567890 -> 1234567890
VM arguments: [-Dicedtea-web.bin.location=%UserProfile%\AppData\Local\Programs\OpenWebStart\javaws, -Djava.util.Arrays.useLegacyMergeSort=true, --add-reads=java.base=ALL-UNNAMED,java.desktop, --add-reads=java.desktop=ALL-UNNAMED,java.naming, --add-reads=java.naming=ALL-UNNAMED,java.desktop, --add-exports=java.desktop/sun.awt=ALL-UNNAMED,java.desktop, --add-exports=java.desktop/javax.jnlp=ALL-UNNAMED,java.desktop, --add-exports=java.base/com.sun.net.ssl.internal.ssl=ALL-UNNAMED,java.desktop, --add-exports=java.base/sun.net.www.protocol.jar=ALL-UNNAMED,java.desktop, --add-exports=java.base/sun.security.action=ALL-UNNAMED,java.desktop, --add-exports=java.base/sun.security.provider=ALL-UNNAMED,java.desktop, --add-exports=java.base/sun.security.util=ALL-UNNAMED,java.desktop, --add-exports=java.base/sun.security.validator=ALL-UNNAMED,java.desktop, --add-exports=java.base/sun.security.x509=ALL-UNNAMED,java.desktop, --add-exports=java.base/jdk.internal.util.jar=ALL-UNNAMED,java.desktop, --add-exports=java.base/sun.net.www.protocol.http=ALL-UNNAMED,java.desktop, --add-exports=java.desktop/sun.awt.X11=ALL-UNNAMED,java.desktop, --add-exports=java.desktop/sun.applet=ALL-UNNAMED,java.desktop,jdk.jsobject, --add-exports=java.naming/com.sun.jndi.toolkit.url=ALL-UNNAMED,java.desktop, --add-modules=java.scripting,java.sql,javafx.controls,javafx.media,javafx.swing,javafx.web, --add-exports=java.desktop/com.apple.eawt=ALL-UNNAMED, --add-exports=java.desktop/com.sun.imageio.spi=ALL-UNNAMED, --add-exports=java.desktop/com.sun.imageio.plugins.jpeg=ALL-UNNAMED, --add-exports=javafx.graphics/com.sun.javafx.application=ALL-UNNAMED, --add-exports=jdk.deploy/com.sun.deploy.config=ALL-UNNAMED, --add-opens=java.base/java.lang=ALL-UNNAMED, --add-opens=java.base/java.nio=ALL-UNNAMED, --add-opens=java.base/jdk.internal.loader=ALL-UNNAMED, --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED, --add-opens=java.desktop/javax.imageio.spi=ALL-UNNAMED, --add-opens=java.desktop/javax.swing.text.html=ALL-UNNAMED, --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED, -Djava.security.manager=allow]
Dataset consistency test: No problems found

Plugins:
+ ImportImagePlugin (36184)
+ PicLayer (1.0.3)
+ apache-commons (36273)
+ ejml (36176)
+ geotools (36273)
+ jackson (36273)
+ jaxb (36118)
+ jts (36004)
+ measurement (36256)
+ reverter (36256)
+ tageditor (36258)
+ turnlanes-tagging (0.0.5)
+ turnrestrictions (36226)
+ utilsplugin2 (36241)

Last errors/warnings:
- 00000.280 W: extended font config - overriding 'filename.Malgun_Gothic=malgun.ttf' with 'MALGUN.TTF'
- 00000.282 W: extended font config - overriding 'filename.Myanmar_Text=mmrtext.ttf' with 'MMRTEXT.TTF'
- 00000.283 W: extended font config - overriding 'filename.Mongolian_Baiti=monbaiti.ttf' with 'MONBAITI.TTF'
- 00002.723 W: Unable to request certificate of https://roottest-g3.pkioverheid.nl
- 00003.179 W: Unable to request certificate of https://roottest-g3.pkioverheid.nl
- 00008.843 E: unable to find dependency jaxb for plugin geotools
- 00835.317 W: java.net.SocketTimeoutException: Read timed out. Cause: java.net.SocketTimeoutException: Read timed out
- 02504.357 W: java.net.SocketTimeoutException: Read timed out. Cause: java.net.SocketTimeoutException: Read timed out

Attachments (4)

WayThatDoesNot Work.png (3.6 MB ) - added by jfd553 4 months ago.
Print screen of JOSM when getting the error/warning message.
WayIdThatDoesNot Work.txt (3.4 KB ) - added by jfd553 4 months ago.
Description of the way I can't work with: Yellowhead Highway (1301600687) before being split to align nodes in circle for a segment.
23808.patch (5.6 KB ) - added by taylor.smock 4 months ago.
Add buttons to notification to download referrers
23808.png (187.6 KB ) - added by taylor.smock 4 months ago.
Screenshot of attachment:23808.patch

Change History (22)

by jfd553, 4 months ago

Attachment: WayThatDoesNot Work.png added

Print screen of JOSM when getting the error/warning message.

comment:1 by stoecker, 4 months ago

Resolution: worksforme
Status: newclosed

You're trying to change an object which isn't fully downloaded. Simply download the object and it's sub elements (nodes) completely (i.e. re-download around the object or select the elements (including nodes) and call "update selected" or use similar methods.

If you are sure that you have all referrers downloaded and can reproduce this, reopen the report with details needed for us to reproduce the issue.

by jfd553, 4 months ago

Attachment: WayIdThatDoesNot Work.txt added

Description of the way I can't work with: Yellowhead Highway (1301600687) before being split to align nodes in circle for a segment.

comment:2 by stoecker, 4 months ago

Cc: taylor_smock added
Resolution: worksforme
Status: closedreopened

@Taylor:
"Download object..." with "download referrers" enabled does not set the correct bits, so any element downloaded that way will be incorrectly flagged.

@jfd553:
Update selected wont work, it does not download additional referrers. Best solution is to view the whole object and download the area around it (show it completely and go to download which has the view preselected) until "download object" gets fixed.

comment:3 by GerdP, 4 months ago

When I download the way 1301600687 with referrers the way has the status "all-referrers-downloaded".
The nodes don't because their other referrers are not known.

comment:4 by jfd553, 4 months ago

If it helps...

The way/nodes were downloaded using two successive overlapping windows (a delineation of the coverage I used follows).

If I expand the download area to cover both initial windows, the problem is solved.

Daniel

<?xml version='1.0' encoding='UTF-8'?>
<osm version='0.6' generator='JOSM'>

<node id='-25377' action='modify' visible='true' lat='53.54562098946' lon='-117.14543482645' />
<node id='-25378' action='modify' visible='true' lat='53.53298868095' lon='-117.14543685846' />
<node id='-25379' action='modify' visible='true' lat='53.53297352862' lon='-116.87874874767' />
<node id='-25380' action='modify' visible='true' lat='53.52795146212' lon='-116.87874955534' />
<node id='-25381' action='modify' visible='true' lat='53.52794756955' lon='-116.81024667517' />
<node id='-25382' action='modify' visible='true' lat='53.54223741572' lon='-116.81024437677' />
<node id='-25383' action='modify' visible='true' lat='53.54224095545' lon='-116.87255887036' />
<node id='-25384' action='modify' visible='true' lat='53.54560549015' lon='-116.87255832909' />
<way id='-615' action='modify' visible='true'>

<nd ref='-25377' />
<nd ref='-25378' />
<nd ref='-25379' />
<nd ref='-25380' />
<nd ref='-25381' />
<nd ref='-25382' />
<nd ref='-25383' />
<nd ref='-25384' />
<nd ref='-25377' />

</way>

</osm>

comment:5 by taylor.smock, 4 months ago

"Download object..." with "download referrers" enabled does not set the correct bits, so any element downloaded that way will be incorrectly flagged.

I think this depends upon what "download referrers" is supposed to do. The download window (to me) indicates that it will go up to relations, but not down and then back up.
So way -> relation instead of way -> node -> (way|relation).
But we should have a way for users to select and update data; I thought Update modified did that, but I guess not.
I believe we have to make two calls per node with the current API; one to /node/:id/ways, and one to /node/:id/relations. This isn't particularly efficient.

comment:6 by GerdP, 4 months ago

Please don't change the current logic. If I chose to download a (list of) specific object(s) I really don't want unrelated objects.
Typically it is much faster to download the area around the nodes which should be moved. If that is not feasable the user can use "Download parent ways/relations" before moving the nodes.

comment:7 by stoecker, 4 months ago

I agree, that's a new action (which we probably already have somewhere). Maybe we can add this to the error message. Like "Load all references"?

by taylor.smock, 4 months ago

Attachment: 23808.patch added

Add buttons to notification to download referrers

by taylor.smock, 4 months ago

Attachment: 23808.png added

comment:8 by taylor.smock, 4 months ago

Were you thinking of something like

Screenshot of attachment:23808.patch

I'll note that sometimes users will want to download referrers, but I think they'll mostly want to use download along.

Realistically, download referrers will be useful for something that is considerably spread out.

comment:9 by stoecker, 4 months ago

Sounds ok, we could test what users think. Thought it should be more generic. If we use this, we'll need it at many places.

in reply to:  9 comment:10 by taylor.smock, 4 months ago

Generic would be nice, I just don't want to generify it until I know the various places where it might be used.

For example, instead of doing what I did inside a specific action, we could, for example, add a new method to Notification which takes a list of primitives that need to be updated.

However, that will only work for items that use notifications. If something uses a JOptionPane instead, we would have to do something a little different there.

comment:11 by taylor.smock, 4 months ago

For split ways, see #23810.

Of note, it uses a dialog instead of a notification.

comment:12 by GerdP, 4 months ago

I think the question is if we want to discourage any action which moves a node that is known in OSM when it is not clear if parents are downloaded. Also with the patch the behaviour is inconsequent. You can drag, distribute or align nodes, but "Align in circle" complains. I see no good reason for this.

comment:13 by skyper, 4 months ago

The problem is that without all parent ways downloaded you can easily change the geometry of the invisible ways unintentionally.
In the past, we were checking if the node is in a downloaded area which had the disadvantage that no download area at all was interpreted as inside a download area. Now, with the flag, we have the concrete info for each node.

Moving a node only for a few centimeters is usually no problem but a few meters can already lead to major changes in geometry. Working with incomplete data like route relations, where I only download the members without any download area, I still have to remind me that I have to download the parent objects of a node which is part of a way before I move it. I can see only one disadvantage in downloading many relations with e.g. bus stops or guideposts.

So, yes, I would prefer a warning for all these actions moving nodes without all referrer downloaded, but we should offer an option to download the parent objects with the common settings do it automatically for the action, for the session and for ever.

comment:14 by jfd553, 4 months ago

As GerdP wrote, I don't see why I can drag, distribute or align nodes in the segment I am working with, but "Align to Circle" is forbidden. In any case, I would prefer a warning (with reference to a full explanation) rather than being prevented from acting.

The warning message "One or more nodes involved in this action may have additional referrers" made no sense to me – as a user.
The entire way was downloaded, no relation were attached to the nodes, and it wouldn't make sense to have to download hundreds of Km of highway (the only relation involved) to move a few nodes in the (downloaded) segment with which I worked.

Thanks, and keep doing your great job.

comment:15 by GerdP, 4 months ago

If you download a way you can't be sure that the nodes of the way are only used by that way. In some areas of the world it is very likely that a highway is connected to landuse or building ways. These other ways are referrers of the shared node(s).

comment:16 by jfd553, 4 months ago

I can understand that, but I still can't figure out what the problem was with the case I submitted. It's probably something that's happening under the hood that the user doesn't see :-)

comment:17 by taylor.smock, 4 months ago

Resolution: fixed
Status: reopenedclosed

In 19175/josm:

Fix #23846: Setting all referrers downloaded doesn't happen if the target object has been modified

This may also fix (or partially fix) #23808 and #23810.

comment:18 by taylor.smock, 4 months ago

Resolution: fixed
Status: closedreopened

Modify Ticket

Change Properties
Set your email in Preferences
Action
as reopened The owner will remain team.
as The resolution will be set. Next status will be 'closed'.
to The owner will be changed from team to the specified user. Next status will be 'new'.
Next status will be 'needinfo'. The owner will be changed from team to jfd553.
as duplicate The resolution will be set to duplicate. Next status will be 'closed'. The specified ticket will be cross-referenced with this ticket.

Add Comment


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