CannotSerializeTransactionException e DeadlockLoserDataAccessException sono deprecati a partire da Spring 6.0.3

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: