keycloak-memoizeit

Details

diff --git a/services/src/main/java/org/keycloak/exportimport/ExportImportManager.java b/services/src/main/java/org/keycloak/exportimport/ExportImportManager.java
index c42077a..540ef2c 100644
--- a/services/src/main/java/org/keycloak/exportimport/ExportImportManager.java
+++ b/services/src/main/java/org/keycloak/exportimport/ExportImportManager.java
@@ -45,27 +45,33 @@ public class ExportImportManager {
                     logger.info("Export finished successfully");
                 } else {
                     ImportProvider importProvider = session.getProvider(ImportProvider.class, exportImportProviderId);
-                    Strategy strategy = ExportImportConfig.getStrategy();
-                    if (realmName == null) {
-                        logger.infof("Full model import requested. Strategy: %s", strategy.toString());
-
-                        // Check if master realm was exported. If it's not, then it needs to be created before other realms are imported
-                        if (!importProvider.isMasterRealmExported()) {
-                            new ApplianceBootstrap().bootstrap(sessionFactory, contextPath);
-                        }
-
-                        importProvider.importModel(sessionFactory, strategy);
+                    
+                    if (importProvider == null) {
+                    	logger.errorf("Invalid Import Provider %s", exportImportProviderId);
                     } else {
-                        logger.infof("Import of realm '%s' requested. Strategy: %s", realmName, strategy.toString());
-
-                        if (!realmName.equals(Config.getAdminRealm())) {
-                            // Check if master realm exists. If it's not, then it needs to be created before other realm is imported
-                            new ApplianceBootstrap().bootstrap(sessionFactory, contextPath);
-                        }
-
-                        importProvider.importRealm(sessionFactory, realmName, strategy);
+                    
+	                    Strategy strategy = ExportImportConfig.getStrategy();
+	                    if (realmName == null) {
+	                        logger.infof("Full model import requested. Strategy: %s", strategy.toString());
+	                        
+	                        // Check if master realm was exported. If it's not, then it needs to be created before other realms are imported
+	                        if (!importProvider.isMasterRealmExported()) {
+	                            new ApplianceBootstrap().bootstrap(sessionFactory, contextPath);
+	                        }
+	
+	                        importProvider.importModel(sessionFactory, strategy);
+	                    } else {
+	                        logger.infof("Import of realm '%s' requested. Strategy: %s", realmName, strategy.toString());
+	
+	                        if (!realmName.equals(Config.getAdminRealm())) {
+	                            // Check if master realm exists. If it's not, then it needs to be created before other realm is imported
+	                            new ApplianceBootstrap().bootstrap(sessionFactory, contextPath);
+	                        }
+	
+	                        importProvider.importRealm(sessionFactory, realmName, strategy);
+	                    }
+	                    logger.info("Import finished successfully");
                     }
-                    logger.info("Import finished successfully");
                 }
             } catch (Throwable ioe) {
                 logger.error("Error during export/import", ioe);
diff --git a/services/src/main/java/org/keycloak/services/DefaultKeycloakSession.java b/services/src/main/java/org/keycloak/services/DefaultKeycloakSession.java
index fc06d93..8588a53 100755
--- a/services/src/main/java/org/keycloak/services/DefaultKeycloakSession.java
+++ b/services/src/main/java/org/keycloak/services/DefaultKeycloakSession.java
@@ -1,5 +1,6 @@
 package org.keycloak.services;
 
+import org.jboss.logging.Logger;
 import org.jboss.resteasy.spi.HttpRequest;
 import org.jboss.resteasy.spi.ResteasyProviderFactory;
 import org.keycloak.models.KeycloakContext;
@@ -16,6 +17,7 @@ import org.keycloak.provider.Provider;
 import org.keycloak.provider.ProviderFactory;
 
 import javax.ws.rs.core.UriInfo;
+
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.LinkedList;
@@ -37,6 +39,8 @@ public class DefaultKeycloakSession implements KeycloakSession {
     private UserSessionProvider sessionProvider;
     private UserFederationManager federationManager;
     private KeycloakContext context;
+    
+    private static final Logger logger = Logger.getLogger(DefaultKeycloakSession.class);
 
     public DefaultKeycloakSession(DefaultKeycloakSessionFactory factory) {
         this.factory = factory;
@@ -108,6 +112,7 @@ public class DefaultKeycloakSession implements KeycloakSession {
         T provider = (T) providers.get(hash);
         if (provider == null) {
             ProviderFactory<T> providerFactory = factory.getProviderFactory(clazz, id);
+          
             if (providerFactory != null) {
                 provider = providerFactory.create(this);
                 providers.put(hash, provider);