- Shipped
- 27 agosto 2026 alle ore 09:09 UTC
- Author
- Kamo
- Commit
- 31379b6
Era un metodo per ExchangeQueryService annotato @Transactional(REQUIRES NEW), chiamato da due assistenti privati sulla stessa classe. Il consiglio di transazione di primavera vive su un proxy e un'autoinvocazione non raggiunge mai questo, così l'annotazione non ha fatto nulla affatto: la riga ha unito la transazione del chiamante. Questo è esattamente all'indietro per quello che registra. Una domanda in uscita FAILED hanno riportato indietro il record del proprio fallimento — e "abbiamo chiesto e hanno rifiutato" è la fila che qualcuno indaga un divario nella storia di un paziente ha effettivamente bisogno. A ledger di solo le domande di successo risponde alla domanda facile e perde il Uno duro. Peggio ancora, scopri() e queryDocuments() sono lettiSolo = vero, quindi la scrittura non aveva alcun business essere nella loro transazione affatto. Estratto a ExchangeRequestRecorder, un fagiolo proprio, esattamente come BulkExportJobState era prima per lo stesso motivo. Un test unitario non può catturarlo — la costruzione del servizio significa direttamente che c'è nessun proxy, ed è per questo che è passato mentre era sbagliato. Così la guardia è strutturale: il test del registratore afferma che il metodo è PUBLIC (un metodo non pubblico non è mai proxied, facendo la sua annotazione inerte) e che la sua propagazione è No. Entrambe le metà sono invisibili in un luogo di chiamata e entrambi devono tenere.