diff --git standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/ObjectStore.java standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/ObjectStore.java index 570281b54f..b03dd54a86 100644 --- standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/ObjectStore.java +++ standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/ObjectStore.java @@ -885,22 +885,12 @@ private MDatabase getMDatabase(String catName, String name) throws NoSuchObjectE } @Override - public Database getDatabase(String catalogName, String name) throws NoSuchObjectException { - MetaException ex = null; - Database db = null; - try { - db = getDatabaseInternal(catalogName, name); - } catch (MetaException e) { - // Signature restriction to NSOE, and NSOE being a flat exception prevents us from - // setting the cause of the NSOE as the MetaException. We should not lose the info - // we got here, but it's very likely that the MetaException is irrelevant and is - // actually an NSOE message, so we should log it and throw an NSOE with the msg. - ex = e; - } + public Database getDatabase(String catalogName, String name) throws NoSuchObjectException, MetaException { + Database db = getDatabaseInternal(catalogName, name); if (db == null) { LOG.warn("Failed to get database {}.{}, returning NoSuchObjectException", - catalogName, name, ex); - throw new NoSuchObjectException(name + (ex == null ? "" : (": " + ex.getMessage()))); + catalogName, name); + throw new NoSuchObjectException(name); } return db; } diff --git standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/RawStore.java standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/RawStore.java index 209e92a415..1d79760a63 100644 --- standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/RawStore.java +++ standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/RawStore.java @@ -130,9 +130,10 @@ void createDatabase(Database db) * @param name name of the database. * @return the database. * @throws NoSuchObjectException if no such database exists. + * @throws MetaException something went wrong, usually with the database. */ Database getDatabase(String catalogName, String name) - throws NoSuchObjectException; + throws NoSuchObjectException, MetaException; /** * Drop a database. diff --git standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/cache/CachedStore.java standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/cache/CachedStore.java index e4ef46fdb4..d8497b1778 100644 --- standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/cache/CachedStore.java +++ standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/cache/CachedStore.java @@ -508,7 +508,7 @@ void update() { } - private void updateDatabases(RawStore rawStore, String catName, List dbNames) { + private void updateDatabases(RawStore rawStore, String catName, List dbNames) throws MetaException { // Prepare the list of databases List databases = new ArrayList<>(); for (String dbName : dbNames) { @@ -735,7 +735,7 @@ public void createDatabase(Database db) throws InvalidObjectException, MetaExcep } @Override - public Database getDatabase(String catName, String dbName) throws NoSuchObjectException { + public Database getDatabase(String catName, String dbName) throws NoSuchObjectException, MetaException { if (!sharedCache.isDatabaseCachePrewarmed()) { return rawStore.getDatabase(catName, dbName); } diff --git standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/DummyRawStoreControlledCommit.java standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/DummyRawStoreControlledCommit.java index c13e538bc4..0ab86779fe 100644 --- standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/DummyRawStoreControlledCommit.java +++ standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/DummyRawStoreControlledCommit.java @@ -202,7 +202,7 @@ public void createDatabase(Database db) throws InvalidObjectException, MetaExcep } @Override - public Database getDatabase(String catName, String dbName) throws NoSuchObjectException { + public Database getDatabase(String catName, String dbName) throws NoSuchObjectException, MetaException { return objectStore.getDatabase(catName, dbName); }