in dom/src/main/java/org/apache/james/mime4j/message/DefaultMessageBuilder.java [261:292]
public Header parseHeader(final InputStream is) throws IOException, MimeIOException {
final MimeConfig cfg = config != null ? config : MimeConfig.DEFAULT;
boolean strict = cfg.isStrictParsing();
final DecodeMonitor mon = monitor != null ? monitor :
strict ? DecodeMonitor.STRICT : DecodeMonitor.SILENT;
final FieldParser<? extends ParsedField> fp = fieldParser != null ? fieldParser :
strict ? DefaultFieldParser.getParser() : LenientFieldParser.getParser();
final HeaderImpl header = new HeaderImpl();
final MimeStreamParser parser = new MimeStreamParser(cfg, mon, null);
parser.setContentHandler(new AbstractContentHandler() {
@Override
public void endHeader() {
parser.stop();
}
@Override
public void field(Field field) throws MimeException {
ParsedField parsedField;
if (field instanceof ParsedField) {
parsedField = (ParsedField) field;
} else {
parsedField = fp.parse(field, mon);
}
header.addField(parsedField);
}
});
try {
parser.parse(is);
} catch (MimeException ex) {
throw new MimeIOException(ex);
}
return header;
}