private void assertIsEmpty(SQLErrorCodes sec) { // Codes should be empty assertEquals(0, sec.getBadSqlGrammarCodes().length); assertEquals(0, sec.getDataIntegrityViolationCodes().length); }
private void assertIsHana(SQLErrorCodes sec) { assertTrue(sec.getBadSqlGrammarCodes().length > 0); assertTrue(sec.getDataIntegrityViolationCodes().length > 0); assertTrue(Arrays.binarySearch(sec.getBadSqlGrammarCodes(), "368") >= 0); assertTrue(Arrays.binarySearch(sec.getPermissionDeniedCodes(), "10") >= 0); assertTrue(Arrays.binarySearch(sec.getDuplicateKeyCodes(), "301") >= 0); assertTrue(Arrays.binarySearch(sec.getDataIntegrityViolationCodes(), "461") >= 0); assertTrue(Arrays.binarySearch(sec.getDataAccessResourceFailureCodes(), "-813") >=0); assertTrue(Arrays.binarySearch(sec.getInvalidResultSetAccessCodes(), "582") >=0); assertTrue(Arrays.binarySearch(sec.getCannotAcquireLockCodes(), "131") >= 0); assertTrue(Arrays.binarySearch(sec.getCannotSerializeTransactionCodes(), "138") >= 0); assertTrue(Arrays.binarySearch(sec.getDeadlockLoserCodes(), "133") >= 0); }
private void assertIsHsql(SQLErrorCodes sec) { assertTrue(sec.getBadSqlGrammarCodes().length > 0); assertTrue(sec.getDataIntegrityViolationCodes().length > 0); // This had better be a Bad SQL Grammar code assertTrue(Arrays.binarySearch(sec.getBadSqlGrammarCodes(), "-22") >= 0); // This had better NOT be assertFalse(Arrays.binarySearch(sec.getBadSqlGrammarCodes(), "-9") >= 0); }
private void assertIsDB2(SQLErrorCodes sec) { assertTrue(sec.getBadSqlGrammarCodes().length > 0); assertTrue(sec.getDataIntegrityViolationCodes().length > 0); assertFalse(Arrays.binarySearch(sec.getBadSqlGrammarCodes(), "942") >= 0); // This had better NOT be assertTrue(Arrays.binarySearch(sec.getBadSqlGrammarCodes(), "-204") >= 0); }
private void assertIsOracle(SQLErrorCodes sec) { assertTrue(sec.getBadSqlGrammarCodes().length > 0); assertTrue(sec.getDataIntegrityViolationCodes().length > 0); // These had better be a Bad SQL Grammar code assertTrue(Arrays.binarySearch(sec.getBadSqlGrammarCodes(), "942") >= 0); assertTrue(Arrays.binarySearch(sec.getBadSqlGrammarCodes(), "6550") >= 0); // This had better NOT be assertFalse(Arrays.binarySearch(sec.getBadSqlGrammarCodes(), "9xx42") >= 0); }
return new DuplicateKeyException(buildMessage(task, sql, sqlEx), sqlEx); else if (Arrays.binarySearch(this.sqlErrorCodes.getDataIntegrityViolationCodes(), errorCode) >= 0) { logTranslation(task, sql, sqlEx, false); return new DataIntegrityViolationException(buildMessage(task, sql, sqlEx), sqlEx);
/** * Check that a default instance returns empty error codes for an unknown database. */ @Test public void testDefaultInstanceWithNoSuchDatabase() { SQLErrorCodes sec = SQLErrorCodesFactory.getInstance().getErrorCodes("xx"); assertTrue(sec.getBadSqlGrammarCodes().length == 0); assertTrue(sec.getDataIntegrityViolationCodes().length == 0); }
private void assertIsSQLServer(SQLErrorCodes sec) { assertThat(sec.getDatabaseProductName(), equalTo("Microsoft SQL Server")); assertTrue(sec.getBadSqlGrammarCodes().length > 0); assertTrue(Arrays.binarySearch(sec.getBadSqlGrammarCodes(), "156") >= 0); assertTrue(Arrays.binarySearch(sec.getBadSqlGrammarCodes(), "170") >= 0); assertTrue(Arrays.binarySearch(sec.getBadSqlGrammarCodes(), "207") >= 0); assertTrue(Arrays.binarySearch(sec.getBadSqlGrammarCodes(), "208") >= 0); assertTrue(Arrays.binarySearch(sec.getBadSqlGrammarCodes(), "209") >= 0); assertFalse(Arrays.binarySearch(sec.getBadSqlGrammarCodes(), "9xx42") >= 0); assertTrue(sec.getPermissionDeniedCodes().length > 0); assertTrue(Arrays.binarySearch(sec.getPermissionDeniedCodes(), "229") >= 0); assertTrue(sec.getDuplicateKeyCodes().length > 0); assertTrue(Arrays.binarySearch(sec.getDuplicateKeyCodes(), "2601") >= 0); assertTrue(Arrays.binarySearch(sec.getDuplicateKeyCodes(), "2627") >= 0); assertTrue(sec.getDataIntegrityViolationCodes().length > 0); assertTrue(Arrays.binarySearch(sec.getDataIntegrityViolationCodes(), "544") >= 0); assertTrue(Arrays.binarySearch(sec.getDataIntegrityViolationCodes(), "8114") >= 0); assertTrue(Arrays.binarySearch(sec.getDataIntegrityViolationCodes(), "8115") >= 0); assertTrue(sec.getDataAccessResourceFailureCodes().length > 0); assertTrue(Arrays.binarySearch(sec.getDataAccessResourceFailureCodes(), "4060") >= 0); assertTrue(sec.getCannotAcquireLockCodes().length > 0); assertTrue(Arrays.binarySearch(sec.getCannotAcquireLockCodes(), "1222") >= 0); assertTrue(sec.getDeadlockLoserCodes().length > 0); assertTrue(Arrays.binarySearch(sec.getDeadlockLoserCodes(), "1205") >= 0); }
@Test public void testLookupOrder() { class TestSQLErrorCodesFactory extends SQLErrorCodesFactory { private int lookups = 0; @Override protected Resource loadResource(String path) { ++lookups; if (lookups == 1) { assertEquals(SQLErrorCodesFactory.SQL_ERROR_CODE_DEFAULT_PATH, path); return null; } else { // Should have only one more lookup assertEquals(2, lookups); assertEquals(SQLErrorCodesFactory.SQL_ERROR_CODE_OVERRIDE_PATH, path); return null; } } } // Should have failed to load without error TestSQLErrorCodesFactory sf = new TestSQLErrorCodesFactory(); assertTrue(sf.getErrorCodes("XX").getBadSqlGrammarCodes().length == 0); assertTrue(sf.getErrorCodes("Oracle").getDataIntegrityViolationCodes().length == 0); }
return new DuplicateKeyException(buildMessage(task, sql, sqlEx), sqlEx); else if (Arrays.binarySearch(this.sqlErrorCodes.getDataIntegrityViolationCodes(), errorCode) >= 0) { logTranslation(task, sql, sqlEx, false); return new DataIntegrityViolationException(buildMessage(task, sql, sqlEx), sqlEx);
return new DuplicateKeyException(buildMessage(task, sql, sqlEx), sqlEx); else if (Arrays.binarySearch(this.sqlErrorCodes.getDataIntegrityViolationCodes(), errorCode) >= 0) { logTranslation(task, sql, sqlEx, false); return new DataIntegrityViolationException(buildMessage(task, sql, sqlEx), sqlEx);
logTranslation(task, sql, translated); return new DuplicateKeyException(buildMessage(task, sql, translated), translated); } else if (Arrays.binarySearch(this.sqlErrorCodes.getDataIntegrityViolationCodes(), errorCode) >= 0) { logTranslation(task, sql, translated); return new DataIntegrityViolationException(buildMessage(task, sql, translated), translated);
logTranslation(task, sql, translated); return new DuplicateKeyException(buildMessage(task, sql, translated), translated); } else if (Arrays.binarySearch(this.sqlErrorCodes.getDataIntegrityViolationCodes(), errorCode) >= 0) { logTranslation(task, sql, translated); return new DataIntegrityViolationException(buildMessage(task, sql, translated), translated);