@@ -56,13 +56,23 @@ static Context createEager(String name, Set<BeanHolder<?>> beanHolders, Set<Bean
5656 Map <BeanDescriptor <?>, List <BeanHolder <?>>> holders = ContextResolver .resolve (beanHolders , properties );
5757 Context context = new Context (name , holders , properties , eventBus );
5858 context .init (initBeanHolders );
59- holders .forEach ((descriptor , creator ) -> {
60- if (descriptor .name () != null ) {
61- context .get (descriptor .type (), descriptor .name ());
62- } else {
63- context .getAll (descriptor .type ());
59+ try {
60+ holders .forEach ((descriptor , creator ) -> {
61+ if (descriptor .name () != null ) {
62+ context .get (descriptor .type (), descriptor .name ());
63+ } else if (descriptor .type () != Object .class ) {
64+ // Object is too generic, can be skipped for more readable exceptions
65+ context .getAll (descriptor .type ());
66+ }
67+ });
68+ } catch (Throwable exception ) {
69+ try {
70+ context .close ();
71+ } catch (Throwable closeException ) {
72+ log .warn ("Could not close context" , closeException );
6473 }
65- });
74+ throw exception ;
75+ }
6676 log .info ("Created eager context in {}" , totalTimer .measureAndFormat ());
6777 eventBus .emit (new ContextEvent .ContextPostCreateEvent ());
6878 return context ;
0 commit comments