From 1d8ad737ec9c9ee33467e667360824a7516fcf47 Mon Sep 17 00:00:00 2001 From: nk1506 Date: Wed, 31 Jul 2024 19:45:21 +0530 Subject: [PATCH 1/4] Minor: Fix possible NPE. --- .../io/polaris/core/persistence/ResolvedPolarisEntity.java | 2 ++ .../core/persistence/resolver/PolarisResolutionManifest.java | 5 +++-- .../java/io/polaris/service/catalog/BasePolarisCatalog.java | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/polaris-core/src/main/java/io/polaris/core/persistence/ResolvedPolarisEntity.java b/polaris-core/src/main/java/io/polaris/core/persistence/ResolvedPolarisEntity.java index f5b5c674c5..b1d49ae62b 100644 --- a/polaris-core/src/main/java/io/polaris/core/persistence/ResolvedPolarisEntity.java +++ b/polaris-core/src/main/java/io/polaris/core/persistence/ResolvedPolarisEntity.java @@ -15,6 +15,7 @@ */ package io.polaris.core.persistence; +import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; import io.polaris.core.entity.PolarisEntity; import io.polaris.core.entity.PolarisGrantRecord; @@ -45,6 +46,7 @@ public ResolvedPolarisEntity( } public ResolvedPolarisEntity(EntityCacheEntry cacheEntry) { + Preconditions.checkNotNull(cacheEntry, "An entity cache can't be null."); this.entity = PolarisEntity.of(cacheEntry.getEntity()); this.grantRecordsAsGrantee = ImmutableList.copyOf(cacheEntry.getGrantRecordsAsGrantee()); this.grantRecordsAsSecurable = ImmutableList.copyOf(cacheEntry.getGrantRecordsAsSecurable()); diff --git a/polaris-core/src/main/java/io/polaris/core/persistence/resolver/PolarisResolutionManifest.java b/polaris-core/src/main/java/io/polaris/core/persistence/resolver/PolarisResolutionManifest.java index 7c50039411..51a893a005 100644 --- a/polaris-core/src/main/java/io/polaris/core/persistence/resolver/PolarisResolutionManifest.java +++ b/polaris-core/src/main/java/io/polaris/core/persistence/resolver/PolarisResolutionManifest.java @@ -403,7 +403,8 @@ public PolarisResolvedPathWrapper getResolvedTopLevelEntity( if (resolvedCacheEntry == null) { return null; } - return new PolarisResolvedPathWrapper( - List.of(getResolvedRootContainerEntity(), new ResolvedPolarisEntity(resolvedCacheEntry))); + + ResolvedPolarisEntity resolvedRootContainerEntity = getResolvedRootContainerEntity(); + return resolvedRootContainerEntity == null ? new PolarisResolvedPathWrapper(List.of(new ResolvedPolarisEntity(resolvedCacheEntry))):new PolarisResolvedPathWrapper(List.of(resolvedRootContainerEntity, new ResolvedPolarisEntity(resolvedCacheEntry))) ; } } diff --git a/polaris-service/src/main/java/io/polaris/service/catalog/BasePolarisCatalog.java b/polaris-service/src/main/java/io/polaris/service/catalog/BasePolarisCatalog.java index 593fb87b2b..2c7c1ea31e 100644 --- a/polaris-service/src/main/java/io/polaris/service/catalog/BasePolarisCatalog.java +++ b/polaris-service/src/main/java/io/polaris/service/catalog/BasePolarisCatalog.java @@ -1320,7 +1320,7 @@ private void validateMetadataFileInTableDir( return storageInfoEntity; } - private class BasePolarisViewOperations extends BaseViewOperations { + protected class BasePolarisViewOperations extends BaseViewOperations { private final TableIdentifier identifier; private final String fullViewName; private FileIO viewFileIO; From 77c59c4072a24168f80408a969ab91129d4993d3 Mon Sep 17 00:00:00 2001 From: nk1506 Date: Thu, 1 Aug 2024 09:52:33 +0530 Subject: [PATCH 2/4] Addressed comment --- .../core/persistence/resolver/PolarisResolutionManifest.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/polaris-core/src/main/java/io/polaris/core/persistence/resolver/PolarisResolutionManifest.java b/polaris-core/src/main/java/io/polaris/core/persistence/resolver/PolarisResolutionManifest.java index 51a893a005..c20c0c6fe9 100644 --- a/polaris-core/src/main/java/io/polaris/core/persistence/resolver/PolarisResolutionManifest.java +++ b/polaris-core/src/main/java/io/polaris/core/persistence/resolver/PolarisResolutionManifest.java @@ -405,6 +405,9 @@ public PolarisResolvedPathWrapper getResolvedTopLevelEntity( } ResolvedPolarisEntity resolvedRootContainerEntity = getResolvedRootContainerEntity(); - return resolvedRootContainerEntity == null ? new PolarisResolvedPathWrapper(List.of(new ResolvedPolarisEntity(resolvedCacheEntry))):new PolarisResolvedPathWrapper(List.of(resolvedRootContainerEntity, new ResolvedPolarisEntity(resolvedCacheEntry))) ; + return resolvedRootContainerEntity == null + ? new PolarisResolvedPathWrapper(List.of(new ResolvedPolarisEntity(resolvedCacheEntry))) + : new PolarisResolvedPathWrapper( + List.of(resolvedRootContainerEntity, new ResolvedPolarisEntity(resolvedCacheEntry))); } } From 5939886a9e7916b318a7b66373cc5a131f2fcd1d Mon Sep 17 00:00:00 2001 From: nk1506 Date: Fri, 2 Aug 2024 12:11:25 +0530 Subject: [PATCH 3/4] Addressed comments. --- .../io/polaris/core/persistence/ResolvedPolarisEntity.java | 5 ++--- .../java/io/polaris/service/catalog/BasePolarisCatalog.java | 5 +++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/polaris-core/src/main/java/io/polaris/core/persistence/ResolvedPolarisEntity.java b/polaris-core/src/main/java/io/polaris/core/persistence/ResolvedPolarisEntity.java index b1d49ae62b..2654282663 100644 --- a/polaris-core/src/main/java/io/polaris/core/persistence/ResolvedPolarisEntity.java +++ b/polaris-core/src/main/java/io/polaris/core/persistence/ResolvedPolarisEntity.java @@ -15,12 +15,12 @@ */ package io.polaris.core.persistence; -import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; import io.polaris.core.entity.PolarisEntity; import io.polaris.core.entity.PolarisGrantRecord; import io.polaris.core.persistence.cache.EntityCacheEntry; import java.util.List; +import org.jetbrains.annotations.NotNull; public class ResolvedPolarisEntity { private final PolarisEntity entity; @@ -45,8 +45,7 @@ public ResolvedPolarisEntity( this.grantRecordsAsSecurable = grantRecordsAsSecurable; } - public ResolvedPolarisEntity(EntityCacheEntry cacheEntry) { - Preconditions.checkNotNull(cacheEntry, "An entity cache can't be null."); + public ResolvedPolarisEntity(@NotNull EntityCacheEntry cacheEntry) { this.entity = PolarisEntity.of(cacheEntry.getEntity()); this.grantRecordsAsGrantee = ImmutableList.copyOf(cacheEntry.getGrantRecordsAsGrantee()); this.grantRecordsAsSecurable = ImmutableList.copyOf(cacheEntry.getGrantRecordsAsSecurable()); diff --git a/polaris-service/src/main/java/io/polaris/service/catalog/BasePolarisCatalog.java b/polaris-service/src/main/java/io/polaris/service/catalog/BasePolarisCatalog.java index 2c7c1ea31e..a4d6c31dbd 100644 --- a/polaris-service/src/main/java/io/polaris/service/catalog/BasePolarisCatalog.java +++ b/polaris-service/src/main/java/io/polaris/service/catalog/BasePolarisCatalog.java @@ -96,6 +96,7 @@ import org.apache.iceberg.view.ViewBuilder; import org.apache.iceberg.view.ViewMetadata; import org.apache.iceberg.view.ViewMetadataParser; +import org.apache.iceberg.view.ViewOperations; import org.apache.iceberg.view.ViewUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.TestOnly; @@ -704,7 +705,7 @@ public List listViews(Namespace namespace) { } @Override - protected BasePolarisViewOperations newViewOps(TableIdentifier identifier) { + protected ViewOperations newViewOps(TableIdentifier identifier) { return new BasePolarisViewOperations(catalogFileIO, identifier); } @@ -1320,7 +1321,7 @@ private void validateMetadataFileInTableDir( return storageInfoEntity; } - protected class BasePolarisViewOperations extends BaseViewOperations { + private class BasePolarisViewOperations extends BaseViewOperations { private final TableIdentifier identifier; private final String fullViewName; private FileIO viewFileIO; From bbf6ce1b6fb3207e7a36c23269f5461daba31e6d Mon Sep 17 00:00:00 2001 From: nk1506 Date: Fri, 2 Aug 2024 23:21:41 +0530 Subject: [PATCH 4/4] Addressed comments. --- .../java/io/polaris/service/catalog/BasePolarisCatalog.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/polaris-service/src/main/java/io/polaris/service/catalog/BasePolarisCatalog.java b/polaris-service/src/main/java/io/polaris/service/catalog/BasePolarisCatalog.java index a4d6c31dbd..593fb87b2b 100644 --- a/polaris-service/src/main/java/io/polaris/service/catalog/BasePolarisCatalog.java +++ b/polaris-service/src/main/java/io/polaris/service/catalog/BasePolarisCatalog.java @@ -96,7 +96,6 @@ import org.apache.iceberg.view.ViewBuilder; import org.apache.iceberg.view.ViewMetadata; import org.apache.iceberg.view.ViewMetadataParser; -import org.apache.iceberg.view.ViewOperations; import org.apache.iceberg.view.ViewUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.TestOnly; @@ -705,7 +704,7 @@ public List listViews(Namespace namespace) { } @Override - protected ViewOperations newViewOps(TableIdentifier identifier) { + protected BasePolarisViewOperations newViewOps(TableIdentifier identifier) { return new BasePolarisViewOperations(catalogFileIO, identifier); }