From: Michael Vorburger Date: Thu, 21 Jun 2018 15:56:40 +0000 (+0200) Subject: inc. BindingRuntimeContext details in "Schema .. is not available" X-Git-Tag: release/fluorine~17 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=5e0d3a3f630e19f24cf0408de624647c0c813536;hp=8b846e31bfcaeb74dcfc1c2560b769d3a50671dc;p=mdsal.git inc. BindingRuntimeContext details in "Schema .. is not available" but in a debug log, not the IllegalStateException, because it's huge. JIRA: MDSAL-354 Change-Id: I65c236fc3b675e7cf231cc1d8cdc56fc36131281 Signed-off-by: Michael Vorburger --- 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 561b446703..1e6c4f7d10 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 @@ -368,9 +368,14 @@ public class BindingToNormalizedNodeCodec implements BindingCodecTreeFactory, checkState(localRuntimeContext != null, "BindingRuntimeContext is not available."); module = localRuntimeContext.getSchemaContext().findModule(moduleName).orElse(null); } - checkState(module != null, "Schema for %s is not available; expected module name: %s.", modeledClass, - moduleName); - return module; + if (module != null) { + return module; + } + + LOG.debug("Schema for {} is not available; expected module name: {}; BindingRuntimeContext: {}", + modeledClass, moduleName, localRuntimeContext); + throw new IllegalStateException(String.format("Schema for %s is not available; expected module name: %s; " + + "full BindingRuntimeContext available in debug log", modeledClass, moduleName)); } private void waitForSchema(final Collection> binding, final MissingSchemaException exception) { diff --git a/binding/mdsal-binding-generator-api/src/main/java/org/opendaylight/mdsal/binding/generator/api/BindingRuntimeTypes.java b/binding/mdsal-binding-generator-api/src/main/java/org/opendaylight/mdsal/binding/generator/api/BindingRuntimeTypes.java index 007992b4ca..94594c2f7b 100644 --- a/binding/mdsal-binding-generator-api/src/main/java/org/opendaylight/mdsal/binding/generator/api/BindingRuntimeTypes.java +++ b/binding/mdsal-binding-generator-api/src/main/java/org/opendaylight/mdsal/binding/generator/api/BindingRuntimeTypes.java @@ -8,6 +8,7 @@ package org.opendaylight.mdsal.binding.generator.api; import com.google.common.annotations.Beta; +import com.google.common.base.MoreObjects; import com.google.common.collect.BiMap; import com.google.common.collect.ImmutableBiMap; import com.google.common.collect.ImmutableMap; @@ -29,6 +30,7 @@ import org.opendaylight.yangtools.yang.model.api.DocumentedNode.WithStatus; @Beta @ThreadSafe public final class BindingRuntimeTypes implements Immutable { + private final Map typeToAugmentation; private final BiMap typeToSchema; private final Multimap choiceToCases; @@ -66,4 +68,14 @@ public final class BindingRuntimeTypes implements Immutable { public Collection findCases(final Type choiceType) { return choiceToCases.get(choiceType); } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("typeToAugmentation", typeToAugmentation) + .add("typeToSchema", typeToSchema) + .add("choiceToCases", choiceToCases) + .add("identities", identities) + .toString(); + } } diff --git a/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/util/BindingRuntimeContext.java b/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/util/BindingRuntimeContext.java index 5c4d60fead..4fb2f39bd1 100644 --- a/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/util/BindingRuntimeContext.java +++ b/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/util/BindingRuntimeContext.java @@ -10,6 +10,7 @@ package org.opendaylight.mdsal.binding.generator.util; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; +import com.google.common.base.MoreObjects; import com.google.common.base.Optional; import com.google.common.base.Preconditions; import com.google.common.cache.CacheBuilder; @@ -485,4 +486,12 @@ public final class BindingRuntimeContext implements Immutable { public Class getIdentityClass(final QName input) { return identityClasses.getUnchecked(input); } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("ClassLoadingStrategy", strategy) + .add("runtimeTypes", runtimeTypes) + .add("schemaContext", schemaContext).toString(); + } }