8317356: Fix missing null checks in the ClassFile API

Co-authored-by: Nizar Benalla <nbenalla@openjdk.org>
Reviewed-by: asotona
This commit is contained in:
Chen Liang 2024-10-14 17:21:10 +00:00
parent 60713463c7
commit a2c775222e
36 changed files with 249 additions and 116 deletions

View file

@ -31,6 +31,8 @@ import java.util.function.Supplier;
import jdk.internal.classfile.impl.TransformImpl;
import jdk.internal.javac.PreviewFeature;
import static java.util.Objects.requireNonNull;
/**
* A transformation on streams of {@link FieldElement}.
*
@ -62,7 +64,7 @@ public non-sealed interface FieldTransform
* @return the stateful field transform
*/
static FieldTransform ofStateful(Supplier<FieldTransform> supplier) {
return new TransformImpl.SupplierFieldTransform(supplier);
return new TransformImpl.SupplierFieldTransform(requireNonNull(supplier));
}
/**
@ -73,6 +75,7 @@ public non-sealed interface FieldTransform
* @return the field transform
*/
static FieldTransform endHandler(Consumer<FieldBuilder> finisher) {
requireNonNull(finisher);
return new FieldTransform() {
@Override
public void accept(FieldBuilder builder, FieldElement element) {
@ -94,6 +97,7 @@ public non-sealed interface FieldTransform
* @return the field transform
*/
static FieldTransform dropping(Predicate<FieldElement> filter) {
requireNonNull(filter);
return (b, e) -> {
if (!filter.test(e))
b.with(e);
@ -109,6 +113,6 @@ public non-sealed interface FieldTransform
*/
@Override
default FieldTransform andThen(FieldTransform t) {
return new TransformImpl.ChainedFieldTransform(this, t);
return new TransformImpl.ChainedFieldTransform(this, requireNonNull(t));
}
}