Essa regra sinaliza o código Java que usa as exceções obsoletas relacionadas a bloqueio do Spring CannotSerializeTransactionException e DeadlockLoserDataAccessException.
A partir da estrutura Spring 6.0.3, essas exceções foram descontinuadas devido à semântica inconsistente dos drivers JDBC. Os desenvolvedores são aconselhados a usar CannotAcquireLockException em vez disso, que oferece uma maneira unificada e consistente com a estrutura para lidar com falhas pessimistas de bloqueio e isolamento de transações.
O exemplo a seguir mostra o uso inválido que será sinalizado:
import org.springframework.dao.CannotSerializeTransactionException;
import org.springframework.dao.DeadlockLoserDataAccessException;
public class InvalidLockingUsage {
public void simulateCannotSerialize() {
throw new CannotSerializeTransactionException("Simulated serialization failure");
}
public void simulateDeadlock() {
throw new DeadlockLoserDataAccessException("Simulated deadlock");
}
}
O exemplo a seguir mostra o uso migrado válido:
import org.springframework.dao.CannotAcquireLockException;
public class ValidLockingUsage {
public void method() {
throw new CannotAcquireLockException("Simulated issue");
}
}
Para obter informações adicionais, consulte os recursos a seguir: