Parar um anexo com uma ligação IMAP aberta para sempre

FixEmailService
Navios
3 de setembro de 2026 às 00:03 UTC
Autor
Kamo
Enviar
f20c467

getAttachment retornou IMAPInputStream preguiçosa do Jakarta Mail diretamente para fora comStore, que coloca a Loja de volta na piscina no instante em que a lambda retorna. Seguiram-se duas coisas. O corpo de resposta foi puxado sobre uma conexão outro pedido era livre para pedir emprestado e SELECT em outro lugar, e a pasta tinha que ser deixado aberto para manter até mesmo que possível — uma conexão IMAP inteira por anexo já aberto, contra o orçamento do Dovecot de dez por usuário e IP, com comentário dizendo que o chamador iria fechá-lo e nenhum ouvinte que nunca fez. Cada outro método neste serviço fecha sua pasta em um finalmente; estes não. A parte agora está drenada enquanto a pasta está aberta, então a pasta fecha na a saída e o que o controlador dá à Spring não deve nada à ligação. Peças de até 4 MB ficar no heap e maior um carretel para um arquivo temporário que é desvinculado assim que é aberto, porque uma caixa de correio aceita anexos longe maior do que a pilha do pod e um download não deve ser capaz de OOM o serviço. Também descodifica o nome do remetente. Chega como uma RFC 2047-palavra codificada sempre que não é simples ASCII, e Jakarta Mail só decodifica um se uma JVM-wide a propriedade do sistema diz assim, que não é off — então um acento, um emoji, ou o espaço estreito sem quebra macOS coloca antes "PM" foi suficiente para a lista de anexos para mostrar =?UTF-8?B?U2NyZWVuc2hvdCAy...?= e um download para salvar um arquivo chamado Isso. Decodificado aqui em vez de pela propriedade do sistema, então uma codificação desconhecida volta para o literal em vez de atirar. Gotas getInlinePart e seus ajudantes não lidos: eles carregavam o mesmo vazamento e tinham nenhum chamador, os controladores resolvendo um cid através da lista de anexos.

Todas as alterações

Como o que vês no transporte?

Cada uma dessas atualizações pousa automaticamente em seu espaço de trabalho. Comece grátis e veja crescer semana após semana.

Começar Livre Para SempreVer Preços