Modify

#22744 closed defect (fixed)

Deleting the OAuth2 token and switching back to reuse OAuth1 does not work.

Reported by: skyper Owned by: team
Priority: normal Milestone: 23.02
Component: Core Version: latest
Keywords: template_report OAuth2 delete token Cc: taylor.smock

Description (last modified by skyper)

What steps will reproduce the problem?

  1. Start JOSM with OAuth1 set up
  2. Create/Get the OAuth2 token in OSM Server preferences
  3. Change back to OAuth1 settings (token is still displayed)
  4. Click the button "Test Access Token"

What is the expected result?

The test is successful

What happens instead?

IAE: Parameter 'accessToken' must not be null

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

Once even the dialog to grant access popped up but I was not able to reproduce it, so far.
Edit: It just popped up again and the button to grant access is disabled.
See #20768

Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2023-02-13 21:53:05 +0100 (Mon, 13 Feb 2023)
Revision:18661
Build-Date:2023-02-14 02:30:56
URL:https://josm.openstreetmap.de/svn/trunk

Identification: JOSM/1.5 (18661 en) Linux Debian GNU/Linux 11 (bullseye)
Java version: 17.0.6+10-Debian-1deb11u1, Debian, OpenJDK 64-Bit Server VM
Look and Feel: com.formdev.flatlaf.FlatDarculaLaf
Desktop environment: GNOME
Java package: openjdk-17-jre:amd64-17.0.6+10-1~deb11u1
libcommons-compress-java: libcommons-compress-java:all-1.20-1
libcommons-logging-java: libcommons-logging-java:all-1.2-2
fonts-noto: fonts-noto:all-20201225-1
VM arguments: [--module-path=/usr/share/openjfx/lib, --add-modules=java.scripting,java.sql,javafx.controls,javafx.media,javafx.swing,javafx.web, -Djosm.restart=true, -Djosm.dir.name=JOSM-latest, -Djava.net.useSystemProxies=true, --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:
+ flatlaf (36036)

Last errors/warnings:
- 00050.736 E: Failed to locate image 'bus.png'
- 00463.232 E: Handled by bug report queue: java.lang.IllegalArgumentException: Parameter 'accessToken' must not be null



=== REPORTED CRASH DATA ===
BugReportExceptionHandler#handleException:
No data collected.

Warning issued by: BugReportExceptionHandler#handleException

=== STACK TRACE ===
Thread: AWT-EventQueue-0 (21) of main
java.lang.IllegalArgumentException: Parameter 'accessToken' must not be null
	at org.openstreetmap.josm.tools.CheckParameterUtil.ensureParameterNotNull(CheckParameterUtil.java:26)
	at org.openstreetmap.josm.gui.oauth.TestAccessTokenTask.<init>(TestAccessTokenTask.java:63)
	at org.openstreetmap.josm.gui.preferences.server.OAuthAuthenticationPreferencesPanel$TestAuthorisationAction.actionPerformed(OAuthAuthenticationPreferencesPanel.java:442)
	at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
	at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313)
	at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
	at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
	at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
	at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
	at java.desktop/java.awt.Component.processMouseEvent(Component.java:6626)
	at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3389)
	at java.desktop/java.awt.Component.processEvent(Component.java:6391)
	at java.desktop/java.awt.Container.processEvent(Container.java:2266)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5001)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:746)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:744)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:743)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:117)
	at java.desktop/java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:191)
	at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:236)
	at java.desktop/java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:234)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
	at java.desktop/java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:234)
	at java.desktop/java.awt.Dialog.show(Dialog.java:1080)
	at java.desktop/java.awt.Component.show(Component.java:1728)
	at java.desktop/java.awt.Component.setVisible(Component.java:1675)
	at java.desktop/java.awt.Window.setVisible(Window.java:1036)
	at java.desktop/java.awt.Dialog.setVisible(Dialog.java:1016)
	at org.openstreetmap.josm.gui.preferences.PreferenceDialog.setVisible(PreferenceDialog.java:145)
	at org.openstreetmap.josm.actions.PreferencesAction.run(PreferencesAction.java:119)
	at org.openstreetmap.josm.actions.PreferencesAction.actionPerformed(PreferencesAction.java:104)
	at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)
	at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313)
	at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
	at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)
	at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)
	at java.desktop/java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:297)
	at java.desktop/java.awt.Component.processMouseEvent(Component.java:6626)
	at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3389)
	at java.desktop/java.awt.Component.processEvent(Component.java:6391)
	at java.desktop/java.awt.Container.processEvent(Container.java:2266)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5001)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:746)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:744)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:743)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

