adutra commented on PR #1765:
URL: https://github.com/apache/polaris/pull/1765#issuecomment-2932100462

   @adnanhemani thanks for bringing my attention to this PR.
   
   > I realized that due to the Supplier's lazy-loading [...] the .get() was 
actually using a RequestScoped realmContext bean given by the previously-ran 
TokenBroker initialization
   
   Hmm I looked at your code snippets but I don't see the connection between 
the `TokenBroker` bean production and the lazy loading of 
`JdbcBasePersistenceImpl`. But assuming that this is happening inside a task 
executor thread, and the problem is `RealmContext`, why don't you resolve the 
realmId eagerly? E.g.:
   
   ```java
     private void initializeForRealm(
         RealmContext realmContext, RootCredentialsSet rootCredentialsSet, 
boolean isBootstrap) {
       String realmId = realmContext.getRealmIdentifier(); // resolve realm ID 
eagerly
       DatasourceOperations databaseOperations = 
getDatasourceOperations(isBootstrap);
       sessionSupplierMap.put(
           realmId,
           () ->
               new JdbcBasePersistenceImpl(
                   databaseOperations,
                   secretsGenerator(() -> realmId, rootCredentialsSet),
                   storageIntegrationProvider,
                   realmId));
   
       PolarisMetaStoreManager metaStoreManager = createNewMetaStoreManager();
       metaStoreManagerMap.put(realmId, metaStoreManager);
     }
   ```
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@polaris.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to