From 8f7cad0659578cf6c4a786cc50da0f91173ea1b7 Mon Sep 17 00:00:00 2001 From: Cyrille Le Clerc Date: Thu, 16 Jun 2016 13:28:24 +0200 Subject: [PATCH] Better exception message if a SecurityRealm doesn't respect the API contract and return null (#2407) * Getter exception message if the SecurityRealm doesn't respect the API contract and return null. * Use NullPointerException instead of IllegalStateException to not change the behaviour of the method. --- core/src/main/java/hudson/model/User.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/model/User.java b/core/src/main/java/hudson/model/User.java index 4db6fea618..9dfe633f04 100644 --- a/core/src/main/java/hudson/model/User.java +++ b/core/src/main/java/hudson/model/User.java @@ -1054,7 +1054,12 @@ public class User extends AbstractModelObject implements AccessControlled, Descr if (!resolving.get()) { resolving.set(true); try { - return j.getSecurityRealm().loadUserByUsername(idOrFullName).getUsername(); + UserDetails userDetails = j.getSecurityRealm().loadUserByUsername(idOrFullName); + if (userDetails == null) { + throw new NullPointerException("hudson.security.SecurityRealm should never return null. " + + j.getSecurityRealm() + " returned null for idOrFullName='" + idOrFullName + "'"); + } + return userDetails.getUsername(); } catch (UsernameNotFoundException x) { LOGGER.log(Level.FINE, "not sure whether " + idOrFullName + " is a valid username or not", x); } catch (DataAccessException x) { -- GitLab