O diário de sincronização e uma execução de terminal que está realmente congelada

Featurekamo-shared-library
Navios
27 de agosto de 2026 às 19:15 UTC
Autor
Kamo
Enviar
1608785

BL1 Tarefa 5, metade bibliotecária compartilhada. Cinco enums de diário, três entidades e três Repositórios abaixo de... Sem estereótipos: BillingWormGuard é uma classe final simples com um construtor privado, e SharedLibBeanSafety O teste está verde. Duas melhorias deliberadas sobre a fonte da folha de pagamento: 1. OS DOCUMENTOS DE PAGAMENTO TERMINAL-RESIDENTE E NÃO TEM (defeito 5). PayrollO javadoc do SyncRun afirma que "uma execução de terminal nunca é reescrita" com Nada por trás disso. BillingSyncRun impõe-o. O plano especifica o guarda como uma leitura nua do campo atual: if (state != null && state != BillingSyncRunState.RUNNING) {jogar ... } Essa versão está errada e teria quebrado a produção. @ Pré- Actualizar incêndios APÓS o chamador ter mutado a entidade, então ele vê o estado terminal BillingSyncJournal.complete() acaba de atribuir e se recusa a escrever o row existe para receber — complete() jogaria em cada execução e closeStaleRuns () em cada varredura. Portanto, a guarda compara-se com o estado como LOADED, capturado por um instantâneo @PostLoad em um campo @Transient. A linha nunca carregada (um novo `novo') é julgado em seu estado atual, que mantém O próprio teste do plano é significativo. 2. dbNow () (gap marcado de Auto-Revisão). Payroll lê o relógio do banco de dados de TimecardPunchRepository; O serviço de faturamento não tem tabela de socos. Adicionado ********************** @Query( value = "SELECT CAST( now() AS timestamp)", nativeQuery = true) — com o CAST padrão SQL, porque o elenco é silenciosamente mutilado: Hibernate lê `:` como prefixo de parâmetro-nomeado e vira now():timestamp into :timestamp. BillingSyncJournal é o seu único interlocutor e o único escritor real de occidentAt; os fallbacks @PrePersist LocalDateTime.now() das entidades são mantidos como guardas de último recurso e documentados como tal (defeito 6). Ambas as entidades WORM são servidas por repositórios NARROW que estendem Repositório, não JpaRepository, então não há exclusão de lote para passar @PreRemove. Provas TDD — Primeiro RED (compilação, antes da existência de qualquer das classes): [ERROR] **************************** não foi possível encontrar o símbolo [ERROR] símbolo: classe BillingSyncIssue Localização: classe. ... 20 erros de "não consigo encontrar o símbolo" GREEN após a implementação: Testes executados: 7, Falhas: 0, Erros: 0, Ignorado: 0 Mutações, cada execução de uma cópia isolada `git arquivo HEAD' com o seu próprio target/ e seu próprio -Dmaven.repo.local (este checkout é compartilhado com outros sessões e uma suite vermelha aqui normalmente é a fase vermelha de outra pessoa): MUTATION D — executionTerminal A imutabilidade é substituída por «retorno» (os nomes do passo 6 do plano): Testes executados: 7, Falhas: 2, Erros: 0, Pular: 0 < < < Falha! **************************** < < < Falha! java.lang. AsserçãoError: Esperando código para levantar um jogável. - Não. **************************** < < < Falha! java.lang. AsserçãoError: Esperando código para levantar um jogável. - Não. MUTATION E — o guarda reescrito exatamente como o plano especifica, ou seja, um nu ler de `state' sem @PostLoad instantâneo. Esta é a evidência de que o A versão do plano está quebrada: Testes executados: 7, Falhas: 1, Erros: 0, Pular: 0 < < < Falha! **************************** < < < Falha! java.lang. AsserçãoError: Esperando código para não levantar um jogável, mas capturado **************************** BillingSyncRun null is SUCEEDED and is evidência sobre uma execução completa; não pode ser reescrita. - Não. - Não. MUTAÇÃO F — BillingWormGuard.rejeitaram: Testes executados: 7, Falhas: 4, Erros: 0, Pular: 0 < < < Falha! **************************** - O quê? Esperando código para levantar um jogável. **************************** - O quê? Esperando código para levantar um jogável. **************************** - O quê? Esperando código para levantar um jogável. **************************** - O quê? Esperando código para levantar um jogável. Os três reverteram. Suíte de biblioteca completa depois: Testes executados: 2288, Falhas: 0, Erros: 0, Ignorado: 0 SUCESSO À CONSTRUÇÃO <versão> intocada em 1.6.0. Não pressionado — Tarefa 9 aterra primeiro DDL.

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