Author: bpoussin Date: 2011-08-31 16:21:51 +0200 (Wed, 31 Aug 2011) New Revision: 1225 Url: http://nuiton.org/repositories/revision/wikitty/1225 Log: Anomalie #1727: NPE if bad id in security field Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceSecurity.java Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceSecurity.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceSecurity.java 2011-08-30 16:32:20 UTC (rev 1224) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceSecurity.java 2011-08-31 14:21:51 UTC (rev 1225) @@ -505,10 +505,14 @@ boolean result = true; String userId = getUserId(securityToken); Wikitty wikitty = WikittyServiceEnhanced.restore(getDelegate(), securityToken, wikittyId); - for (String extName : wikitty.getExtensionNames()) { - result = result && isReader(securityToken, userId, wikitty, extName); - if (!result) { - break; + if (wikitty == null) { + result = false; + } else { + for (String extName : wikitty.getExtensionNames()) { + result = result && isReader(securityToken, userId, wikitty, extName); + if (!result) { + break; + } } } return result; @@ -744,7 +748,9 @@ if (parentId != null) { Wikitty parent = WikittyServiceEnhanced.restore( getDelegate(), securityToken, parentId); - isMember = isMember(securityToken, userId, parent, fqFieldName); + if (parent != null) { + isMember = isMember(securityToken, userId, parent, fqFieldName); + } } } return isMember; @@ -803,7 +809,8 @@ // dans lequel il faut cherche le user Wikitty groupWikitty = WikittyServiceEnhanced.restore( getDelegate(), securityToken, id); - if (WikittyGroupHelper.hasExtension(groupWikitty)) { + if (groupWikitty != null && + WikittyGroupHelper.hasExtension(groupWikitty)) { Set<String> members = WikittyGroupHelper.getMembers(groupWikitty); return isMember(securityToken, userId, members);