- Shipped
- 26 de agosto de 2026 a las 3:33 UTC
- Author
- Kamo
- Commit
- 27d3200
Encontrando 1 (crítico): una reclamación perdedora en un evento de Stripe entregado solamente había una fila probada, no que el intento anterior terminara. A reclamado fila dejada atrás por un fallo transitorio (Yugabyte 40001, un Hikari tiempo fuera, una carrera de una sola constrasión) parecía idéntica a una genuina duplicado, por lo que la redelivery respondió 200 y Stripe permanentemente Dejó de volver a intentar escribir dinero que nunca aterrizó. Añadido ******************* (su propio REQUIRES-NEW leer) por lo que se juzga una reclamación perdedora por si se tramita realmente volteada a la verdad; una fila sin procesar ahora lanza **************** en lugar de volver, así que el El controlador responde a 500 y la ventana de tres días de Recuperante de Stripe permanece abierta. Encontrando 2 (Importante): markProcessed descartó su conteo de filas. A Actualización de cero fila fue invisible y dejó el evento silenciosamente sin procesar para siempre, sin que nada fallara en ninguna parte. Ahora afirma exactamente una fila se actualizó y lanza lo contrario; el javadoc registra el Yugabyte Razonamiento de aislamiento instantánea que hace que esto sea seguro hoy y frágil si una lectura de repositorio se añade siempre antes de la reclamación. Encontrando 4 (Minor): el controlador registró la ausencia-Stripe-Signature- Caso de cabecera en ERROR, lo mismo que un auténtico secreto de faltas una desconfiguración errónea. Ese endpoint es público y accesible a internet, así que cualquier persona que llamar pueda generar líneas de ERROR a la carta omitiendo la cabecera. WebhookNotConfiguredException ahora lleva una llamada de banderaCaused; el controlador registra WARN para el caso de encabezado y reservas ERROR para el caso que en realidad es nuestro para arreglar. Pruebas: fijar ambas direcciones de la nueva puerta de reclamo de comportamiento (StripeWebhookClaimGateTest, con una carga útil firmada por HMAC real) y a través de forma de fuente (StripeWebhookIdempotencyTest); el markProcessed aseo de conteo de filas con un repositorio burlado ******************* y el WARN/ERROR Dividir comportamiento a través de un registro ListAppender ********************** Los tres están carga de carga revirtiendo cada solución a su vez, confirmando la Las pruebas nuevas correspondientes se vuelven rojas, luego restauran y confirman el verde. Suite completa: 208 pruebas, 0 fallos, 0 errores (a partir de 193 en 674fa0f).