@Override
    public User loadUser( String username ) throws UserNotFoundException
    {
        // Override the implementation in the superclass to prevent obtaining the user twice.
        for (UserProvider provider : userProviders)
        {
            try {
                return provider.loadUser( username );
            } catch ( UserNotFoundException unfe ) {
                Log.debug("User {} not found by UserProvider {}", username, provider.getClass().getName());
            }
        }
        //if we get this far, no provider was able to load the user
        throw new UserNotFoundException();
    }
Loads a user from the first provider that contains the user.

@param username the username (cannot be null or empty).
@return The user (never null).
@throws UserNotFoundException When none of the providers contains the user.
xmppserver/src/main/java/org/jivesoftware/openfire/user/HybridUserProvider.java