* @return a possible null Set<Principal> for the caller roles
*/
protected Set<Principal> getPrincipalRoles(Principal principal) {
if (!(principal instanceof GenericPrincipal))
throw MESSAGES.illegalPrincipalType(principal.getClass());
GenericPrincipal gp = GenericPrincipal.class.cast(principal);
String[] roleNames = gp.getRoles();
Set<Principal> userRoles = new HashSet<Principal>();
if (roleNames != null) {
for (int n = 0; n < roleNames.length; n++) {
Principal sp = getPrincipal(roleNames[n]);
userRoles.add(sp);