Modify

Opened 23 months ago

Last modified 3 months ago

#21570 new defect

Open changesets don't show up in the upload dialog

Reported by: gaben Owned by: team
Priority: normal Milestone:
Component: Core Webstart Version:
Keywords: template_report open changeset Cc:

Description (last modified by gaben)

What steps will reproduce the problem?

  1. Use JOSM JNLP distribution (WebStart)
  2. Make some changes, upload and don't close the changeset
  3. Make changes again
  4. Try to upload to the same, still open changeset
  5. Click on the changeset refresh button

What is the expected result?

The changeset created in step 2 shows up in the upload dialog changeset list, upload to the same changeset possible. The changeset refresh button works.

What happens instead?

Sometimes the changeset doesn't show up, as if it would be closed. Clicking on the changeset refresh button results in a dialog, saying "No open changesets" or similar.

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

After JOSM restart, the open changesets always show up in the changeset list.
It's a long-standing issue and #19780 may be related.

In Postman, the OSM API returns the expected result (at least one open changeset) in reasonable time (no timeout or server error).

URL:https://josm.openstreetmap.de/svn/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2021-11-12 11:23:59 +0100 (Fri, 12 Nov 2021)
Build-Date:2021-11-13 02:31:03
Revision:18323
Relative:URL: ^/trunk

Identification: JOSM/1.5 (18323 hu) Windows 10 64-Bit
OS Build number: Windows 10 Pro for Workstations 2009 (19043)
Memory Usage: 2390 MB / 7266 MB (1279 MB allocated, but free)
Java version: 1.8.0_311-b11, Oracle Corporation, Java HotSpot(TM) 64-Bit Server VM
Look and Feel: com.sun.java.swing.plaf.windows.WindowsLookAndFeel
Screen: \Display0 1920×1200 (scaling 1.00×1.00)
Maximum Screen Size: 1920×1200
Best cursor sizes: 16×16→32×32, 32×32→32×32
System property file.encoding: Cp1250
System property sun.jnu.encoding: Cp1250
Locale info: hu_HU
Numbers with default locale: 1234567890 -> 1234567890
VM arguments: [-Djava.security.manager, -Djnlp.application.href=https://josm.openstreetmap.de/download/josm-latest.jnlp, -Djava.util.Arrays.useLegacyMergeSort=true, -Djnlp.tk=awt, -Djnlpx.jvm=<java.home>\bin\javaw.exe, -Djnlpx.splashport=54425, -Djnlpx.home=<java.home>\bin, -Djnlpx.remove=false, -Djnlpx.offline=false, -Djnlpx.relaunch=true, -Djnlpx.session.data=%UserProfile%\AppData\Local\Temp\session524324530548763547, -Djnlpx.heapsize=NULL,NULL, -Djava.security.policy=file:<java.home>\lib\security\javaws.policy, -DtrustProxy=true, -Djnlpx.origFilenameArg=%UserProfile%\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\31\583aa85f-4236f0ee]
Dataset consistency test: No problems found

Attachments (0)

Change History (17)

comment:1 Changed 23 months ago by gaben

Description: modified (diff)

comment:2 Changed 23 months ago by marcello@…

The changeset reload button depends on network availability. See if the API server is good. Also, changesets timeout on the server all by themselves.

comment:3 Changed 23 months ago by gaben

Description: modified (diff)

Before writing the ticket I checked the OSM API and it returns the expected result, so it's a JOSM thing.

Updated the ticket according to this.

comment:4 Changed 22 months ago by gaben

I can't reproduce on Linux with openjdk 11.0.11. Very interesting.

comment:5 Changed 22 months ago by gaben

Today I tried editing while running the debugger in the background, but it just works fine. Although yesterday popped up randomly again. I need to map with a debugger, I guess :(

comment:6 Changed 22 months ago by gaben

I ran into the issue again but forgot the debugger. This time at least I have a screen record, just in case :)

I think it's something to do with changeset caching. JOSM was running a few hours idle in the background.

Last edited 22 months ago by gaben (previous) (diff)

comment:7 Changed 22 months ago by gaben

I'm getting closer to reproduction. This time forgot to add an entrance, tried uploading seconds after the first upload and the changeset already not showing up in the list. JOSM is running idle for hours in the background.

comment:8 Changed 21 months ago by gaben

Now I lost path. After restart, open changesets still show up, but clicking on the refresh button says there isn't any, so JOSM settles in an impossible state.
This time by restart I mean restart from the file menu. AFAIK it means the JVM not shutting down, so maybe it is a #javabug? Of course I forgot the debugger again...

comment:9 Changed 19 months ago by gaben

Component: CoreCore Webstart

I suspect it's webstart related issue because when I'm running JOSM jar from IDE with a debugger it never occurs.

comment:10 Changed 19 months ago by skyper

Is this only related to the upload dialog? Can you take a look at the changeset manager and if all CSs are listed there if you request your changesets.

comment:11 Changed 18 months ago by gaben

Interesting. When I refresh changesets from the upload dialog, the changeset list not updating. But when I download my changesets (all, not only open ones) within the changeset manager, the upload dialog gets refreshed and the open ones show up.

comment:12 Changed 18 months ago by marcello@…

This could be an intermittent server side issue. What happens if you keep hitting the refresh changeset button (after a reasonable delay)? Does it always fail?

comment:13 Changed 18 months ago by marcello@…

I see that ChangesetManagementPanel uses DownloadOpenChangesetsTask but ChangesetCacheManager uses ChangesetQueryTask for virtually the same thing.

Besides the useless code duplication DownloadOpenChangesetsTask does some funny things with user authentication. So it may be an issue with user auth too. Are you using Oauth or basic authentication (in Preferences|OSM Server)?

comment:14 Changed 18 months ago by gaben

Description: modified (diff)

I tried that in the past. The refresh button does nothing even after a minute or two, unfortunately. Also, the server is available and returns the expected data when occurs, verified multiple times in Postman.

Yeah, the code duplication doesn't help either. I tried debugging the relevant code, but when launched with .jar it never occurred. It has something to do with WebStart. I'm using OAuth.

Updated the possible reproduction steps.

comment:15 Changed 18 months ago by gaben

Also, the refresh button doesn't generate network traffic when the issue occurs, checked in Wireshark.

comment:16 Changed 6 months ago by gaben

Description: modified (diff)

clarification

comment:17 Changed 3 months ago by gaben

Up, the issue still persists, dealing with it every day.

A workaround is to open the Changeset Manager and then click on the "My changesets" button.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as new The owner will remain team.
as The resolution will be set.
to The owner will be changed from team to the specified user.
The owner will change to gaben
as duplicate The resolution will be set to duplicate.The specified ticket will be cross-referenced with this ticket
The owner will be changed from team to anonymous.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.