Modify

Opened 5 years ago

Last modified 9 months ago

#18398 new defect

NPE in WikipediaToggleDialog with language code yue

Reported by: anonymous Owned by: floscher
Priority: normal Milestone:
Component: Plugin wikipedia Version: latest
Keywords: template_report Cc:

Description

What steps will reproduce the problem?

  1. Update JOSM to 15553
  2. Run as usual
  3. Open any Imagery

What is the expected result?

Run without any issud

What happens instead?

  1. An update plugin dialog box popup.
  2. Click update plugin.
  3. Warning dialog box popup and plugins are not loaded

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

Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2019-12-01 23:10:15 +0100 (Sun, 01 Dec 2019)
Revision:15553
Build-Date:2019-12-02 02:30:57
URL:https://josm.openstreetmap.de/svn/trunk

Identification: JOSM/1.5 (15553 en) Mac OS X 10.15
OS Build number: Mac OS X 10.15 (19A583)
Memory Usage: 521 MB / 2048 MB (198 MB allocated, but free)
Java version: 13.0.1+9, AdoptOpenJDK, OpenJDK 64-Bit Server VM
Screen: Display 69679052 1440x900
Maximum Screen Size: 1440x900

Plugins:
+ DirectDownload (35221)
+ EasyPresets (1537621333)
+ FastDraw (34977)
+ FixAddresses (34977)
+ HouseNumberTaggingTool (34977)
+ ImportImagePlugin (35125)
+ ImproveOsm (188)
+ PicLayer (35104)
+ SeaChart (35120)
+ SeaMapEditor (34908)
+ apache-commons (35092)
+ editgpx (35221)
+ ejml (35122)
+ geotools (35169)
+ imagery_offset_db (34908)
+ jaxb (35014)
+ jts (35122)
+ livegps (35221)
+ log4j (34908)
+ measurement (35221)
+ opendata (35179)
+ pdfimport (34977)
+ photo_geotagging (34908)
+ print (34972)
+ reverter (35226)
+ surveyor (34977)
+ terracer (34977)
+ undelete (34977)
+ utilsplugin2 (35238)
+ wikipedia (1.1.3)

Tagging presets:
+ https://raw.githubusercontent.com/OpenNauticalChart/josm/master/INT-1-preset.xml

Map paint styles:
- https://github.com/bastik/mapcss-tools/raw/osm/mapnik2mapcss/osm-results/mapnik.zip
- https://josm.openstreetmap.de/josmfile?page=Styles/Modified&zip=1
- https://raw.githubusercontent.com/OpenNauticalChart/josm/master/INT1_MapCSS.mapcss
- https://pasharm.github.io/New_basic_style_for_JOSM/New_basic_style.mapcss
- https://raw.githubusercontent.com/OpenSeaMap/josm/master/INT1_Seamark.mapcss
- https://raw.githubusercontent.com/OpenSidewalks/OpenSidewalks-Schema/master/open_sidewalks.mapcss
- https://josm.openstreetmap.de/josmfile?page=Styles/Lane_and_Road_Attributes&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/LitObjects&zip=1
- https://github.com/MissingMaps/josm_styles/archive/master.zip
- https://github.com/hotosm/HDM-JOSM-style/archive/master.zip
- https://josm.openstreetmap.de/josmfile?page=Styles/Osmc&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/PublicTransportV2&zip=1

Last errors/warnings:
- W: No configuration settings found.  Using hardcoded default values for all pools.
- W: Warning: Failed to scan file 'site-svn.openstreetmap.org-_applications_editors_josm_plugins_opendata_modules.txt' for module information. Skipping.
- W: Could not initialize Wikipedia app for language 'yue'!: java.lang.IllegalArgumentException: No Wikipedia for language 粵語 (yue) found!
- E: Handled by bug report queue: org.openstreetmap.josm.plugins.PluginException: An error occurred in plugin wikipedia. Cause: java.lang.reflect.InvocationTargetException. Cause: java.lang.NullPointerException
- W: Warning - <html>JOSM could not find information about the following plugins:<ul><li>livegps</li><li>SeaMapEditor</li><li>apache-commons</li><li>HouseNumberTaggingTool</li><li>geotools</li><li>opendata</li><li>FixAddresses</li><li>measurement</li><li>jaxb</li><li>SeaChart</li><li>editgpx</li><li>utilsplugin2</li><li>pdfimport</li><li>EasyPresets</li><li>terracer</li><li>wikipedia</li><li>PicLayer</li><li>log4j</li><li>imagery_offset_db</li><li>ImproveOsm</li><li>jts</li><li>DirectDownload</li><li>surveyor</li><li>ejml</li><li>reverter</li><li>FastDraw</li><li>print</li><li>photo_geotagging</li><li>ImportImagePlugin</li><li>undelete</li></ul>The plugins are not going to be loaded.</html>


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

