- Se descapó
- 14 de agosto de 2026 a las 2:09 UTC
- Autor
- Kamo
- Compromit
- 9698977
Dos problemas de ida y vuelta en la ruta crítica /messages, ambos invisibles en el código que los causó. listFolders abrió cada carpeta de lectura de sólo para leer dos números enteros de ella. Eso es un SELECT y un CLOSE por carpeta, y hace que el servidor construya cada índice buzón en el camino, por lo que un buzón de veinte carpetas pasó cuarenta viajes de ida y vuelta respondiendo a un pregunta sobre cuarenta números. La barra lateral vuelve a cargar esto en la montura y de nuevo en cada cambio de buzón de correos que llega, un mensaje leído, un movimiento, un borrado. es la operación IMAP más llamada en el producto. getUnreadCount's propio javadoc ha dicho que la listaFolders era "muy costosa" desde que fue escrita. STATUS devuelve exactamente esos conteos y no toca ningún mensaje. Servicios de publicidad RFC 5819 LIST-STATUS, Dovecot entre ellos, ahora responde todo el árbol en uno Comando; cualquier otra cosa obtiene un STATUS por carpeta cerrada, donde el de Jakarta Mail La caché de estado sirve sin leer y total de una sola respuesta. Sólo una carpeta cuya el servidor rechaza que STATUS se abra ahora. La ruta de la lista tenía un número 1 nada nombrado. FetchProfile.Item.ENVELOPE se expande a ENVELOPE INTERNALDATE RFC822.SIZE - no BODYSTRUCTURE y sin cabeceras - pero a las llamadas de Envelope getContentType() para el acceso heurístico y lee Mensaje-ID para hilo. Jakarta Mail responde a un accesorio sin precedentes por lanzando silenciosamente su propio FETCH de un solo mensaje, por lo que una página de cincuenta mensajes costó hasta cien viajes de ida y vueltas. La búsqueda fue peor: no preclosionó en absoluto. Ambos comparten ahora un perfil que cubre cada campo a Envelope lee. La respuesta de LIST-STATUS está analizada aquí en lugar de por Jakarta Mail, así que lo es analizado en prueba: IMAPResponse acepta una línea de protocolo literal, y la diez los casos cubren el orden, Noselect, ausente STATUS y tráfico no relacionado. Uno de es un error que se encuentra. ListInfo decodifica los nombres de buzón UTF-7 modificado y El estatus no, por lo que unirse a ellos como llegan habría reportado cero sin leer para exactamente esas carpetas con acento en el nombre, y nada más.