@ -80,43 +80,43 @@ public class SQLExceptionSubclassTranslator extends AbstractFallbackSQLException
@@ -80,43 +80,43 @@ public class SQLExceptionSubclassTranslator extends AbstractFallbackSQLException
if ( sqlEx instanceof SQLTransientException ) {
if ( sqlEx instanceof SQLTransientConnectionException ) {
return new TransientDataAccessResourceException ( buildMessage ( task , sql , sqlEx ) , sqlE x) ;
return new TransientDataAccessResourceException ( buildMessage ( task , sql , sqlEx ) , e x) ;
}
if ( sqlEx instanceof SQLTransactionRollbackException ) {
if ( SQLStateSQLExceptionTranslator . indicatesCannotAcquireLock ( sqlEx . getSQLState ( ) ) ) {
return new CannotAcquireLockException ( buildMessage ( task , sql , sqlEx ) , sqlE x) ;
return new CannotAcquireLockException ( buildMessage ( task , sql , sqlEx ) , e x) ;
}
return new PessimisticLockingFailureException ( buildMessage ( task , sql , sqlEx ) , sqlE x) ;
return new PessimisticLockingFailureException ( buildMessage ( task , sql , sqlEx ) , e x) ;
}
if ( sqlEx instanceof SQLTimeoutException ) {
return new QueryTimeoutException ( buildMessage ( task , sql , sqlEx ) , sqlE x) ;
return new QueryTimeoutException ( buildMessage ( task , sql , sqlEx ) , e x) ;
}
}
else if ( sqlEx instanceof SQLNonTransientException ) {
if ( sqlEx instanceof SQLNonTransientConnectionException ) {
return new DataAccessResourceFailureException ( buildMessage ( task , sql , sqlEx ) , sqlE x) ;
return new DataAccessResourceFailureException ( buildMessage ( task , sql , sqlEx ) , e x) ;
}
if ( sqlEx instanceof SQLDataException ) {
return new DataIntegrityViolationException ( buildMessage ( task , sql , sqlEx ) , sqlE x) ;
return new DataIntegrityViolationException ( buildMessage ( task , sql , sqlEx ) , e x) ;
}
if ( sqlEx instanceof SQLIntegrityConstraintViolationException ) {
if ( SQLStateSQLExceptionTranslator . indicatesDuplicateKey ( sqlEx . getSQLState ( ) , sqlEx . getErrorCode ( ) ) ) {
return new DuplicateKeyException ( buildMessage ( task , sql , sqlEx ) , sqlE x) ;
return new DuplicateKeyException ( buildMessage ( task , sql , sqlEx ) , e x) ;
}
return new DataIntegrityViolationException ( buildMessage ( task , sql , sqlEx ) , sqlE x) ;
return new DataIntegrityViolationException ( buildMessage ( task , sql , sqlEx ) , e x) ;
}
if ( sqlEx instanceof SQLInvalidAuthorizationSpecException ) {
return new PermissionDeniedDataAccessException ( buildMessage ( task , sql , sqlEx ) , sqlE x) ;
return new PermissionDeniedDataAccessException ( buildMessage ( task , sql , sqlEx ) , e x) ;
}
if ( sqlEx instanceof SQLSyntaxErrorException ) {
return new BadSqlGrammarException ( task , ( sql ! = null ? sql : "" ) , sqlE x) ;
return new BadSqlGrammarException ( task , ( sql ! = null ? sql : "" ) , e x) ;
}
if ( sqlEx instanceof SQLFeatureNotSupportedException ) {
return new InvalidDataAccessApiUsageException ( buildMessage ( task , sql , sqlEx ) , sqlE x) ;
return new InvalidDataAccessApiUsageException ( buildMessage ( task , sql , sqlEx ) , e x) ;
}
}
else if ( sqlEx instanceof SQLRecoverableException ) {
return new RecoverableDataAccessException ( buildMessage ( task , sql , sqlEx ) , sqlE x) ;
return new RecoverableDataAccessException ( buildMessage ( task , sql , sqlEx ) , e x) ;
}
// Fallback to Spring's own SQL state translation...