It seems unkind and unnecessary to require the cc and bcc. If one doesn't need them, why require them?
Fixed in r1129881.
I went with the null check.
The code would crash without them. This looked neater than a bunch of checks for null.
Unless by default maven injects empty lists
Was it necessary to add default values fro the parameters?
I imagine that it would be enough to just remove the @required annotations.