throw NPE when callback is null