From d590600c12e618f23715c8d80d8ab067bfbbca17 Mon Sep 17 00:00:00 2001 From: pedroigor Date: Wed, 21 Feb 2018 09:34:11 -0300 Subject: [PATCH] [KEYCLOAK-6321] - NPE when deleting a resource with admin events enabled --- .../jpa/store/JPAResourceStore.java | 36 +++++++++++++++---- 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/model/jpa/src/main/java/org/keycloak/authorization/jpa/store/JPAResourceStore.java b/model/jpa/src/main/java/org/keycloak/authorization/jpa/store/JPAResourceStore.java index 7a505abf34..de83c427bb 100644 --- a/model/jpa/src/main/java/org/keycloak/authorization/jpa/store/JPAResourceStore.java +++ b/model/jpa/src/main/java/org/keycloak/authorization/jpa/store/JPAResourceStore.java @@ -99,7 +99,11 @@ public class JPAResourceStore implements ResourceStore { ResourceStore resourceStore = provider.getStoreFactory().getResourceStore(); for (String id : result) { - list.add(resourceStore.findById(id, resourceServerId)); + Resource resource = resourceStore.findById(id, resourceServerId); + + if (resource != null) { + list.add(resource); + } } return list; @@ -118,7 +122,11 @@ public class JPAResourceStore implements ResourceStore { ResourceStore resourceStore = provider.getStoreFactory().getResourceStore(); for (String id : result) { - list.add(resourceStore.findById(id, resourceServerId)); + Resource resource = resourceStore.findById(id, resourceServerId); + + if (resource != null) { + list.add(resource); + } } return list; @@ -135,7 +143,11 @@ public class JPAResourceStore implements ResourceStore { ResourceStore resourceStore = provider.getStoreFactory().getResourceStore(); for (String id : result) { - list.add(resourceStore.findById(id, resourceServerId)); + Resource resource = resourceStore.findById(id, resourceServerId); + + if (resource != null) { + list.add(resource); + } } return list; @@ -177,7 +189,11 @@ public class JPAResourceStore implements ResourceStore { ResourceStore resourceStore = provider.getStoreFactory().getResourceStore(); for (String id : result) { - list.add(resourceStore.findById(id, resourceServerId)); + Resource resource = resourceStore.findById(id, resourceServerId); + + if (resource != null) { + list.add(resource); + } } return list; @@ -196,7 +212,11 @@ public class JPAResourceStore implements ResourceStore { ResourceStore resourceStore = provider.getStoreFactory().getResourceStore(); for (String id : result) { - list.add(resourceStore.findById(id, resourceServerId)); + Resource resource = resourceStore.findById(id, resourceServerId); + + if (resource != null) { + list.add(resource); + } } return list; @@ -231,7 +251,11 @@ public class JPAResourceStore implements ResourceStore { ResourceStore resourceStore = provider.getStoreFactory().getResourceStore(); for (String id : result) { - list.add(resourceStore.findById(id, resourceServerId)); + Resource resource = resourceStore.findById(id, resourceServerId); + + if (resource != null) { + list.add(resource); + } } return list;