diff --git a/google-cloud-clients/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Schema.java b/google-cloud-clients/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Schema.java index 81c8cd279694..c2061c6777d9 100644 --- a/google-cloud-clients/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Schema.java +++ b/google-cloud-clients/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Schema.java @@ -18,10 +18,13 @@ import static com.google.common.base.Preconditions.checkNotNull; +import com.google.api.services.bigquery.model.TableFieldSchema; import com.google.api.services.bigquery.model.TableSchema; import com.google.common.base.Function; import com.google.common.base.MoreObjects; import java.io.Serializable; +import java.util.Collections; +import java.util.List; import java.util.Objects; /** This class represents the schema for a Google BigQuery Table or data source. */ @@ -90,6 +93,10 @@ TableSchema toPb() { } static Schema fromPb(com.google.api.services.bigquery.model.TableSchema tableSchemaPb) { - return Schema.of(FieldList.fromPb(tableSchemaPb.getFields())); + List fields = tableSchemaPb.getFields(); + if (fields == null) { + fields = Collections.emptyList(); + } + return Schema.of(FieldList.fromPb(fields)); } } diff --git a/google-cloud-clients/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java b/google-cloud-clients/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java index 4e8fedc5d4a4..090bb8a27a03 100644 --- a/google-cloud-clients/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java +++ b/google-cloud-clients/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java @@ -18,6 +18,7 @@ import static org.junit.Assert.assertEquals; +import com.google.api.services.bigquery.model.TableSchema; import com.google.common.collect.ImmutableList; import java.util.List; import org.junit.Test; @@ -57,4 +58,11 @@ private void compareTableSchema(Schema expected, Schema value) { assertEquals(expected, value); assertEquals(expected.getFields(), value.getFields()); } + + @Test + public void testEmptySchema() { + TableSchema tableSchema = new TableSchema(); + Schema schema = Schema.fromPb(tableSchema); + assertEquals(0, schema.getFields().size()); + } }