X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=openflowplugin-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fopenflowplugin%2Fimpl%2Fservices%2FAbstractRequestCallback.java;h=4544e933f9bb983a7c0b7cc943d5a265ebb615c2;hb=refs%2Fchanges%2F77%2F100077%2F17;hp=45326a7bc89969c5891a2940377635be2b67250c;hpb=6916d4f22823d56b391d0d45cb8544260def3431;p=openflowplugin.git diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/AbstractRequestCallback.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/AbstractRequestCallback.java index 45326a7bc8..4544e933f9 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/AbstractRequestCallback.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/AbstractRequestCallback.java @@ -1,4 +1,4 @@ -/** +/* * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the @@ -9,8 +9,8 @@ package org.opendaylight.openflowplugin.impl.services; import com.google.common.base.Preconditions; import com.google.common.util.concurrent.FutureCallback; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.openflowjava.protocol.api.connection.DeviceRequestFailedException; import org.opendaylight.openflowplugin.api.openflow.device.RequestContext; import org.opendaylight.openflowplugin.api.openflow.statistics.ofpspecific.EventIdentifier; @@ -20,7 +20,7 @@ import org.opendaylight.openflowplugin.impl.services.util.RequestContextUtil; import org.opendaylight.openflowplugin.impl.statistics.ofpspecific.EventsTimeCounter; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.Error; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OfHeader; -import org.opendaylight.yangtools.yang.common.RpcError; +import org.opendaylight.yangtools.yang.common.ErrorType; import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.common.RpcResultBuilder; @@ -28,7 +28,7 @@ public abstract class AbstractRequestCallback implements FutureCallback context; private final Class requestType; private final MessageSpy spy; - private EventIdentifier eventIdentifier; + private final EventIdentifier eventIdentifier; AbstractRequestCallback(final RequestContext context, final Class requestType, @@ -45,7 +45,7 @@ public abstract class AbstractRequestCallback implements FutureCallback implements FutureCallback builder; if (null != eventIdentifier) { EventsTimeCounter.markEnd(eventIdentifier); @@ -65,11 +65,18 @@ public abstract class AbstractRequestCallback implements FutureCallbackfailed().withError(RpcError.ErrorType.APPLICATION, errorString, throwable); + builder = RpcResultBuilder.failed().withError(ErrorType.APPLICATION, errorString, throwable); spyMessage(StatisticsGroup.TO_SWITCH_SUBMIT_FAILURE); } else { - builder = RpcResultBuilder.failed() - .withError(RpcError.ErrorType.APPLICATION, throwable.getMessage(), throwable); + if (throwable != null) { + builder = RpcResultBuilder.failed() + .withError(ErrorType.APPLICATION, throwable.getMessage(), throwable); + } else { + Throwable deviceReadFailedThrowable = new Throwable("Failed to read from device."); + builder = RpcResultBuilder.failed() + .withError(ErrorType.APPLICATION, deviceReadFailedThrowable.getMessage(), + deviceReadFailedThrowable); + } spyMessage(StatisticsGroup.TO_SWITCH_SUBMIT_ERROR); }