diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/RealmAdapter.java b/model/jpa/src/main/java/org/keycloak/models/jpa/RealmAdapter.java index 73caea59e97..53b4a9693f6 100755 --- a/model/jpa/src/main/java/org/keycloak/models/jpa/RealmAdapter.java +++ b/model/jpa/src/main/java/org/keycloak/models/jpa/RealmAdapter.java @@ -2138,7 +2138,7 @@ public class RealmAdapter implements StorageProviderRealmModel, JpaModel> futures = new LinkedList<>(); + for (int i = 0; i < iterations; i ++) { + final int j = i; + + Callable f = () -> { + ClientRegistration client = ClientRegistration.create().url(suiteContext.getAuthServerInfo().getContextRoot() + "/auth", "test").build(); + client.auth(Auth.token(response)); + ClientRepresentation rep = new ClientRepresentation(); + rep.setClientId("test-" + j); + rep = client.create(rep); + if(rep.getId() != null && rep.getClientId().equals("test-" + j)) { + createdCount.getAndIncrement(); + } + return null; + }; + futures.add(f); + } + threadPool.invokeAll(futures); + + } catch (Exception ex) { + fail(ex.getMessage()); + } + + //controls the number of uses of the initial access token + assertEquals(initialTokenCounts, createdCount.get()); + } }