gnosygnu / xowa

xowa offline wiki application
Other
374 stars 41 forks source link

invoke failed: Montezuma {{#invoke:map #679

Closed desb42 closed 4 years ago

desb42 commented 4 years ago

I have just been building enwikivoyage (2020-03-01) and the above error occurred the full err msg is

20200310_214158.056 invoke failed: Montezuma {{#invoke:map
  | tag
  | type=maplink
  | geotype=Point
  | ismarker=yes
  | title={{{name|}}}
  | url={{{url|}}}
  | marker-symbol=-number-{{{counter|{{{type|listing}}}}}}
  | marker-color={{#invoke:TypeToColor|convert|{{{type|listing}}}}}
  | latitude={{{lat|}}}
  | longitude={{{long|}}}
  | zoom={{{zoom|17}}}
  | group={{{group|{{{type|listing}}}}}}
  | show = {{maplayers}}
  | image={{{image|}}}
  | wikidata={{{wikidata|}}}
  | debug={{{debug|}}}
  }} [err 0] <gplx> =Module:map:217 attempt to index ? (a nil value)
  stack traceback:

  Module:map:200: in function <Module:map:199>

  Module:map:323: in function <Module:map:322>

  mw.lua:535: in function <mw.lua:534>

  [Java]: in function '__index'

  g:/xowa/bin/any/xowa/xtns/Scribunto/engines/Luaj/MWServer.lua:75: in function <g:/xowa/bin/any/xowa/xtns/Scribunto/engines/Luaj/MWServer.lua:74>

  [Java]: in ?: ttl=Montezuma excerpt={{#invoke:map
  | tag
  | type=maplink
  | geotype=Point
  | ismarker=yes
  | title={{{name|}}}
  | url={{{url|}}}
  | marker-symbol=-number-{{{counter|{{{type|listing}}}}}}
  | marker-color={{#invoke:TypeToColor|convert|{{{type|listing}}}}}
  | latitude={{{lat|}}}
  | longitude={{{long|}}}
  | zoom={{{zoom|17}}}
  | group={{{group|{{{type|listing}}}}}}
  | show = {{maplayers}}
  | image={{{image|}}}
  | wikidata={{{wikidata|}}}
  | debug={{{debug|}}}
  }}
  [trace]:
    gplx.xowa.xtns.scribunto.Scrib_core.Handle_error(Scrib_core.java:229)
    gplx.xowa.xtns.scribunto.engines.luaj.Luaj_engine.Dispatch_as_kv_ary(Luaj_engine.java:84)
    gplx.xowa.xtns.scribunto.engines.luaj.Luaj_engine.CallFunction(Luaj_engine.java:59)
    gplx.xowa.xtns.scribunto.Scrib_core.Invoke(Scrib_core.java:195)
    gplx.xowa.xtns.scribunto.Scrib_invoke_func.Func_evaluate(Scrib_invoke_func.java:84)
    gplx.xowa.parsers.tmpls.Xot_invk_tkn_.Eval_func(Xot_invk_tkn_.java:30)
    gplx.xowa.parsers.tmpls.Xot_invk_tkn.Tmpl_evaluate(Xot_invk_tkn.java:259)
    gplx.xowa.parsers.tmpls.Xot_defn_tmpl.Tmpl_evaluate(Xot_defn_tmpl.java:87)
    gplx.xowa.parsers.tmpls.Xot_invk_tkn.Tmpl_evaluate(Xot_invk_tkn.java:290)
    gplx.xowa.parsers.tmpls.Xot_defn_tmpl.Tmpl_evaluate(Xot_defn_tmpl.java:87)
    gplx.xowa.parsers.tmpls.Xot_invk_tkn.Tmpl_evaluate(Xot_invk_tkn.java:290)
    gplx.xowa.parsers.tmpls.Xot_tmpl_wtr.Write_tkn(Xot_tmpl_wtr.java:104)
    gplx.xowa.parsers.tmpls.Xot_tmpl_wtr.Write_tkn(Xot_tmpl_wtr.java:35)
    gplx.xowa.parsers.tmpls.Xot_tmpl_wtr.Write_all(Xot_tmpl_wtr.java:23)
    gplx.xowa.parsers.Xop_parser.Expand_tmpl(Xop_parser.java:50)
    gplx.xowa.parsers.Xop_parser.Expand_tmpl(Xop_parser.java:44)
    gplx.xowa.parsers.Xop_parser.Parse_text_to_wdom(Xop_parser.java:102)
    gplx.xowa.parsers.Xow_parser_mgr.Parse(Xow_parser_mgr.java:104)
    gplx.xowa.addons.bldrs.mass_parses.parses.wkrs.Xomp_parse_wkr.Exec(Xomp_parse_wkr.java:141)
    gplx.xowa.addons.bldrs.mass_parses.parses.wkrs.Xomp_parse_wkr.Invk(Xomp_parse_wkr.java:214)
    gplx.Gfo_invk_.Invk_by_msg(Gfo_invk_.java:34)
    gplx.core.threads.Thread_adp.run(Thread_adp.java:33)
    java.lang.Thread.run(Thread.java:748)

The wikitext in page Montezuma that is calling this (indirectly) is

{{listing | type=sleep
| name=Ylang Ylang Beach Resort | alt= | url=https://ylangylangbeachresort.com/ | email=reservations@ylangylangbeachresort.com
| address= | lat=9.826225 | long=-85.072436 | directions=700 m north of the School Puntarenas
| phone=+506 2642-0636 | tollfree=+1 888-795-8494
| checkin=11:00 AM | checkout=2:00 PM | price=
| wikidata=Q86522549
| lastedit=2020-02-27
| content=Beach resort with a spa, a restaurant with vegan options, and activities such as yoga and other vacation packages.
}}

and I think the reason this error is occurring is that www.wikidata.org/wiki/Q86522549 has been deleted (as of 20200312)

The lines of lua code triggering this I think are

local e = mw.wikibase.getEntity(args.wikidata)
if e.claims ~= nil then

mw.wikibase.getEntity is returning nil because Q86522549 does not exist Is it possible that lua can still treat e.claims as nil even though e is nil?

desb42 commented 4 years ago

WRONG! mediawiki page has been edited to remove reference to the deleted wikidata item (so the lua issue is false