java-topology/test/langtools/tools/javac/lambda/8074381/T8074381b.java
russell@unturf.com 0a580b313d undefect. CWE-407 — 63 sites patched across 27 ecosystems
Authors: russell@unturf.com · brackishbert@gmail.com · foxhop.net · TimeHexOn.com

Patches, unit tests, benchmarks, whitepaper, and outreach briefs.
Public domain — no copyright claimed. Use freely.
2026-03-26 17:11:57 -04:00

44 lines
1.2 KiB
Java

/*
* @test /nodynamiccopyright/
* @bug 8074381
* @summary java.lang.AssertionError during compiling
* @compile/fail/ref=T8074381b.out -XDrawDiagnostics T8074381b.java
*/
import java.util.function.BiConsumer;
import java.util.function.Consumer;
class T8074381b {
@SuppressWarnings("unchecked")
public Invocation resolve(Handler handler) {
return new Invocation((t) -> handler.handle((String) t));
}
public static class Handler {
public void handle(String s) {
System.out.println(s);
}
}
public static class Invocation<T> {
public final ThrowingConsumer<T> consumer;
public Invocation(final ThrowingConsumer<T> consumer) {
this.consumer = consumer;
}
}
@FunctionalInterface
public interface ThrowingConsumer<T> extends BiConsumer<T,Consumer<Throwable>> {
@Override
default void accept(final T elem, final Consumer<Throwable> errorHandler) {
try {
acceptThrows(elem);
} catch (final Throwable e) {
errorHandler.accept(e);
}
}
void acceptThrows(T elem) throws Throwable;
}
}