@Override
            public void run() {
              if (!isBinaryWithoutDecompiler(file)) {
                LoadTextUtil.clearCharsetAutoDetectionReason(file);
                file.setBOM(null); // reset BOM in case we had one and the external change stripped it away
                file.setCharset(null, null, false);
                boolean wasWritable = document.isWritable();
                document.setReadOnly(false);
                boolean tooLarge = FileUtilRt.isTooLarge(file.getLength());
                isReloadable[0] = isReloadable(file, document, project);
                if (isReloadable[0]) {
                  CharSequence reloaded = tooLarge ? LoadTextUtil.loadText(file, getPreviewCharCount(file)) : LoadTextUtil.loadText(file);
                  ((DocumentEx)document).replaceText(reloaded, file.getModificationStamp());
                  setDocumentTooLarge(document, tooLarge);
                }
                document.setReadOnly(!wasWritable);
              }
            }
@Override
            public void run()