Questa regola segnala il codice di Java che utilizza le eccezioni deprecate di Spring 'relative ai locking CannotSerializeTransactionException e DeadlockLoserDataAccessException.
A partire da Spring Framework 6.0.3, queste eccezioni sono state deprecate a causa di una semantica incoerente tra i driver di JDBC. Si consiglia agli sviluppatori di utilizzare CannotAcquireLockException che offre invece un modo unificato e coerente con il framework per gestire il locking pessimistico e i fallimenti dell'isolamento delle transazioni.
L'esempio seguente mostra un utilizzo non valido che verrĂ segnalato:
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");
}
}
L'esempio seguente mostra un uso valido della migrazione:
import org.springframework.dao.CannotAcquireLockException;
public class ValidLockingUsage {
public void method() {
throw new CannotAcquireLockException("Simulated issue");
}
}
Per ulteriori informazioni, consultare le seguenti risorse: