Merge "Add NodeConfiguratorImpl enqueue trace"
[openflowplugin.git] / openflowplugin-impl / src / main / java / org / opendaylight / openflowplugin / impl / services / AbstractService.java
index 3c267c9b42ef2db5655d2458320641c1dad002f8..af8e4495644ed725efb75c765e7ba34ce8eca8a4 100644 (file)
@@ -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
@@ -13,7 +13,6 @@ import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
 import java.math.BigInteger;
-import java.util.Objects;
 import java.util.function.Function;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
@@ -115,43 +114,52 @@ public abstract class AbstractService<I, O> {
         Preconditions.checkNotNull(input);
 
         final Class<?> requestType = input instanceof DataContainer
-            ? DataContainer.class.cast(input).getImplementedInterface()
+            ? ((DataContainer) input).implementedInterface()
             : input.getClass();
 
-        getMessageSpy().spyMessage(requestType, MessageSpy.STATISTIC_GROUP.TO_SWITCH_ENTERED);
+        getMessageSpy().spyMessage(requestType, MessageSpy.StatisticsGroup.TO_SWITCH_ENTERED);
 
         LOG.trace("Handling general service call");
         final RequestContext<O> requestContext = requestContextStack.createRequestContext();
 
-        if (Objects.isNull(requestContext)) {
+        if (requestContext == null) {
             LOG.trace("Request context refused.");
-            getMessageSpy().spyMessage(AbstractService.class, MessageSpy.STATISTIC_GROUP.TO_SWITCH_DISREGARDED);
+            getMessageSpy().spyMessage(AbstractService.class, MessageSpy.StatisticsGroup.TO_SWITCH_DISREGARDED);
             return Futures.immediateFuture(RpcResultBuilder
                     .<O>failed()
                     .withError(RpcError.ErrorType.APPLICATION, "", "Request quota exceeded")
                     .build());
         }
 
-        if (Objects.isNull(requestContext.getXid())) {
-            getMessageSpy().spyMessage(requestContext.getClass(), MessageSpy.STATISTIC_GROUP.TO_SWITCH_RESERVATION_REJECTED);
-            return RequestContextUtil.closeRequestContextWithRpcError(requestContext, "Outbound queue wasn't able to reserve XID.");
+        if (requestContext.getXid() == null) {
+            getMessageSpy().spyMessage(requestContext.getClass(),
+                                       MessageSpy.StatisticsGroup.TO_SWITCH_RESERVATION_REJECTED);
+            return RequestContextUtil
+                    .closeRequestContextWithRpcError(requestContext, "Outbound queue wasn't able to reserve XID.");
         }
 
-        getMessageSpy().spyMessage(requestContext.getClass(), MessageSpy.STATISTIC_GROUP.TO_SWITCH_READY_FOR_SUBMIT);
+        getMessageSpy().spyMessage(requestContext.getClass(), MessageSpy.StatisticsGroup.TO_SWITCH_READY_FOR_SUBMIT);
 
         final Xid xid = requestContext.getXid();
         OfHeader request = null;
         try {
             request = buildRequest(xid, input);
-            Verify.verify(xid.getValue().equals(request.getXid()), "Expected XID %s got %s", xid.getValue(), request.getXid());
-        } catch (Exception ex) {
+            Verify.verify(xid.getValue().equals(request.getXid()),
+                          "Expected XID %s got %s",
+                          xid.getValue(),
+                          request.getXid());
+        } catch (ServiceException ex) {
             LOG.error("Failed to build request for {}, forfeiting request {}", input, xid.getValue(), ex);
-            RequestContextUtil.closeRequestContextWithRpcError(requestContext, "failed to build request input: " + ex.getMessage());
+            RequestContextUtil.closeRequestContextWithRpcError(requestContext,
+                                                               "failed to build request input: " + ex.getMessage());
         } finally {
-            final OutboundQueue outboundQueue = getDeviceContext().getPrimaryConnectionContext().getOutboundQueueProvider();
+            final OutboundQueue outboundQueue =
+                    getDeviceContext().getPrimaryConnectionContext().getOutboundQueueProvider();
 
-            if (Objects.nonNull(isComplete)) {
-                outboundQueue.commitEntry(xid.getValue(), request, createCallback(requestContext, requestType), isComplete);
+            if (isComplete != null) {
+                outboundQueue.commitEntry(xid.getValue(),
+                                          request,
+                                          createCallback(requestContext, requestType), isComplete);
             } else {
                 outboundQueue.commitEntry(xid.getValue(), request, createCallback(requestContext, requestType));
             }