=== RUNNING THREADS ===
Thread: Finalizer (3) of system
java.base@17.0.6/java.lang.Object.wait(Native Method)
java.base@17.0.6/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
java.base@17.0.6/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
java.base@17.0.6/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:172)

Thread: CacheEventQueue.QProcessor-TMS_BLOCK_v2Thread-2 (45) of main
java.base@17.0.6/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.6/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
java.base@17.0.6/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
java.base@17.0.6/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3463)
java.base@17.0.6/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434)
java.base@17.0.6/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1623)
java.base@17.0.6/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
java.base@17.0.6/java.lang.Thread.run(Thread.java:833)

Thread: CacheEventQueue.QProcessor-WMTS_BLOCK_v2Thread-9 (72) of main
java.base@17.0.6/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.6/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
java.base@17.0.6/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
java.base@17.0.6/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3463)
java.base@17.0.6/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434)
java.base@17.0.6/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1623)
java.base@17.0.6/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
java.base@17.0.6/java.lang.Thread.run(Thread.java:833)

Thread: DestroyJavaVM (56) of main

Thread: File Watcher (27) of main
java.base@17.0.6/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.6/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
java.base@17.0.6/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
java.base@17.0.6/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3463)
java.base@17.0.6/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434)
java.base@17.0.6/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1623)
java.base@17.0.6/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:485)
java.base@17.0.6/java.util.concurrent.LinkedBlockingDeque.take(LinkedBlockingDeque.java:673)
java.base@17.0.6/sun.nio.fs.AbstractWatchService.take(AbstractWatchService.java:118)
app//org.openstreetmap.josm.io.FileWatcher.processEvents(FileWatcher.java:120)
app//org.openstreetmap.josm.io.FileWatcher$$Lambda$425/0x0000000800f869d0.run(Unknown Source)
java.base@17.0.6/java.lang.Thread.run(Thread.java:833)

Thread: TimerQueue (23) of system
java.base@17.0.6/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.6/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
java.base@17.0.6/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1672)
java.base@17.0.6/java.util.concurrent.DelayQueue.take(DelayQueue.java:229)
java.desktop@17.0.6/javax.swing.TimerQueue.run(TimerQueue.java:172)
java.base@17.0.6/java.lang.Thread.run(Thread.java:833)

Thread: RemoteControl HTTP Server (53) of main
java.base@17.0.6/sun.nio.ch.Net.accept(Native Method)
java.base@17.0.6/sun.nio.ch.NioSocketImpl.accept(NioSocketImpl.java:755)
java.base@17.0.6/java.net.ServerSocket.implAccept(ServerSocket.java:675)
java.base@17.0.6/java.net.ServerSocket.platformImplAccept(ServerSocket.java:641)
java.base@17.0.6/java.net.ServerSocket.implAccept(ServerSocket.java:617)
java.base@17.0.6/java.net.ServerSocket.implAccept(ServerSocket.java:574)
java.base@17.0.6/java.net.ServerSocket.accept(ServerSocket.java:532)
app//org.openstreetmap.josm.io.remotecontrol.RemoteControlHttpServer.run(RemoteControlHttpServer.java:104)

Thread: CacheEventQueue.QProcessor-WMS_BLOCK_v2Thread-8 (71) of main
java.base@17.0.6/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.6/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
java.base@17.0.6/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
java.base@17.0.6/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3463)
java.base@17.0.6/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434)
java.base@17.0.6/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1623)
java.base@17.0.6/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
java.base@17.0.6/java.lang.Thread.run(Thread.java:833)

Thread: Timer-0 (50) of main
java.base@17.0.6/java.lang.Object.wait(Native Method)
java.base@17.0.6/java.util.TimerThread.mainLoop(Timer.java:563)
java.base@17.0.6/java.util.TimerThread.run(Timer.java:516)

