import java.util.Queue;
import org.checkerframework.checker.lock.qual.GuardedBy;
import org.checkerframework.checker.lock.qual.Holding;
-import org.opendaylight.netconf.api.NetconfMessage;
import org.opendaylight.netconf.api.NetconfTerminationReason;
+import org.opendaylight.netconf.api.messages.NetconfMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private final NetconfMessage request;
RequestEntry(final Promise<NetconfMessage> future, final NetconfMessage request) {
- this.promise = requireNonNull(future);
+ promise = requireNonNull(future);
this.request = requireNonNull(request);
}
}
e.promise.setFailure(cause);
}
- this.clientSession = null;
+ clientSession = null;
}
@Override
}
}
+ @Override
+ public synchronized void onError(final NetconfClientSession session, final Exception failure) {
+ LOG.debug("New error arrived: {}", failure.toString());
+
+ final RequestEntry e = requests.poll();
+ if (e != null) {
+ e.promise.setFailure(failure);
+ dispatchRequest();
+ } else {
+ LOG.info("Ignoring unsolicited error {}", failure.toString());
+ }
+ }
+
public final synchronized Future<NetconfMessage> sendRequest(final NetconfMessage message) {
final RequestEntry req = new RequestEntry(GlobalEventExecutor.INSTANCE.newPromise(), message);