Hi Constantine, I guess that try/catch won't help you here, because the files will only be unzipped in the update phase (after actual query evaluation).
I am not sure when the error is generated. Could you send me the full stack trace (triggered via -d)? Thanks, Christian Fri, Oct 16, 2015 at 4:55 PM, Hondros, Constantine (ELS-AMS) <[email protected]> wrote: > db:output certainly looked promising, but I get no output from a try/catch > clause, alas: > > > > for $zip in file:list($hm) > > return > > try { > > db:add("myDB", $hm || '\' || $zip, "", map { 'intparse': true()}) > > } catch * { > > db:output($zip) > > } > > > > Any other thoughts, BaseX users? > > > > C. > > > > From: Tim Thompson [mailto:[email protected]] > Sent: 16 October 2015 16:40 > To: Hondros, Constantine (ELS-AMS) > Cc: Alexander Holupirek; BaseX > > > Subject: Re: [basex-talk] Which zip did BaseX choke on? > > > > I may be wrong, but I think you need to wrap the $err:code in db:output(): > see http://docs.basex.org/wiki/XQuery_Update#Returning_Results > > > > Tim > > > -- > Tim A. Thompson > Metadata Librarian (Spanish/Portuguese Specialty) > Princeton University Library > > > > > > On Fri, Oct 16, 2015 at 10:28 AM, Hondros, Constantine (ELS-AMS) > <[email protected]> wrote: > > Hmm, it is surprisingly hard to get some useful logging information out of > this. > > > > Here for example I fall foul of a XQuery syntax here: “all expressions must > be updating or return an empty sequence. ” > > > > for $zip in file:list($hm) > > return try { > > db:add("myDB", $hm || '\' || $zip, "", map { 'intparse': > true() }) > > } catch * { > > $err:code > > } > > > > Can anyone help me rephrase this so when BaseX halts on a bad zipfile, I at > least know what the name of the zipfile is? > > > > C. > > > > > > From: Alexander Holupirek [mailto:[email protected]] > Sent: 16 October 2015 15:23 > To: Hondros, Constantine (ELS-AMS) > Cc: BaseX > Subject: Re: [basex-talk] Which zip did BaseX choke on? > > > > Have you tried using try/catch? > > > > for zip in zips return try { unzip() } catch ... > > > Am 16.10.2015 um 15:16 schrieb Hondros, Constantine (ELS-AMS) > <[email protected]>: > > I love BaseX for the simplicity it brings to XML handling. But this is a > problem I have not encountered before. > > > > I am creating a DB from about 17,000 small zipfiles, each containing a > directory structure and somewhere within each, some XML. BaseX chokes on one > of these files giving the error: “invalid entry size (expected 0 but got > 11083 bytes)”. > > > > So clearly one or more of the zips is invalid - but which one(s)? > > > > Is there any way that BaseX can echo to me the file that is causing the > error? DEBUG is set to TRUE, but I don’t get any morer verbose output. I am > using the GUI, and running a BSX script too. > > > > Thanks in advance, > > C. > > > > ________________________________ > > Elsevier B.V. Registered Office: Radarweg 29, 1043 NX Amsterdam, The > Netherlands, Registration No. 33156677, Registered in The Netherlands. > > > > ________________________________ > > Elsevier B.V. Registered Office: Radarweg 29, 1043 NX Amsterdam, The > Netherlands, Registration No. 33156677, Registered in The Netherlands. > > > > > ________________________________ > > Elsevier B.V. Registered Office: Radarweg 29, 1043 NX Amsterdam, The > Netherlands, Registration No. 33156677, Registered in The Netherlands.

