diff -r dee993b88a7b -r a99180ad3441 src/Pure/Thy/export.scala --- a/src/Pure/Thy/export.scala Thu May 17 14:01:13 2018 +0200 +++ b/src/Pure/Thy/export.scala Thu May 17 14:40:58 2018 +0200 @@ -124,7 +124,8 @@ else Future.value((false, body))) } - def read_entry(db: SQL.Database, session_name: String, theory_name: String, name: String): Entry = + def read_entry(db: SQL.Database, session_name: String, theory_name: String, name: String) + : Option[Entry] = { val select = Data.table.select(List(Data.compressed, Data.body), @@ -135,9 +136,9 @@ if (res.next()) { val compressed = res.bool(Data.compressed) val body = res.bytes(Data.body) - Entry(session_name, theory_name, name, Future.value(compressed, body)) + Some(Entry(session_name, theory_name, name, Future.value(compressed, body))) } - else error(message("Bad export", theory_name, name)) + else None }) } @@ -274,11 +275,11 @@ val xz_cache = XZ.make_cache() val matcher = make_matcher(export_pattern) - for { (theory_name, name) <- export_names if matcher(theory_name, name) } - { - val entry = read_entry(db, session_name, theory_name, name) + for { + (theory_name, name) <- export_names if matcher(theory_name, name) + entry <- read_entry(db, session_name, theory_name, name) + } { val path = export_dir + Path.basic(theory_name) + Path.explode(name) - progress.echo("exporting " + path) Isabelle_System.mkdirs(path.dir) Bytes.write(path, entry.uncompressed(cache = xz_cache))