while (creatingDescriptors.containsKey(activeDescriptor)) {
long creatingThreadId = creatingDescriptors.get(activeDescriptor);
if (creatingThreadId == Thread.currentThread().getId()) {
throw new MultiException(new IllegalStateException(
"A circular dependency involving Singleton service " + activeDescriptor.getImplementation() +
" was found. Full descriptor is " + activeDescriptor));
}
try {