Return `false` rather than throwing an NPE here? Otherwise, document the NPE or make this an IllegalStateException?