Why are you using an ArrayList as both a key and a value? The Map can hold multiple key-value pair on its own, you don't need to use lists to be able to put more keys/values into it. (Using a list as a key is very weird. And even if it had a merit in your case I don't see, it would still be dangerous, as the list is mutable; keys whose value can change cannot be used with a Map.)

The exception you're encountering is most likely caused because the utilDao.getUserEmailIds method is returning a null.