for(;;)
{
try {
Properties properties = new Properties();
properties.put("mail.pop3.host", host);
Session emailSession = Session.getDefaultInstance(properties);
POP3Store emailStore = (POP3Store) emailSession.getStore("pop3");
emailStore.connect(login, pass);
Folder emailFolder = emailStore.getFolder("INBOX");
emailFolder.open(Folder.READ_WRITE);
Message[] messages = emailFolder.getMessages();
for (Message message : messages) {
return message.getSubject();
}
emailFolder.close(false);
emailStore.close();
} catch (NoSuchProviderException e) {
} catch (MessagingException e) {
}
}
return null;
Po kompilacji wygląda następująco:
pętla idzie do momentu, kiedy natrafi na maila. Kiedy już pobierze temat wychodzi (return) z pętli nieskończonej. Co ciekawe wszystko działa, bo czy mail będzie od razu po uruchomieniu pętli czy po godzinie i tak wszystko działa. Natomiast kompilator cały czas krzyczy o nieosiągalnym return null; można to inaczej zrobić ?
Ważne jest dla mnie aby było to w jakiś pętli (czas kiedy mail znajdzie się na skrzynce jest nieznany tak naprawdę) ??
Mała poprawka: pierwszy return dałem w warunku:
if(message.getSubject().length() == 13 || message.getSubject().length() == 17)
{
return message.getSubject();
}
drugi wywaliłem i wszystko działa normalnie i kompilator błędu \ ostrzeżenia nie zgłasza. Znaczy, że jest OK ?