@Override protected boolean run() { final Data data = context.data(); final MetaData meta = data.meta; size = meta.size; if (!startUpdate()) return false; boolean ok = true; try { // reassign autooptimize flag final boolean autoopt = options.get(MainOptions.AUTOOPTIMIZE); if (autoopt != data.meta.autoopt) { data.meta.autoopt = autoopt; data.meta.dirty = true; } optimize(data, this); ok = info(DB_OPTIMIZED_X, meta.name, perf); } catch (final IOException ex) { ok = error(Util.message(ex)); } finally { ok &= finishUpdate(); } return ok; }