From 967aafaff5cdf01e86fcacde893b7e30e5c3ca7f Mon Sep 17 00:00:00 2001 From: Maros Marsalek Date: Wed, 30 Sep 2015 16:22:53 +0200 Subject: [PATCH] Wait for schemas when transforming BA->NormalizedNode If the transformation fails due to missing schema, codec tries to wait for the models to become available. The assumption is that if there already are the BA classes, its likely that the schemas will follow shortly. This improvement should fix possible race conditions during ODL startup. Change-Id: I101b77d6ca8f247c271bed0a18fff20de43c24bf Signed-off-by: Maros Marsalek --- .../binding/dom/adapter/BindingToNormalizedNodeCodec.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingToNormalizedNodeCodec.java b/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingToNormalizedNodeCodec.java index ef95684780..95cc979e95 100644 --- a/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingToNormalizedNodeCodec.java +++ b/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingToNormalizedNodeCodec.java @@ -129,7 +129,12 @@ public final class BindingToNormalizedNodeCodec implements BindingCodecTreeFacto @Override public Entry> toNormalizedNode( final InstanceIdentifier path, final T data) { - return codecRegistry.toNormalizedNode(path, data); + try { + return codecRegistry.toNormalizedNode(path, data); + } catch (final MissingSchemaException e) { + waitForSchema(decompose(path), e); + return codecRegistry.toNormalizedNode(path, data); + } } /** -- 2.36.6