in dom/src/main/java/org/apache/james/mime4j/dom/Message.java [871:899]
public Builder parse(final InputStream is) throws IOException {
MimeConfig currentConfig = config != null ? config : MimeConfig.DEFAULT;
boolean strict = currentConfig.isStrictParsing();
DecodeMonitor currentMonitor = monitor != null ? monitor : strict ? DecodeMonitor.STRICT : DecodeMonitor.SILENT;
BodyDescriptorBuilder currentBodyDescBuilder = bodyDescBuilder != null ? bodyDescBuilder :
new DefaultBodyDescriptorBuilder(null, fieldParser != null ? fieldParser :
strict ? DefaultFieldParser.getParser() : LenientFieldParser.getParser(), currentMonitor);
BodyFactory currentBodyFactory = bodyFactory != null ? bodyFactory : new BasicBodyFactory(!strict);
MimeStreamParser parser = new MimeStreamParser(currentConfig, currentMonitor, currentBodyDescBuilder);
Message message = new MessageImpl();
parser.setContentHandler(new ParserStreamContentHandler(message, currentBodyFactory));
parser.setContentDecoding(!rawContent);
if (flatMode) {
parser.setFlat();
}
try {
parser.parse(is);
} catch (MimeException e) {
throw new MimeIOException(e);
}
clearFields();
final List<Field> fields = message.getHeader().getFields();
for (Field field: fields) {
addField(field);
}
setBody(message.getBody());
return this;
}