Turns out in Java you only get the null constructor for free if you don't define any other constructors. I didn't know that before today. For more on this, see "The Java Programming Language" page 35, or JLS 8.6.7 (page 180).
JDK-4086495NamingException.appendRemainingName(Name) does not check for null parameter
JDK-4087183LinkLoopException needs a LinkLoopException() constructor