X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=binding%2Fmdsal-binding-dom-adapter%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fbinding%2Fdom%2Fadapter%2FFutureSchema.java;h=fbe1d71f70b23168a5ae009665ea9367adc26782;hb=e996a1b5aa1f8986deb917e0d1d77bd1dab0b82e;hp=b89f7f406d702e10ec2d281d23d4f9c22a009d37;hpb=fda572130077da8029e12bb770b0b8c8fb7890d0;p=mdsal.git diff --git a/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/FutureSchema.java b/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/FutureSchema.java index b89f7f406d..fbe1d71f70 100644 --- a/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/FutureSchema.java +++ b/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/FutureSchema.java @@ -5,7 +5,6 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.mdsal.binding.dom.adapter; import static java.util.Objects.requireNonNull; @@ -19,10 +18,12 @@ import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import java.util.function.Predicate; -import javax.annotation.concurrent.GuardedBy; -import org.opendaylight.mdsal.binding.generator.util.BindingRuntimeContext; +import org.checkerframework.checker.lock.qual.GuardedBy; +import org.opendaylight.mdsal.binding.runtime.api.BindingRuntimeContext; import org.opendaylight.yangtools.yang.binding.Augmentation; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; abstract class FutureSchema implements AutoCloseable { private static final class Waiting extends FutureSchema { @@ -47,15 +48,16 @@ abstract class FutureSchema implements AutoCloseable { final boolean waitForSchema() { try { - schemaPromise.get(FutureSchema.this.duration, FutureSchema.this.unit); + schemaPromise.get(duration, unit); return true; } catch (final InterruptedException | ExecutionException e) { throw new IllegalStateException(e); } catch (final TimeoutException e) { + LOG.trace("Wait for {} timed out", schemaPromise, e); return false; } finally { - synchronized (FutureSchema.this.postponedOperations) { - FutureSchema.this.postponedOperations.remove(this); + synchronized (postponedOperations) { + postponedOperations.remove(this); } } } @@ -71,6 +73,8 @@ abstract class FutureSchema implements AutoCloseable { } } + private static final Logger LOG = LoggerFactory.getLogger(FutureSchema.class); + @GuardedBy("postponedOperations") private final Set postponedOperations = new LinkedHashSet<>(); private final long duration; @@ -79,7 +83,7 @@ abstract class FutureSchema implements AutoCloseable { private volatile BindingRuntimeContext runtimeContext; FutureSchema(final long time, final TimeUnit unit) { - this.duration = time; + duration = time; this.unit = requireNonNull(unit); } @@ -128,7 +132,7 @@ abstract class FutureSchema implements AutoCloseable { return addPostponedOpAndWait(new FutureSchemaPredicate() { @Override public boolean test(final BindingRuntimeContext input) { - return input.getSchemaContext().findModule(module).isPresent(); + return input.modelContext().findModule(module).isPresent(); } }); } @@ -139,7 +143,7 @@ abstract class FutureSchema implements AutoCloseable { public boolean test(final BindingRuntimeContext context) { return bindingClasses.stream().allMatch(clz -> { if (Augmentation.class.isAssignableFrom(clz)) { - return context.getAugmentationDefinition(clz) != null; + return context.getAugmentationDefinition(clz.asSubclass(Augmentation.class)) != null; } return context.getSchemaDefinition(clz) != null;