@Override public SessionLoader.WorkerResult call() throws Exception { if (log.isTraceEnabled()) { log.tracef("Running computation for segment: %s", workerCtx.toString()); } KeycloakSessionFactory sessionFactory = workCache.getAdvancedCache().getComponentRegistry().getComponent(KeycloakSessionFactory.class); if (sessionFactory == null) { log.debugf("KeycloakSessionFactory not yet set in cache. Worker skipped"); return sessionLoader.createFailedWorkerResult(loaderCtx, workerCtx); } SessionLoader.WorkerResult[] ref = new SessionLoader.WorkerResult[1]; KeycloakModelUtils.runJobInTransaction(sessionFactory, new KeycloakSessionTask() { @Override public void run(KeycloakSession session) { ref[0] = sessionLoader.loadSessions(session, loaderCtx, workerCtx); } }); return ref[0]; }