} catch (Throwable t) {
} catch (Exception e) {
    private boolean runMimeConverters() {        // this callback copies the MimeMessage if a converter would want         //   to make a change, but doesn't alter the original MimeMessage        MimeVisitor.ModificationCallback forkCallback = new MimeVisitor.ModificationCallback() {            public boolean onModification() {                try { forkMimeMessage(); } catch (Exception e) { }  return false;            } };        try {            // first, find out if *any* of the converters would be triggered (but don't change the message)            for (Class vclass : MimeVisitor.getConverters()) {                if (mExpandedMessage == mMimeMessage)                    ((MimeVisitor) vclass.newInstance()).setCallback(forkCallback).accept(mMimeMessage);                // if there are attachments to be expanded, expand them in the MimeMessage *copy*                if (mExpandedMessage != mMimeMessage)                    ((MimeVisitor) vclass.newInstance()).accept(mExpandedMessage);            }        } catch (Throwable t) {            // If the conversion bombs for any reason, revert to the original.  Don't            // handle OOME, in hope that garbage created by a 3rd party converter is            // collected automatically.            mExpandedMessage = mMimeMessage;            sLog.warn("exception while converting message; message will be analyzed unconverted", t);        }        return mExpandedMessage == mMimeMessage;    }