please add javadoc describing when this exception is thrown