Warning issued by: BugReportExceptionHandler#handleException

=== STACK TRACE ===
Thread: AWT-EventQueue-0 (20) of main
org.openstreetmap.josm.plugins.PluginException: An error occurred in plugin wikipedia
	at org.openstreetmap.josm.plugins.PluginProxy.handlePluginException(PluginProxy.java:60)
	at org.openstreetmap.josm.plugins.PluginProxy.mapFrameInitialized(PluginProxy.java:71)
	at org.openstreetmap.josm.gui.MainPanel.updateContent(MainPanel.java:80)
	at org.openstreetmap.josm.gui.MainPanel$1.beforeFirstLayerAdded(MainPanel.java:157)
	at org.openstreetmap.josm.gui.layer.MainLayerManager.realAddLayer(MainLayerManager.java:281)
	at org.openstreetmap.josm.gui.layer.LayerManager.lambda$addLayer$0(LayerManager.java:218)
	at org.openstreetmap.josm.gui.util.GuiHelper.runInEDTAndWaitWithException(GuiHelper.java:239)
	at org.openstreetmap.josm.gui.layer.LayerManager.addLayer(LayerManager.java:218)
	at org.openstreetmap.josm.gui.layer.LayerManager.addLayer(LayerManager.java:207)
	at org.openstreetmap.josm.actions.AddImageryLayerAction.actionPerformed(AddImageryLayerAction.java:150)
	at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
	at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
	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.AbstractButton.doClick(AbstractButton.java:369)
	at java.desktop/com.apple.laf.ScreenMenuItem.actionPerformed(ScreenMenuItem.java:129)
	at java.desktop/java.awt.MenuItem.processActionEvent(MenuItem.java:690)
	at java.desktop/java.awt.MenuItem.processEvent(MenuItem.java:649)
	at java.desktop/java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:375)
	at java.desktop/java.awt.MenuComponent.dispatchEvent(MenuComponent.java:363)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:775)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
	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)
Caused by: java.lang.reflect.InvocationTargetException
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:567)
	at org.openstreetmap.josm.plugins.PluginProxy.mapFrameInitialized(PluginProxy.java:66)
	... 35 more
Caused by: java.lang.NullPointerException
	at org.wikipedia.gui.WikipediaToggleDialog.updateTitle(WikipediaToggleDialog.java:146)
	at org.wikipedia.gui.WikipediaToggleDialog.<init>(WikipediaToggleDialog.java:88)
	at org.wikipedia.WikipediaPlugin.mapFrameInitialized(WikipediaPlugin.java:72)
	... 40 more

=== RUNNING THREADS ===
Thread: RemoteControl HTTP Server (46) of main
java.base@13.0.1/sun.nio.ch.Net.accept(Native Method)
java.base@13.0.1/sun.nio.ch.NioSocketImpl.accept(NioSocketImpl.java:755)
java.base@13.0.1/java.net.ServerSocket.implAccept(ServerSocket.java:662)
java.base@13.0.1/java.net.ServerSocket.platformImplAccept(ServerSocket.java:628)
java.base@13.0.1/java.net.ServerSocket.implAccept(ServerSocket.java:604)
java.base@13.0.1/java.net.ServerSocket.implAccept(ServerSocket.java:561)
java.base@13.0.1/java.net.ServerSocket.accept(ServerSocket.java:518)
app//org.openstreetmap.josm.io.remotecontrol.RemoteControlHttpServer.run(RemoteControlHttpServer.java:104)

Thread: Finalizer (3) of system
java.base@13.0.1/java.lang.Object.wait(Native Method)
java.base@13.0.1/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
java.base@13.0.1/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
java.base@13.0.1/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:170)

Thread: Java2D Queue Flusher (15) of system
java.base@13.0.1/java.lang.Object.wait(Native Method)
java.desktop@13.0.1/sun.java2d.opengl.OGLRenderQueue$QueueFlusher.run(OGLRenderQueue.java:205)
java.base@13.0.1/java.lang.Thread.run(Thread.java:830)

Thread: message-notifier-0 (50) of main
java.base@13.0.1/jdk.internal.misc.Unsafe.park(Native Method)
java.base@13.0.1/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:235)
java.base@13.0.1/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2123)
java.base@13.0.1/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
java.base@13.0.1/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
java.base@13.0.1/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@13.0.1/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@13.0.1/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@13.0.1/java.lang.Thread.run(Thread.java:830)

Thread: Reference Handler (2) of system
java.base@13.0.1/java.lang.ref.Reference.waitForReferencePendingList(Native Method)
java.base@13.0.1/java.lang.ref.Reference.processPendingReferences(Reference.java:241)
java.base@13.0.1/java.lang.ref.Reference$ReferenceHandler.run(Reference.java:213)

