@Override
    protected void onPostExecute(Throwable result) {
      LCTX.d("BookLoadTask.onPostExecute(): start");
      try {
        if (result == null) {
          try {
            getDocumentController().show();

            final DocumentModel dm = getDocumentModel();
            currentPageChanged(PageIndex.NULL, dm.getCurrentIndex());

          } catch (final Throwable th) {
            result = th;
          }
        }

        super.onPostExecute(result);

        if (result instanceof MuPdfPasswordException) {
          final MuPdfPasswordException pex = (MuPdfPasswordException) result;
          final int promptId =
              pex.isWrongPasswordEntered()
                  ? R.string.msg_wrong_password
                  : R.string.msg_password_required;

          askPassword(m_fileName, promptId);

        } else if (result != null) {
          final String msg = result.getMessage();
          LogManager.onUnexpectedError(result);
          showErrorDlg(R.string.msg_unexpected_error, msg);
        } else {
          if (codecType != null && codecType.useCustomFonts) {
            EBookDroidApp.checkInstalledFonts(getManagedComponent());
          }
        }
      } catch (final Throwable th) {
        LCTX.e("BookLoadTask.onPostExecute(): Unexpected error", th);
        LogManager.onUnexpectedError(result);
      } finally {
        LCTX.d("BookLoadTask.onPostExecute(): finish");
      }
    }