diff --git standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/DatabaseProduct.java standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/DatabaseProduct.java index 03a5e4a..0b3504d 100644 --- standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/DatabaseProduct.java +++ standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/DatabaseProduct.java @@ -53,10 +53,10 @@ public static DatabaseProduct determineDatabaseProduct(String productName) throw public static boolean isDeadlock(DatabaseProduct dbProduct, SQLException e) { return e instanceof SQLTransactionRollbackException || ((dbProduct == MYSQL || dbProduct == POSTGRES || dbProduct == SQLSERVER) - && e.getSQLState().equals("40001")) - || (dbProduct == POSTGRES && e.getSQLState().equals("40P01")) - || (dbProduct == ORACLE && (e.getMessage().contains("deadlock detected") - || e.getMessage().contains("can't serialize access for this transaction"))); + && "40001".equals(e.getSQLState())) + || (dbProduct == POSTGRES && "40P01".equals(e.getSQLState())) + || (dbProduct == ORACLE && (e.getMessage() != null && (e.getMessage().contains("deadlock detected") + || e.getMessage().contains("can't serialize access for this transaction")))); } /**