From 7eac58a266582ff5f7aab5804be9ef6536029091 Mon Sep 17 00:00:00 2001 From: Alexandre Dutra Date: Tue, 28 Jan 2025 14:10:36 +0100 Subject: [PATCH] comments --- .../core/persistence/LocalPolarisMetaStoreManagerFactory.java | 4 ++++ .../persistence/InMemoryPolarisMetaStoreManagerFactory.java | 3 +++ 2 files changed, 7 insertions(+) diff --git a/polaris-core/src/main/java/org/apache/polaris/core/persistence/LocalPolarisMetaStoreManagerFactory.java b/polaris-core/src/main/java/org/apache/polaris/core/persistence/LocalPolarisMetaStoreManagerFactory.java index a7ed1ba30..445f48c77 100644 --- a/polaris-core/src/main/java/org/apache/polaris/core/persistence/LocalPolarisMetaStoreManagerFactory.java +++ b/polaris-core/src/main/java/org/apache/polaris/core/persistence/LocalPolarisMetaStoreManagerFactory.java @@ -51,6 +51,8 @@ public abstract class LocalPolarisMetaStoreManagerFactory private static final Logger LOGGER = LoggerFactory.getLogger(LocalPolarisMetaStoreManagerFactory.class); + // These maps are all keyed by RealmId.id(); we avoid keying by RealmId to avoid using a CDI proxy + // as a key private final Map metaStoreManagerMap = new HashMap<>(); private final Map storageCredentialCacheMap = new HashMap<>(); private final Map entityCacheMap = new HashMap<>(); @@ -107,6 +109,7 @@ public synchronized Map bootstrapRealms( PrincipalSecretsResult secretsResult = bootstrapServiceAndCreatePolarisPrincipalForRealm( realm, metaStoreManagerMap.get(realm.id())); + // copy to avoid using a CDI proxy as a key results.put(ImmutableRealmId.copyOf(realm), secretsResult); } } @@ -123,6 +126,7 @@ public synchronized Map purgeRealms(List realms) { PolarisMetaStoreSession session = getOrCreateSessionSupplier(realm).get(); BaseResult result = metaStoreManager.purge(session); + // copy to avoid using a CDI proxy as a key results.put(ImmutableRealmId.copyOf(realm), result); storageCredentialCacheMap.remove(realm.id()); diff --git a/service/common/src/main/java/org/apache/polaris/service/persistence/InMemoryPolarisMetaStoreManagerFactory.java b/service/common/src/main/java/org/apache/polaris/service/persistence/InMemoryPolarisMetaStoreManagerFactory.java index 8b88be701..a1be080b2 100644 --- a/service/common/src/main/java/org/apache/polaris/service/persistence/InMemoryPolarisMetaStoreManagerFactory.java +++ b/service/common/src/main/java/org/apache/polaris/service/persistence/InMemoryPolarisMetaStoreManagerFactory.java @@ -48,6 +48,9 @@ public class InMemoryPolarisMetaStoreManagerFactory extends LocalPolarisMetaStoreManagerFactory { private final PolarisStorageIntegrationProvider storageIntegration; + + // This set contains RealmId.id() values; we avoid using RealmId to avoid putting CDI beans in + // the set. private final Set bootstrappedRealms = new CopyOnWriteArraySet<>(); public InMemoryPolarisMetaStoreManagerFactory() {