in core/src/main/java/org/apache/james/mime4j/stream/MimeTokenStream.java [370:397]
public EntityState next() throws IOException, MimeException {
if (state == EntityState.T_END_OF_STREAM || currentStateMachine == null) {
throw new IllegalStateException("No more tokens are available.");
}
while (currentStateMachine != null) {
EntityStateMachine next = currentStateMachine.advance();
if (next != null) {
entities.add(next);
currentStateMachine = next;
}
state = currentStateMachine.getState();
if (state != EntityState.T_END_OF_STREAM) {
return state;
}
final EntityStateMachine entityStateMachine = entities.removeLast();
if (entityStateMachine instanceof MimeEntity) {
((MimeEntity) entityStateMachine).stop();
}
if (entities.isEmpty()) {
currentStateMachine = null;
} else {
currentStateMachine = entities.getLast();
currentStateMachine.setRecursionMode(recursionMode);
}
}
state = EntityState.T_END_OF_STREAM;
return state;
}