diff --git hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/listener/DbNotificationListener.java hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/listener/DbNotificationListener.java index 6d7ee4cb824ba40537876bd0629831a19ac91d76..81b8319730b161cd8b1b30b2bcbeae8b8bbd9100 100644 --- hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/listener/DbNotificationListener.java +++ hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/listener/DbNotificationListener.java @@ -22,6 +22,7 @@ import java.util.List; import java.util.concurrent.TimeUnit; +import com.google.common.collect.Iterators; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; @@ -58,6 +59,7 @@ import org.apache.hadoop.hive.metastore.events.InsertEvent; import org.apache.hadoop.hive.metastore.events.LoadPartitionDoneEvent; import org.apache.hadoop.hive.metastore.events.ListenerEvent; +import org.apache.hadoop.hive.metastore.messaging.CreateTableMessage; import org.apache.hadoop.hive.metastore.messaging.EventMessage.EventType; import org.apache.hadoop.hive.metastore.messaging.MessageFactory; import org.apache.hadoop.hive.metastore.messaging.PartitionFiles; @@ -133,9 +135,13 @@ public void onConfigChange(ConfigChangeEvent tableEvent) throws MetaException { @Override public void onCreateTable(CreateTableEvent tableEvent) throws MetaException { Table t = tableEvent.getTable(); + boolean success = tableEvent.getStatus(); + final CreateTableMessage tableMessage = + msgFactory.buildCreateTableMessage(t, + success ? new FileIterator(t.getSd().getLocation()) : + Iterators.emptyIterator()); NotificationEvent event = - new NotificationEvent(0, now(), EventType.CREATE_TABLE.toString(), msgFactory - .buildCreateTableMessage(t, new FileIterator(t.getSd().getLocation())).toString()); + new NotificationEvent(0, now(), EventType.CREATE_TABLE.toString(), tableMessage.toString()); event.setDbName(t.getDbName()); event.setTableName(t.getTableName()); process(event, tableEvent);