Я использую javamail (1.5.5)
для получения писем с биржи 2010 server
.Не удается получить несколько сообщений (java.lang.OutOfMemoryError: Java heap space
).Но он работает нормально при использовании java mail api 1.4.5
без ошибки пространства кучи.
Что странно, размер этого специфического сообщения составляет 136516 байт.Таким образом, при использовании IMAP, он должен быть выбран в течение 9 пакетов (размер выборки по умолчанию составляет 16 КБ).Но из приведенной ниже трассировки отладки что-то странное.
Вот мой код:
Message messObj = message[i]; String messSubject = null;
String messMsgId = null;
java.io.ByteArrayOutputStream bos = new java.io.ByteArrayOutputStream();
messObj.writeTo(bos);
bos.close();
javax.mail.util.SharedByteArrayInputStream bis = new javax.mail.util.SharedByteArrayInputStream(bos.toByteArray());
MimeMessage cmsg = new MimeMessage(session, bis);
bis.close(); mp.setMessage(cmsg);
messSubject = cmsg.getSubject();
messMsgId = ((MimeMessage) cmsg).getMessageID();
System.out.println("debugging:::subject::"+messSubject+"::msgid::"+messMsgId);
ФЛАГИ (\ Seen \ Anspted)) |[14: 48: 21: 205] | [09-26-2018] | [SYSOUT] | [INFO] | [73]: A3893 OK FETCH завершен. |[14: 48: 21: 205] | [09-26-2018] | [SYSOUT] | [INFO] | [73]: A3894 FETCH 1 (BODY [] <536512690.16384>) |[14: 48: 21: 220] | [09-26-2018] | [SYSOUT] | [INFO] | [73]: * 1 FETCH (UID 91149 BODY [] {137921} |
ФЛАГИ(\ Увидели \ ответили)) |[14: 48: 21: 236] | [09-26-2018] | [SYSOUT] | [INFO] | [73]: A3894 OK FETCH завершен. |[14: 48: 21: 236] | [09-26-2018] | [SYSOUT] | [INFO] | [73]: A3895 FETCH 1 (BODY [] <536650611.16384>) |[14: 48: 21: 251] | [09-26-2018] | [SYSOUT] | [INFO] | [73]: * 1 FETCH (UID 91149 BODY [] {137921} |
--5c3ef07b8737170331214bb435ce7be6-- | [14: 48: 21: 267] | [09-26-2018] | [SYSOUT] | [INFO] | [73]: FLAGS (\ Seen \ Anspted)) |[14: 48: 21: 267] | [09-26-2018] | [SYSOUT] | [INFO] | [73]: A3895 OK FETCH завершен. |[14: 48: 21: 267] | [09-26-2018] | [SYSOUT] | [INFO] | [73]: A3896 FETCH 1 (BODY [] <536788532.16384>) |[14: 48: 21: 283] | [09-26-2018] | [SYSOUT] | [INFO] | [73]: * 1 FETCH (UID 91149 BODY [] {137921} |
Ошибка возникает перед печатью системы. Каждый раз, когда извлекается все сообщение, и оно извлекается 3896 раз (после того, как произошла ошибка кучи памяти, и процесс останавливается). Может кто-нибудь сказать мне, что мне здесь не хватает?