Bug 6163: fixed number of argument when resolving rpc input
[mdsal.git] / binding / mdsal-binding-dom-adapter / src / main / java / org / opendaylight / mdsal / binding / dom / adapter / RpcServiceAdapter.java
index a43bcb0629c298c1c457a8d69062632bc3db2ba5..03afcbb7f12d40cbe9745a63db5c089c7be8caed 100644 (file)
@@ -14,6 +14,7 @@ import org.opendaylight.mdsal.dom.api.DOMRpcException;
 import org.opendaylight.mdsal.dom.api.DOMRpcResult;
 import org.opendaylight.mdsal.dom.api.DOMRpcService;
 import com.google.common.base.Function;
+import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.util.concurrent.CheckedFuture;
@@ -192,7 +193,10 @@ class RpcServiceAdapter implements InvocationHandler {
 
         protected RoutedStrategy(final SchemaPath path, final Method rpcMethod, final QName leafName) {
             super(path);
-            final Class<? extends DataContainer> inputType = BindingReflections.resolveRpcInputClass(rpcMethod).get();
+            final Optional<Class<? extends DataContainer>> maybeInputType =
+                    BindingReflections.resolveRpcInputClass(rpcMethod);
+            Preconditions.checkState(maybeInputType.isPresent(), "RPC method %s has no input", rpcMethod.getName());
+            final Class<? extends DataContainer> inputType = maybeInputType.get();
             refExtractor = ContextReferenceExtractor.from(inputType);
             this.contextName = new NodeIdentifier(leafName);
         }