Skip to content

Commit 812a176

Browse files
committed
Better eager context
1 parent e1ad5e8 commit 812a176

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

src/main/java/com/coditory/quark/context/Context.java

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)