Index: hbase-server/src/main/java/org/apache/hadoop/hbase/master/TableNamespaceManager.java =================================================================== --- hbase-server/src/main/java/org/apache/hadoop/hbase/master/TableNamespaceManager.java (revision 1538673) +++ hbase-server/src/main/java/org/apache/hadoop/hbase/master/TableNamespaceManager.java (working copy) @@ -115,7 +115,8 @@ public synchronized NamespaceDescriptor get(String name) throws IOException { - return get(getNamespaceTable(), name); + if (!isTableAvailableAndInitialized()) return null; + return zkNamespaceManager.get(name); } public synchronized void create(NamespaceDescriptor ns) throws IOException { @@ -245,7 +246,7 @@ * @throws IOException */ @SuppressWarnings("deprecation") - public synchronized boolean isTableAvailableAndInitialized() throws IOException { + private synchronized boolean isTableAvailableAndInitialized() throws IOException { // Did we already get a table? If so, still make sure it's available if (initialized) { if (nsTable.getConnection().isClosed()) { Index: hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java =================================================================== --- hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java (revision 1538673) +++ hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java (working copy) @@ -3102,9 +3102,6 @@ @Override public NamespaceDescriptor getNamespaceDescriptor(String name) throws IOException { - if (!isTableNamespaceManagerReady()) { - throw new IOException("Table Namespace Manager not ready yet, try again later"); - } NamespaceDescriptor nsd = tableNamespaceManager.get(name); if (nsd == null) { throw new NamespaceNotFoundException(name); @@ -3114,17 +3111,11 @@ @Override public List listNamespaceDescriptors() throws IOException { - if (!isTableNamespaceManagerReady()) { - return Lists.newArrayList(); - } return Lists.newArrayList(tableNamespaceManager.list()); } @Override public List listTableDescriptorsByNamespace(String name) throws IOException { - if (!isTableNamespaceManagerReady()) { - return Lists.newArrayList(); - } getNamespaceDescriptor(name); // check that namespace exists return Lists.newArrayList(tableDescriptors.getByNamespace(name).values()); } @@ -3132,9 +3123,6 @@ @Override public List listTableNamesByNamespace(String name) throws IOException { List tableNames = Lists.newArrayList(); - if (!isTableNamespaceManagerReady()) { - return tableNames; - } getNamespaceDescriptor(name); // check that namespace exists for (HTableDescriptor descriptor: tableDescriptors.getByNamespace(name).values()) { tableNames.add(descriptor.getTableName()); @@ -3142,13 +3130,4 @@ return tableNames; } - private boolean isTableNamespaceManagerReady() throws IOException { - boolean ready = tableNamespaceManager != null && - tableNamespaceManager.isTableAvailableAndInitialized(); - if (!ready) { - LOG.warn("Table Namespace Manager not ready yet"); - } - return ready; - } - }