Restaurar o @Lazy que para o contexto dependendo de si mesmo

FixSecurityService
Navios
4 de setembro de 2026 às 22:39 UTC
Autor
Kamo
Enviar
fe3e433

Cada módulo SecurityService construído desde 4bd25e7 não começa: As dependências de alguns feijões no contexto da aplicação formam um ciclo: O que é isso? CommitLogTranslationListener (campo ... .self) O que é isso? CommitLogTranslationListener se injeta para que translateCommitLog() seja chamado através do proxy Spring — um método @Async/@Transactional invocado como this.method() ignora o proxy e a anotação não faz nada. O que fez isso? Legal foi @Lazy no campo. Ainda está no arquivo, e isso é o todo armadilha: 4bd25e7 inserido o campo SingletonTaskRunner entre a anotação e o campo que guardou, então @Lazy ligado ao novo vizinho em vez disso. Nada foi excluído, o diff lido como uma adição pura, ea auto-injeção silenciosamente tornou-se ansioso. Escondeu-se bem. Um pod mais velho ficou acima servindo tráfego enquanto ambos os novos replicaSets CrashLooped, de modo que o serviço parecia saudável e simplesmente velho — que é como ele não responder", porque o endpoint que chama só existe na imagem que não consegui começar. Nada o apanhou e nada o poderia ter feito. ApplicationContextStartsTest is the guardar para exatamente este modo de falha e é @Desabled até que exista um Redis para ele, e CI aqui administra a suíte com -DskipTests, então uma árvore vermelha constrói e Avançar. Então a solução vem com uma catraca estática. SelfInjectionLazyRatchetTest lê o fonte e afirma que cada campo cujo tipo é sua própria classe declarante tem @Lazy DIRECTAMENTE acima dele — adjacência, não mera presença, uma vez que "o arquivo contém um @Lazy em algum lugar" foi verdade durante toda a interrupção. Falha no erro e passa a correção, e falha em voz alta se parar de encontrar auto-injeções em tudo, em vez de passar vagamente o caminho SecurityServiceAplicationTests Sim, durante meses. (Escreveu primeiro como um regex abrangendo as anotações, que backtracked em um StackOverflowError — uma falha que se parece exatamente com uma detecção até você Lê. Agora corresponde a uma linha de cada vez.) Suíte completa: 2130 testes, 0 falhas.

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