From 491d1905c9c60cf5ef46efe044900ba7e03c9de5 Mon Sep 17 00:00:00 2001 From: gnosygnu Date: Sun, 2 Jun 2019 13:04:49 -0400 Subject: [PATCH] Scribunto: Ignore snak if novalue [#481] --- .../xowa/xtns/scribunto/libs/wikibases/Basic__tst.java | 8 ++++++++ .../gplx/xowa/xtns/wbases/Wdata_prop_val_visitor_.java | 6 ++++++ 2 files changed, 14 insertions(+) diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/wikibases/Basic__tst.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/wikibases/Basic__tst.java index d278b365d..ad87185d7 100644 --- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/wikibases/Basic__tst.java +++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/wikibases/Basic__tst.java @@ -173,6 +173,14 @@ public class Basic__tst { Keyval[] args = Wbase_snak_utl_.Get_snak(wdata_fxt, wdata_fxt.Make_claim_monolingual(3, "en", "abc_en")); fxt.Test__proc__kvps__flat(lib, Scrib_lib_wikibase.Invk_renderSnak, args, "abc_en"); } + @Test public void RenderSnak__no_value() { + Keyval[] args = Wbase_snak_utl_.Get_snak(wdata_fxt, new Wbase_claim_string(3, Wbase_claim_value_type_.Tid__novalue, null)); + fxt.Test__proc__kvps__flat(lib, Scrib_lib_wikibase.Invk_renderSnak, args, ""); + } + @Test public void RenderSnak__data_value_is_null() { + Keyval[] args = Wbase_snak_utl_.Get_snak(wdata_fxt, new Wbase_claim_string(3, Wbase_claim_value_type_.Tid__somevalue, null)); + fxt.Test__proc__kvps__flat(lib, Scrib_lib_wikibase.Invk_renderSnak, args, ""); + } @Test public void GetEntityUrl() { fxt.Test_scrib_proc_str(lib, Scrib_lib_wikibase.Invk_getEntityUrl, Object_.Ary("Q2" ), "https://www.wikidata.org/wiki/Special:EntityPage/Q2"); } diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_prop_val_visitor_.java b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_prop_val_visitor_.java index 606985ccf..b7b144922 100644 --- a/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_prop_val_visitor_.java +++ b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_prop_val_visitor_.java @@ -61,6 +61,12 @@ public class Wdata_prop_val_visitor_ { } } + if (snak_tid == Wbase_claim_value_type_.Tid__novalue) return; // ISSUE#:481; DATE:2019-06-02 + if (datavalue_ary == null) { + Gfo_usr_dlg_.Instance.Warn_many("", "", "datavalue is empty even though not novalue; page_url=~{0} pid=~{1}", page_url, pid); + return; + } + // loop datavalue_ary to get (a) tid,; (b) val_obj byte tid = Byte_.Max_value_127; Object val_obj = null;