- Navios
- 14 de agosto de 2026 às 02:09 UTC
- Autor
- Kamo
- Enviar
- 9698977
Dois problemas de ida e volta no caminho crítico /mensagens, ambos invisíveis no código que os causou. listFolders abriu cada pasta somente para ler dois inteiros dele. Isso é um SELECT e um FECHAR por pasta, e faz com que o servidor construa cada índice de caixa de correio ao longo do caminho, assim uma caixa de correio de vinte colunas gastou quarenta viagens redondas respondendo um Pergunta sobre quarenta números. A barra lateral recarrega isto na montagem e novamente na todas as alterações na caixa de correio — correio que chega, uma mensagem lida, uma jogada, uma exclusão — por isso é a operação IMAP mais chamada no produto. Javadoc do próprio getUnreadCount disse listFolders foi "muito caro" desde que foi escrito. STATUS retorna exatamente essas contagens e não toca em nenhuma mensagem. Publicidade de servidores RFC 5819 LIST-STATUS, Dovecot entre eles, agora responda a árvore inteira em um comando; qualquer outra coisa recebe um STATUS por pasta fechada, onde Jakarta Mail cache de status serve não lido e total de uma única resposta. Apenas uma pasta cuja servidor recusa STATUS está aberto agora. O caminho da lista tinha um N+1 nada chamado. FetchProfile.Item.ENVELOPE expande para ENVELOPE INTERNALDATE RFC822. toEnvelope chama getContentType() para a heurística de anexos e lê Mensagem-ID para threading. O Jakarta Mail responde a um acessor não prefected por emitindo silenciosamente sua própria mensagem FETCH, então uma página de 50 mensagens custa até 100 viagens de ida e volta. A busca foi pior: não prefetizou nada. Ambos agora compartilham um perfil que cobre cada campo paraEnvelope lê. A resposta LIST-STATUS é analisada aqui em vez de pelo Jakarta Mail, por isso é analisado em teste: IMAPResponse aceita uma linha de protocolo literal, e os dez Casos cobrem encomenda, \Noselect, status ausente e tráfego não relacionado. Um de eles são um bug encontrado — ListInfo decodifica nomes de caixa de correio UTF-7 modificados e Status não, por isso juntar-se a eles como eles chegam teria relatado zero não lido para exatamente aquelas pastas com um sotaque no nome, e nada mais.