Skip to content

Commit

Permalink
More specific exception flow for factory creation
Browse files Browse the repository at this point in the history
  • Loading branch information
lukebemish committed Feb 7, 2024
1 parent d94b57b commit eb9a783
Showing 1 changed file with 5 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -126,13 +126,14 @@ public static <I> Class<? extends I> spinContainerFactory(Class<? super I> conta
createContainer.visitInsn(Opcodes.ARETURN);
createContainer.visitEnd();
containerFactoryWriter.visitEnd();
MethodHandle containerCtor;
try {
MethodHandle containerCtor = lookup.findConstructor(containerImpl, MethodType.methodType(void.class, factorySam.getParameterTypes())).asType(MethodType.methodType(factorySam.getReturnType(), factorySam.getParameterTypes()));
@SuppressWarnings("unchecked") Class<? extends I> ret = (Class<? extends I>) CcaAsmHelper.generateClass(containerFactoryWriter, true, containerCtor);
return ret;
containerCtor = lookup.findConstructor(containerImpl, MethodType.methodType(void.class, factorySam.getParameterTypes())).asType(MethodType.methodType(factorySam.getReturnType(), factorySam.getParameterTypes()));
} catch (Throwable e) {
throw new RuntimeException("Could not construct factory class", e);
throw new RuntimeException("Could not find container constructor", e);
}
@SuppressWarnings("unchecked") Class<? extends I> ret = (Class<? extends I>) CcaAsmHelper.generateClass(containerFactoryWriter, true, containerCtor);
return ret;
}

public static ComponentContainer createEmptyContainer() {
Expand Down

0 comments on commit eb9a783

Please sign in to comment.