Improve robustness on errors
Change-Id: I352f02cd1ac0e59eb84f21ced86d70aea40add1c
diff --git a/lib/KorAP/VirtualCorpus/And.pm b/lib/KorAP/VirtualCorpus/And.pm
index 613710b..48620f9 100644
--- a/lib/KorAP/VirtualCorpus/And.pm
+++ b/lib/KorAP/VirtualCorpus/And.pm
@@ -34,6 +34,8 @@
my @ops;
foreach (@{$self->{ops}}) {
+ next unless $_;
+
if ($_->koral_type eq 'And') {
push @ops, @{$_->operands};
}
diff --git a/t/data/corp-w-vas-n91-kor17.def b/t/data/corp-w-vas-n91-kor17.def
new file mode 100644
index 0000000..1ced986
--- /dev/null
+++ b/t/data/corp-w-vas-n91-kor17.def
@@ -0,0 +1,205 @@
+<name>VAS-N91 (Stand 2013, korr. 2017)</name>
+
+<frozen></frozen>
+
+<intended>start</intended>
+
+<name>1991-2012</name>
+<date>m1=1991/1 bis 2012/12</name>
+<end></end>
+
+<name>Berliner Zeitung</name>
+<ql>Berliner Zeitung</ql>
+<and>1991-2012</and>
+<redabs>143237</redabs>
+<end></end>
+
+<name>Braunschweiger Zeitung</name>
+<ql>Braunschweiger Zeitung</ql>
+<and>1991-2012</and>
+<redabs>117211</redabs>
+<end></end>
+
+<name>Hamburger Morgenpost</name>
+<ql>Hamburger Morgenpost</ql>
+<and>1991-2012</and>
+<redabs>89016</redabs>
+<end></end>
+
+<name>Hannoversche Allgemeine</name>
+<ql>Hannoversche Allgemeine</ql>
+<and>1991-2012</and>
+<redabs>120850</redabs>
+<end></end>
+
+<name>Die Rheinpfalz</name>
+<ql>Die Rheinpfalz</ql>
+<and>1991-2012</and>
+<redabs>195068</redabs>
+<end></end>
+
+<name>Mannheimer Morgen</name>
+<ql>Mannheimer Morgen</ql>
+<and>1991-2012</and>
+<redabs>71960</redabs>
+<end></end>
+
+<name>Rhein-Zeitung</name>
+<ql>Rhein-Zeitung</ql>
+<and>1991-2012</and>
+<redabs>177143</redabs>
+<end></end>
+
+<name>Nürnberger Nachrichten</name>
+<ql>Nürnberger Nachrichten</ql>
+<and>1991-2012</and>
+<redabs>217165</redabs>
+<end></end>
+
+<name>Nürnberger Zeitung</name>
+<ql>Nürnberger Zeitung</ql>
+<and>1991-2012</and>
+<redabs>21876</redabs>
+<end></end>
+
+<name>die tageszeitung</name>
+<ql>die tageszeitung</ql>
+<and>1991-2012</and>
+<redabs>45736</redabs>
+<end></end>
+
+<name>Frankfurter Allgemeine</name>
+<cn>F97 Frankfurter Allgemeine 1997</cn>
+<cn>F99 Frankfurter Allgemeine 1999</cn>
+<cn>F01 Frankfurter Allgemeine 2001</cn>
+<cn>F03 Frankfurter Allgemeine 2003</cn>
+<cn>F05 Frankfurter Allgemeine 2005</cn>
+<redabs>301166</redabs>
+<end></end>
+
+<name>Frankfurter Rundschau</name>
+<ql>Frankfurter Rundschau</ql>
+<and>1991-2012</and>
+<redabs>130754</redabs>
+<end></end>
+
+<name>Burgenländische Volkszeitung</name>
+<ql>Burgenländische Volkszeitung</ql>
+<and>1991-2012</and>
+<redabs>2773</redabs>
+<end></end>
+
+<name>Die Presse</name>
+<ql>Die Presse</ql>
+<and>1991-2012</and>
+<redabs>12207</redabs>
+<end></end>
+
+<name>Kleine Zeitung</name>
+<ql>Kleine Zeitung</ql>
+<and>1991-2012</and>
+<redabs>29826</redabs>
+<end></end>
+
+<name>Neue Kronen-Zeitung</name>
+<ql>Neue Kronen-Zeitung</ql>
+<and>1991-2012</and>
+<redabs>62655</redabs>
+<end></end>
+
+<name>Niederösterreichische Nachrichten</name>
+<ql>Niederösterreichische Nachrichten</ql>
+<and>1991-2012</and>
+<redabs>20435</redabs>
+<end></end>
+
+<name>Salzburger Nachrichten</name>
+<ql>Salzburger Nachrichten</ql>
+<and>1991-2012</and>
+<redabs>11172</redabs>
+<end></end>
+
+<name>Tiroler Tageszeitung</name>
+<ql>Tiroler Tageszeitung</ql>
+<and>1991-2012</and>
+<redabs>14099</redabs>
+<end></end>
+
+<name>Vorarlberger Nachrichten</name>
+<ql>Vorarlberger Nachrichten</ql>
+<and>1991-2012</and>
+<redabs>10080</redabs>
+<end></end>
+
+<name>Die Südostschweiz</name>
+<ql>Die Südostschweiz</ql>
+<and>1991-2012</and>
+<redabs>13724</redabs>
+<end></end>
+
+<name>St. Galler Tagblatt</name>
+<ql>St. Galler Tagblatt</ql>
+<and>1991-2012</and>
+<redabs>24360</redabs>
+<end></end>
+
+<name>Zürcher Tagesanzeiger</name>
+<ql>Zürcher Tagesanzeiger</ql>
+<and>1991-2012</and>
+<redabs>110857</redabs>
+<end></end>
+
+<name>VAS N91</name>
+<add>Berliner Zeitung</add>
+<add>Braunschweiger Zeitung</add>
+<add>Hamburger Morgenpost</add>
+<add>Hannoversche Allgemeine</add>
+<add>Die Rheinpfalz</add>
+<add>Mannheimer Morgen</add>
+<add>Rhein-Zeitung</add>
+<add>Nürnberger Nachrichten</add>
+<add>Nürnberger Zeitung</add>
+<add>die tageszeitung</add>
+<add>Frankfurter Allgemeine</add>
+<add>Frankfurter Rundschau</add>
+<add>Burgenländische Volkszeitung</add>
+<add>Die Presse</add>
+<add>Kleine Zeitung</add>
+<add>Neue Kronen-Zeitung</add>
+<add>Niederösterreichische Nachrichten</add>
+<add>Salzburger Nachrichten</add>
+<add>Tiroler Tageszeitung</add>
+<add>Vorarlberger Nachrichten</add>
+<add>Die Südostschweiz</add>
+<add>St. Galler Tagblatt</add>
+<add>Zürcher Tagesanzeiger</add>
+<and>1991-2012</and>
+<end></end>
+
+<intended>end</intended>
+
+<extended>start</extended>
+<text>A00/APR.23232</text>
+<text>A00/APR.23279</text>
+<text>A00/APR.23316</text>
+<text>A00/APR.23348</text>
+<text>A00/APR.23364</text>
+<text>A00/APR.23379</text>
+<text>A00/APR.23471</text>
+<text>A00/APR.23521</text>
+<text>A00/APR.23535</text>
+<text>A00/APR.23572</text>
+<text>A00/APR.23573</text>
+<text>A00/APR.23637</text>
+<text>A00/APR.23681</text>
+<text>A00/APR.23765</text>
+<text>A00/APR.23797</text>
+<text>A00/APR.23869</text>
+<text>A00/APR.23965</text>
+<text>A00/APR.23991</text>
+<text>WKV/BZE.00011</text>
+<text>WKV/BZE.00018</text>
+<text>WKV/BZE.00021</text>
+<text>WKV/BZE.00024</text>
+<text>WKV/BZE.00026</text>
+<extended>end</extended>
diff --git a/t/list2vc-def.t b/t/list2vc-def.t
index 17bece0..d5a0e57 100644
--- a/t/list2vc-def.t
+++ b/t/list2vc-def.t
@@ -98,6 +98,15 @@
is($json->{'collection'}->{'value'}, 'A', 'type');
is($json->{'collection'}->{'comment'}, 'name:"Korpora aus Österreich"', 'type');
+my $corpw = catfile(dirname(__FILE__), 'data', 'corp-w-vas-n91-kor17');
+
+$json = decode_json(encode('utf-8',join('', `$script def $corpw`)));
+
+is($json->{'collection'}->{'@type'}, 'koral:doc', 'type');
+is($json->{'collection'}->{'key'}, 'textSigle', 'type');
+is($json->{'collection'}->{'value'}->[0], 'A00/APR/23232', 'type');
+is($json->{'collection'}->{'comment'}, 'name:"VAS-N91 (Stand 2013, korr. 2017)"', 'type');
+
done_testing;
__END__