Thread: Map Status Collector (69) of main
java.base@17.0.6/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.6/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
java.base@17.0.6/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
java.base@17.0.6/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3463)
java.base@17.0.6/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434)
java.base@17.0.6/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1623)
java.base@17.0.6/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
app//org.openstreetmap.josm.gui.MapStatus$Collector.run(MapStatus.java:438)
java.base@17.0.6/java.lang.Thread.run(Thread.java:833)

Thread: JCS-ElementEventQueue-Thread-1 (44) of main
java.base@17.0.6/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.6/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
java.base@17.0.6/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
java.base@17.0.6/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3463)
java.base@17.0.6/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434)
java.base@17.0.6/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1623)
java.base@17.0.6/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
java.base@17.0.6/java.lang.Thread.run(Thread.java:833)

Thread: AWT-XAWT (18) of system
java.desktop@17.0.6/sun.awt.X11.XToolkit.waitForEvents(Native Method)
java.desktop@17.0.6/sun.awt.X11.XToolkit.run(XToolkit.java:683)
java.desktop@17.0.6/sun.awt.X11.XToolkit.run(XToolkit.java:647)
java.base@17.0.6/java.lang.Thread.run(Thread.java:833)

Thread: WeakCollectionCleaner (47) of main
java.base@17.0.6/java.lang.Object.wait(Native Method)
java.base@17.0.6/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
java.base@17.0.6/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
org.geotools.util.WeakCollectionCleaner.run(WeakCollectionCleaner.java:65)

Thread: changeset-updater-0 (55) of main
java.base@17.0.6/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.6/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
java.base@17.0.6/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1672)
java.base@17.0.6/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
java.base@17.0.6/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
java.base@17.0.6/java.lang.Thread.run(Thread.java:833)

Thread: AWT-Shutdown (22) of system
java.base@17.0.6/java.lang.Object.wait(Native Method)
java.base@17.0.6/java.lang.Object.wait(Object.java:338)
java.desktop@17.0.6/sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:291)
java.base@17.0.6/java.lang.Thread.run(Thread.java:833)

Thread: AWT-EventQueue-0 (21) of main
Stacktrace see above.

Thread: ForkJoinPool.commonPool-worker-4 (64) of main
java.base@17.0.6/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.6/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
java.base@17.0.6/java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1724)
java.base@17.0.6/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1623)
java.base@17.0.6/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)

Thread: FileSystemWatchService (26) of main
java.base@17.0.6/sun.nio.fs.LinuxWatchService.poll(Native Method)
java.base@17.0.6/sun.nio.fs.LinuxWatchService$Poller.run(LinuxWatchService.java:314)
java.base@17.0.6/java.lang.Thread.run(Thread.java:833)

Thread: Reference Handler (2) of system
java.base@17.0.6/java.lang.ref.Reference.waitForReferencePendingList(Native Method)
java.base@17.0.6/java.lang.ref.Reference.processPendingReferences(Reference.java:253)
java.base@17.0.6/java.lang.ref.Reference$ReferenceHandler.run(Reference.java:215)

Thread: message-notifier-0 (54) of main
java.base@17.0.6/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.6/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
java.base@17.0.6/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1672)
java.base@17.0.6/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
java.base@17.0.6/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
java.base@17.0.6/java.lang.Thread.run(Thread.java:833)

Thread: CacheEventQueue.QProcessor-MVT_BLOCK_v2Thread-10 (73) of main
java.base@17.0.6/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.6/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
java.base@17.0.6/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
java.base@17.0.6/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3463)
java.base@17.0.6/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434)
java.base@17.0.6/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1623)
java.base@17.0.6/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
java.base@17.0.6/java.lang.Thread.run(Thread.java:833)

Thread: Timer-2 (68) of main
java.base@17.0.6/java.lang.Object.wait(Native Method)
java.base@17.0.6/java.lang.Object.wait(Object.java:338)
java.base@17.0.6/java.util.TimerThread.mainLoop(Timer.java:537)
java.base@17.0.6/java.util.TimerThread.run(Timer.java:516)

Thread: main-worker-0 (20) of main
java.base@17.0.6/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.6/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
java.base@17.0.6/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
java.base@17.0.6/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3463)
java.base@17.0.6/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434)
java.base@17.0.6/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1623)
java.base@17.0.6/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
java.base@17.0.6/java.lang.Thread.run(Thread.java:833)

