Switch NormalizedNode->Binding codegen to ByteBuddy
[mdsal.git] / binding / mdsal-binding-dom-codec / src / main / java / org / opendaylight / mdsal / binding / dom / codec / loader / LeafCodecClassLoader.java
index eebeb6c8184474738f618b89e29b7ba23618a7b2..ef2eed4052d092727bd91f019cbce88a6f6c9018 100644 (file)
@@ -48,10 +48,13 @@ final class LeafCodecClassLoader extends CodecClassLoader {
         } catch (ClassNotFoundException e) {
             LOG.trace("Class {} not found in target, looking through dependencies", name);
             for (LeafCodecClassLoader loader : dependencies) {
-                final Class<?> loaded = loader.findLoadedClass(name);
-                if (loaded != null) {
-                    LOG.trace("Class {} found in dependency {}", name, loader);
-                    return loaded;
+                // Careful: a loading operation may be underway, make sure that process has completed
+                synchronized (loader.getClassLoadingLock(name)) {
+                    final Class<?> loaded = loader.findLoadedClass(name);
+                    if (loaded != null) {
+                        LOG.trace("Class {} found in dependency {}", name, loader);
+                        return loaded;
+                    }
                 }
             }