public Message parseMessage(final InputStream is) throws IOException, MimeIOException {
try {
MessageImpl message = newMessageImpl();
MimeConfig cfg = config != null ? config : MimeConfig.DEFAULT;
boolean strict = cfg.isStrictParsing();
DecodeMonitor mon = monitor != null ? monitor :
strict ? DecodeMonitor.STRICT : DecodeMonitor.SILENT;
BodyDescriptorBuilder bdb = bodyDescBuilder != null ? bodyDescBuilder :
new DefaultBodyDescriptorBuilder(null, fieldParser != null ? fieldParser :
strict ? DefaultFieldParser.getParser() : LenientFieldParser.getParser(), mon);
BodyFactory bf = bodyFactory != null ? bodyFactory : new BasicBodyFactory();