Thread: image-fetcher-0 (40) of main
java.base@17.0.6/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.6/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
java.base@17.0.6/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
java.base@17.0.6/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3463)
java.base@17.0.6/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3434)
java.base@17.0.6/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1623)
java.base@17.0.6/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
java.base@17.0.6/java.lang.Thread.run(Thread.java:833)

Thread: Common-Cleaner (11) of InnocuousThreadGroup
java.base@17.0.6/java.lang.Object.wait(Native Method)
java.base@17.0.6/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
java.base@17.0.6/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:140)
java.base@17.0.6/java.lang.Thread.run(Thread.java:833)
java.base@17.0.6/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:162)

Thread: Weak reference cleaner (28) of main
java.base@17.0.6/java.lang.Object.wait(Native Method)
java.base@17.0.6/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
java.base@17.0.6/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
app//org.openstreetmap.josm.tools.ListenableWeakReference.clean(ListenableWeakReference.java:60)
app//org.openstreetmap.josm.tools.ListenableWeakReference$$Lambda$476/0x000000080100f2c0.run(Unknown Source)
java.base@17.0.6/java.lang.Thread.run(Thread.java:833)

Thread: Signal Dispatcher (4) of system

Thread: Java2D Disposer (17) of system
java.base@17.0.6/java.lang.Object.wait(Native Method)
java.base@17.0.6/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
java.base@17.0.6/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
java.desktop@17.0.6/sun.java2d.Disposer.run(Disposer.java:145)
java.base@17.0.6/java.lang.Thread.run(Thread.java:833)

Thread: GT authority factory disposer (46) of main
java.base@17.0.6/java.lang.Object.wait(Native Method)
java.base@17.0.6/java.util.TimerThread.mainLoop(Timer.java:563)
java.base@17.0.6/java.util.TimerThread.run(Timer.java:516)

Thread: RemoteControl HTTP Server (52) of main
java.base@17.0.6/sun.nio.ch.Net.accept(Native Method)
java.base@17.0.6/sun.nio.ch.NioSocketImpl.accept(NioSocketImpl.java:755)
java.base@17.0.6/java.net.ServerSocket.implAccept(ServerSocket.java:675)
java.base@17.0.6/java.net.ServerSocket.platformImplAccept(ServerSocket.java:641)
java.base@17.0.6/java.net.ServerSocket.implAccept(ServerSocket.java:617)
java.base@17.0.6/java.net.ServerSocket.implAccept(ServerSocket.java:574)
java.base@17.0.6/java.net.ServerSocket.accept(ServerSocket.java:532)
app//org.openstreetmap.josm.io.remotecontrol.RemoteControlHttpServer.run(RemoteControlHttpServer.java:104)

Thread: Notification Thread (12) of system

Thread: ForkJoinPool.commonPool-worker-5 (65) of main
java.base@17.0.6/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.6/java.util.concurrent.locks.LockSupport.parkUntil(LockSupport.java:410)
java.base@17.0.6/java.util.concurrent.ForkJoinPool.awaitWork(ForkJoinPool.java:1726)
java.base@17.0.6/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1623)
java.base@17.0.6/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)

Thread: Timer-1 (60) of main
java.base@17.0.6/java.lang.Object.wait(Native Method)
java.base@17.0.6/java.util.TimerThread.mainLoop(Timer.java:563)
java.base@17.0.6/java.util.TimerThread.run(Timer.java:516)

Thread: process reaper (74) of system
java.base@17.0.6/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.6/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
java.base@17.0.6/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:401)
java.base@17.0.6/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:903)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1061)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
java.base@17.0.6/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
java.base@17.0.6/java.lang.Thread.run(Thread.java:833)

Attachments (0)

Change History (12)

comment:1 by skyper, 14 months ago

Description: modified (diff)

comment:2 by taylor.smock, 14 months ago

Resolution: fixed
Status: newclosed

In 18662/josm:

Fix #22744, see #20768: Fix NPE when switching to authentication methods

The NPE occurs because the UI state and the saved preferences state does not
match. This is solved by saving the state to preferences and then reloading it.