Thread: File Watcher (23) of main
java.base@13.0.1/jdk.internal.misc.Unsafe.park(Native Method)
java.base@13.0.1/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@13.0.1/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@13.0.1/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:483)
java.base@13.0.1/java.util.concurrent.LinkedBlockingDeque.take(LinkedBlockingDeque.java:671)
java.base@13.0.1/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$303/0x0000000800ddbc40.run(Unknown Source)
java.base@13.0.1/java.lang.Thread.run(Thread.java:830)

Thread: Timer-2 (57) of main
java.base@13.0.1/java.lang.Object.wait(Native Method)
java.base@13.0.1/java.lang.Object.wait(Object.java:326)
java.base@13.0.1/java.util.TimerThread.mainLoop(Timer.java:527)
java.base@13.0.1/java.util.TimerThread.run(Timer.java:506)

Thread: Timer-1 (47) of main
java.base@13.0.1/java.lang.Object.wait(Native Method)
java.base@13.0.1/java.util.TimerThread.mainLoop(Timer.java:553)
java.base@13.0.1/java.util.TimerThread.run(Timer.java:506)

Thread: AWT-Shutdown (18) of system
java.base@13.0.1/java.lang.Object.wait(Native Method)
java.base@13.0.1/java.lang.Object.wait(Object.java:326)
java.desktop@13.0.1/sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:291)
java.base@13.0.1/java.lang.Thread.run(Thread.java:830)

Thread: TimerQueue (21) of system
java.base@13.0.1/jdk.internal.misc.Unsafe.park(Native Method)
java.base@13.0.1/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@13.0.1/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@13.0.1/java.util.concurrent.DelayQueue.take(DelayQueue.java:217)
java.desktop@13.0.1/javax.swing.TimerQueue.run(TimerQueue.java:171)
java.base@13.0.1/java.lang.Thread.run(Thread.java:830)

Thread: RemoteControl HTTP Server (45) of main
java.base@13.0.1/sun.nio.ch.Net.accept(Native Method)
java.base@13.0.1/sun.nio.ch.NioSocketImpl.accept(NioSocketImpl.java:755)
java.base@13.0.1/java.net.ServerSocket.implAccept(ServerSocket.java:662)
java.base@13.0.1/java.net.ServerSocket.platformImplAccept(ServerSocket.java:628)
java.base@13.0.1/java.net.ServerSocket.implAccept(ServerSocket.java:604)
java.base@13.0.1/java.net.ServerSocket.implAccept(ServerSocket.java:561)
java.base@13.0.1/java.net.ServerSocket.accept(ServerSocket.java:518)
app//org.openstreetmap.josm.io.remotecontrol.RemoteControlHttpServer.run(RemoteControlHttpServer.java:104)

Thread: AppKit Thread (13) of system

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

Thread: Weak reference cleaner (24) of main
java.base@13.0.1/java.lang.Object.wait(Native Method)
java.base@13.0.1/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
java.base@13.0.1/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$335/0x0000000800e47040.run(Unknown Source)
java.base@13.0.1/java.lang.Thread.run(Thread.java:830)

Thread: Timer-0 (42) of main
java.base@13.0.1/java.lang.Object.wait(Native Method)
java.base@13.0.1/java.util.TimerThread.mainLoop(Timer.java:553)
java.base@13.0.1/java.util.TimerThread.run(Timer.java:506)

Thread: JCS-ElementEventQueue-Thread-1 (32) of main
java.base@13.0.1/jdk.internal.misc.Unsafe.park(Native Method)
java.base@13.0.1/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@13.0.1/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@13.0.1/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
java.base@13.0.1/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@13.0.1/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@13.0.1/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@13.0.1/java.lang.Thread.run(Thread.java:830)

Thread: Signal Dispatcher (4) of system

Thread: Java2D Disposer (16) of system
java.base@13.0.1/java.lang.Object.wait(Native Method)
java.base@13.0.1/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
java.base@13.0.1/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
java.desktop@13.0.1/sun.java2d.Disposer.run(Disposer.java:144)
java.base@13.0.1/java.lang.Thread.run(Thread.java:830)

Thread: image-fetcher-0 (30) of main
java.base@13.0.1/jdk.internal.misc.Unsafe.park(Native Method)
java.base@13.0.1/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@13.0.1/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@13.0.1/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
java.base@13.0.1/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@13.0.1/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@13.0.1/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@13.0.1/java.lang.Thread.run(Thread.java:830)

Thread: ForkJoinPool.commonPool-worker-7 (35)
java.base@13.0.1/jdk.internal.misc.Unsafe.park(Native Method)
java.base@13.0.1/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@13.0.1/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1633)
java.base@13.0.1/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)

