Skip to content

Commit

Permalink
ConstructorInstanceFactory: clean up some warnings and flatten stack …
Browse files Browse the repository at this point in the history
…a bit
  • Loading branch information
stevenschlansker committed Mar 14, 2024
1 parent b53a2fa commit f280dd2
Showing 1 changed file with 8 additions and 3 deletions.
Expand Up @@ -27,15 +27,15 @@
import java.util.function.Supplier;
import java.util.stream.Stream;

import org.jdbi.v3.core.internal.exceptions.Unchecked;
import org.jdbi.v3.core.internal.exceptions.Sneaky;

import static java.util.Collections.synchronizedMap;
import static java.util.Objects.requireNonNull;
import static java.util.stream.Collectors.toUnmodifiableList;

class ConstructorInstanceFactory<T> extends InstanceFactory<T> {
private static final MethodHandles.Lookup LOOKUP = MethodHandles.lookup();
private static final Map<Constructor, ConstructorHandleAndTypes> CONSTRUCTOR_CACHE = synchronizedMap(new WeakHashMap<>());
private static final Map<Constructor<?>, ConstructorHandleAndTypes> CONSTRUCTOR_CACHE = synchronizedMap(new WeakHashMap<>());

private final Constructor<T> constructor;
private final List<Type> types;
Expand All @@ -54,9 +54,14 @@ List<Type> getTypes() {
return types;
}

@SuppressWarnings("unchecked")
@Override
T newInstance(Object... params) {
return (T) Unchecked.<Object[], Object>function(constructorHandle::invokeWithArguments).apply(params);
try {
return (T) constructorHandle.invokeWithArguments(params);
} catch (Throwable e) {
throw Sneaky.throwAnyway(e);
}
}

@Override
Expand Down

0 comments on commit f280dd2

Please sign in to comment.