Skip to content

Commit e3bbd83

Browse files
committedFeb 10, 2023
8301806: TestNulls does not cover all API classes
Reviewed-by: mcimadamore
1 parent d501f73 commit e3bbd83

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed
 

‎src/java.base/share/classes/java/lang/foreign/Linker.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535

3636
import java.lang.foreign.ValueLayout.OfAddress;
3737
import java.lang.invoke.MethodHandle;
38+
import java.util.Objects;
3839
import java.util.Set;
3940
import java.util.stream.Collectors;
4041
import java.util.stream.Stream;
@@ -338,7 +339,8 @@ static Option firstVariadicArg(int index) {
338339
* @see #captureStateLayout()
339340
*/
340341
static Option captureCallState(String... capturedState) {
341-
Set<CapturableState> set = Stream.of(capturedState)
342+
Set<CapturableState> set = Stream.of(Objects.requireNonNull(capturedState))
343+
.map(Objects::requireNonNull)
342344
.map(CapturableState::forName)
343345
.collect(Collectors.toSet());
344346
return new LinkerOptions.CaptureCallState(set);
@@ -380,7 +382,7 @@ static Option isTrivial() {
380382
* @param handler the handler
381383
*/
382384
static Option uncaughtExceptionHandler(Thread.UncaughtExceptionHandler handler) {
383-
return new LinkerOptions.UncaughtExceptionHandler(handler);
385+
return new LinkerOptions.UncaughtExceptionHandler(Objects.requireNonNull(handler));
384386
}
385387
}
386388
}

‎test/jdk/java/foreign/TestNulls.java

+8
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,12 @@ public class TestNulls {
9595
ValueLayout.OfLong.class,
9696
ValueLayout.OfDouble.class,
9797
ValueLayout.OfAddress.class,
98+
PaddingLayout.class,
9899
GroupLayout.class,
100+
StructLayout.class,
101+
UnionLayout.class,
99102
Linker.class,
103+
Linker.Option.class,
100104
FunctionDescriptor.class,
101105
SegmentAllocator.class,
102106
MemorySegment.Scope.class,
@@ -156,7 +160,10 @@ static <Z> void addDefaultMapping(Class<Z> carrier, Z value) {
156160
addDefaultMapping(ValueLayout.OfFloat.class, ValueLayout.JAVA_FLOAT);
157161
addDefaultMapping(ValueLayout.OfLong.class, JAVA_LONG);
158162
addDefaultMapping(ValueLayout.OfDouble.class, ValueLayout.JAVA_DOUBLE);
163+
addDefaultMapping(PaddingLayout.class, MemoryLayout.paddingLayout(32));
159164
addDefaultMapping(GroupLayout.class, MemoryLayout.structLayout(ValueLayout.JAVA_INT));
165+
addDefaultMapping(StructLayout.class, MemoryLayout.structLayout(ValueLayout.JAVA_INT));
166+
addDefaultMapping(UnionLayout.class, MemoryLayout.unionLayout(ValueLayout.JAVA_INT));
160167
addDefaultMapping(SequenceLayout.class, MemoryLayout.sequenceLayout(1, ValueLayout.JAVA_INT));
161168
addDefaultMapping(SymbolLookup.class, SymbolLookup.loaderLookup());
162169
addDefaultMapping(MemorySegment.class, MemorySegment.ofArray(new byte[10]));
@@ -167,6 +174,7 @@ static <Z> void addDefaultMapping(Class<Z> carrier, Z value) {
167174
addDefaultMapping(SegmentAllocator.class, SegmentAllocator.prefixAllocator(MemorySegment.ofArray(new byte[10])));
168175
addDefaultMapping(Supplier.class, () -> null);
169176
addDefaultMapping(ClassLoader.class, TestNulls.class.getClassLoader());
177+
addDefaultMapping(Thread.UncaughtExceptionHandler.class, (thread, ex) -> {});
170178
}
171179

172180
static final Map<Class<?>, Object[]> REPLACEMENT_VALUES = new HashMap<>();

0 commit comments

Comments
 (0)
Please sign in to comment.