Fix test failures in sal-binding-it
[controller.git] / opendaylight / md-sal / sal-binding-broker / src / main / java / org / opendaylight / controller / md / sal / binding / impl / BindingToNormalizedNodeCodecFactory.java
index a68ace70c63d21c7a00b3140206fab967f2e82cb..180f7b8f45a698bc5e847cd020074a8ae28263bb 100644 (file)
@@ -39,10 +39,15 @@ public class BindingToNormalizedNodeCodecFactory {
 
         BindingNormalizedNodeCodecRegistry codecRegistry = new BindingNormalizedNodeCodecRegistry(
                 StreamWriterGenerator.create(SingletonHolder.JAVASSIST));
-        instance = new BindingToNormalizedNodeCodec(classLoadingStrategy, codecRegistry, true);
+        BindingToNormalizedNodeCodec localInstance = new BindingToNormalizedNodeCodec(
+                classLoadingStrategy, codecRegistry, true);
 
-        schemaService.registerSchemaContextListener(instance);
+        schemaService.registerSchemaContextListener(localInstance);
 
+        // Publish the BindingToNormalizedNodeCodec instance after we've registered it as a
+        // SchemaContextListener to avoid a race condition by publishing it too early when it isn't
+        // fully initialized.
+        instance = localInstance;
         return instance;
     }