diff --git a/src/java/davmail/pop/PopConnection.java b/src/java/davmail/pop/PopConnection.java index 34faaa86..f0570c36 100644 --- a/src/java/davmail/pop/PopConnection.java +++ b/src/java/davmail/pop/PopConnection.java @@ -205,7 +205,7 @@ public class PopConnection extends AbstractConnection { ExchangeSession.Message message = messages.get(messageNumber); // load big messages in a separate thread - os.write("+OK ".getBytes()); + os.write("+OK ".getBytes("ASCII")); os.flush(); MessageLoadThread.loadMimeMessage(message, os); sendClient(""); @@ -309,14 +309,12 @@ public class PopConnection extends AbstractConnection { * Filter to limit output lines to max body lines after header */ private static final class TopOutputStream extends FilterOutputStream { - private static final int START = 0; - private static final int CR = 1; - private static final int CRLF = 2; - private static final int CRLFCR = 3; - private static final int BODY = 4; + protected static enum State { + START, CR, CRLF, CRLFCR, BODY + } private int maxLines; - private int state = START; + private State state = State.START; private TopOutputStream(OutputStream os, int maxLines) { super(os); @@ -325,34 +323,34 @@ public class PopConnection extends AbstractConnection { @Override public void write(int b) throws IOException { - if (state != BODY || maxLines > 0) { + if (state != State.BODY || maxLines > 0) { super.write(b); } - if (state == BODY) { + if (state == State.BODY) { if (b == '\n') { maxLines--; } - } else if (state == START) { + } else if (state == State.START) { if (b == '\r') { - state = CR; + state = State.CR; } - } else if (state == CR) { + } else if (state == State.CR) { if (b == '\n') { - state = CRLF; + state = State.CRLF; } else { - state = START; + state = State.START; } - } else if (state == CRLF) { + } else if (state == State.CRLF) { if (b == '\r') { - state = CRLFCR; + state = State.CRLFCR; } else { - state = START; + state = State.START; } - } else if (state == CRLFCR) { + } else if (state == State.CRLFCR) { if (b == '\n') { - state = BODY; + state = State.BODY; } else { - state = START; + state = State.START; } } }