This also fixes an issue where the http2 plugin would prevent the OAuth
workflow from working, due to differing default behaviors (see #22730).

comment:3 by skyper, 14 months ago

Resolution: fixed
Status: closedreopened

Sorry, does not work. With r18662 it is still the same. The request token dialog pops up periodically but I cannot accept the displayed OAuth1 token and upload does not work.

By the way, OAuth2 is missing completely as option in the dialog.

comment:4 by taylor.smock, 14 months ago

@skyper: Did you reopen the right ticket?

in reply to:  3 comment:5 by taylor.smock, 14 months ago

Replying to skyper:

Sorry, does not work. With r18662 it is still the same. The request token dialog pops up periodically but I cannot accept the displayed OAuth1 token and upload does not work.

I haven't been able to reproduce your issue with r18664.

I'm probably not doing exactly what you are doing. Can you upload a png/gif?

By the way, OAuth2 is missing completely as option in the dialog.

I really feel like I am missing something.

comment:6 by skyper, 14 months ago

Yes, I think so. I did not test the OAuth1 token after deleting the OAuth2.0 token but everything else is the same as two days ago.

I did restart JOSM but then even my OAuth1 token was deleted from preferences. Now, with a backup of my preferences from two days ago, I cannot reproduce as my OAuth1 token is deleted not displayed anymore when I delete the OAuth2.0 token which did not happen on my first try.

EDIT: The OAuth1 token is not displayed in preferences anymore but after a restart it is back again.

Last edited 14 months ago by skyper (previous) (diff)

in reply to:  4 ; comment:7 by taylor.smock, 14 months ago

Replying to taylor.smock:

@skyper: Did you reopen the right ticket?

The base problem for this ticket was

IAE: Parameter 'accessToken' must not be null

Is that what you are encountering? I don't think so -- it sounds like you have an OAuth token saved in preferences, you logged in via OAuth 2, possibly restarted, removed the OAuth 2 token, and then tried to use the OAuth 1 token.

It does look like authenticating with OAuth 2 removes the OAuth 1 token (I think I did that on purpose), but authenticating with OAuth 1 will not remove the OAuth 2 token (I probably forgot to do that).

As a user, which method would you prefer? Keep the OAuth 1 token or remove the OAuth 1 token?

comment:8 by skyper, 14 months ago

This is very strange. After another restart my OAuth1 token, this time, was displayed again and is working. Once, I managed to have both OAuth1 and OAuth2 tokens displayed in preferences and both seem to work but now I am back to have the OAuth1 token not displayed anymore in preferences once I retrieved an OAuth2.0 token.

in reply to:  7 comment:9 by skyper, 14 months ago

Replying to taylor.smock:

Replying to taylor.smock:

@skyper: Did you reopen the right ticket?

The base problem for this ticket was

IAE: Parameter 'accessToken' must not be null

Is that what you are encountering? I don't think so -- it sounds like you have an OAuth token saved in preferences, you logged in via OAuth 2, possibly restarted, removed the OAuth 2 token, and then tried to use the OAuth 1 token.

Yes, without restart. Sometimes the OAuth1 token is still displayed (this ticket) and the last times it is not displayed. The first time, where it was still displayed in preferences, I tried to upload but that failed (like I thought as the "retrieve token" dialog popped up) and after a restart the OAuth1 token was not displayed anymore. The other times, after a restart, the OAuth1 token was displayed again and usable. Without deleting the OAuth2 token, I managed to have both tokens displayed and usable after a restart.

It does look like authenticating with OAuth 2 removes the OAuth 1 token (I think I did that on purpose), but authenticating with OAuth 1 will not remove the OAuth 2 token (I probably forgot to do that).

As a user, which method would you prefer? Keep the OAuth 1 token or remove the OAuth 1 token?

Personally, I would keep them completely separate but if you think it makes more sense to only have one token I'd prefer a strong warning when switching and for sure if deleting does delete both (which does not happen all the time, atm).

comment:10 by taylor.smock, 14 months ago

In 18667/josm:

see #22744, #20768: Don't remove OAuth 1 token when authenticating with OAuth 2

There is a button for users to remove either token if the user wants to do so.

comment:11 by skyper, 14 months ago

Thanks, finally, it does work as expected when deleting the OAuth2 token.

comment:12 by taylor.smock, 14 months ago

Milestone: 23.02
Resolution: fixed
Status: reopenedclosed

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain team.
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.