Thread: DestroyJavaVM (52) of main

Thread: Map Status Collector (58) of main
java.base@13.0.1/jdk.internal.misc.Unsafe.park(Native Method)
java.base@13.0.1/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
java.base@13.0.1/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2081)
java.base@13.0.1/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:433)
app//org.openstreetmap.josm.gui.MapStatus$Collector.run(MapStatus.java:434)
java.base@13.0.1/java.lang.Thread.run(Thread.java:830)

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

Thread: Common-Cleaner (10) of InnocuousThreadGroup
java.base@13.0.1/java.lang.Object.wait(Native Method)
java.base@13.0.1/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
java.base@13.0.1/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:148)
java.base@13.0.1/java.lang.Thread.run(Thread.java:830)
java.base@13.0.1/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:134)

Thread: changeset-updater-0 (51) of main
java.base@13.0.1/jdk.internal.misc.Unsafe.park(Native Method)
java.base@13.0.1/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:235)
java.base@13.0.1/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2123)
java.base@13.0.1/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
java.base@13.0.1/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
java.base@13.0.1/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1054)
java.base@13.0.1/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)
java.base@13.0.1/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
java.base@13.0.1/java.lang.Thread.run(Thread.java:830)

Thread: GT authority factory disposer (36) of main
java.base@13.0.1/java.lang.Object.wait(Native Method)
java.base@13.0.1/java.util.TimerThread.mainLoop(Timer.java:553)
java.base@13.0.1/java.util.TimerThread.run(Timer.java:506)

Attachments (2)

1.png (27.7 KB ) - added by anonymous 5 years ago.
2.png (31.8 KB ) - added by anonymous 5 years ago.

Download all attachments as: .zip

Change History (10)

by anonymous, 5 years ago

Attachment: 1.png added

by anonymous, 5 years ago

Attachment: 2.png added

comment:1 by stoecker, 5 years ago

Component: CorePlugin wikipedia
Owner: changed from team to floscher

comment:2 by floscher, 5 years ago

Ah, that's probably because previously the languages available in Wikimedia projects were sometimes conflated with the languages for which a Wikipedia is available. But the latter is a subset of the former.
The last version had some changes related to this, so that probably broke something when you use a language for which no Wikipedia exists. I'll look into this to fix it.

comment:3 by anonymous, 5 years ago

The Wikipedia does exists. The process of changing from zh_yue to yue has stalled for many many years. They created an alias redirecting yue to zh_yue for interim solution. New projects like Wiktionary use yue directly.

See Wikimedia bug report https://phabricator.wikimedia.org/T30441 for details. This annoying bug breaks many APIs and software, and pushes unnecessary complexity to interoperability.

comment:4 by floscher, 5 years ago

We are running off of what the Wikimedia API tells us, which is currently

{
  
  "304": {
    "code": "yue",
    "name": "粵語",
    "site": [
      {
        "url": "https://yue.wiktionary.org",
        "dbname": "yuewiktionary",
        "code": "wiktionary",
        "sitename": "維基辭典"
      }
    ],
    "dir": "ltr",
    "localname": "Cantonese"
  },
  
  "310": {
    "code": "zh-yue",
    "name": "粵語",
    "site": [
      {
        "url": "https://zh-yue.wikipedia.org",
        "dbname": "zh_yuewiki",
        "code": "wiki",
        "sitename": "維基百科"
      }
    ],
    "dir": "ltr",
    "localname": "Cantonese"
  },
  
}

(https://www.wikidata.org/w/api.php?action=sitematrix&format=json&utf8=1&formatversion=2)

So yes, there is a Wikipedia for this language code, but as you said it is listed under the language code zh-yue instead of yue, which is also why I initially didn't find it.

As soon as they change the wikipedia to the other language code, we would automatically adapt. I don't see why we should create a special case here. If anybody should change this, then it's the people at Wikimedia, which would fix it for all users of their data, not just JOSM or even only the subset of JOSM users using the wikipedia plugin.

If we talk language variants, then the situation is different. Currently both zh-yue and yue are language variants for e.g. Wikidata labels, so it could make sense to set this as language even if there isn't a Wikipedia for it. And this case is probably not handled very well in the plugin at the moment.

Last edited 5 years ago by Don-vip (previous) (diff)

comment:5 by GerdP, 4 years ago

See also #19098.

comment:6 by simon04, 4 years ago

Summary: latest wikipedia plugin failed to run with language code yue and other plugins are not loadedNPE in WikipediaToggleDialog with language code yue

comment:7 by taylor.smock, 9 months ago

Ticket #22320 has been marked as a duplicate of this ticket.

comment:8 by taylor.smock, 9 months ago

Ticket #23670 has been marked as a duplicate of this ticket.

Modify Ticket

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

Add Comment


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