Fix IndexOutOfBoundsException
List Operation was accessed for invalid index
Change-Id: Ib0aaabf8a6dbbcd588e3eba028db4810728fde8d
diff --git a/protocols/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/utils/FromJsonUtil.java b/protocols/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/utils/FromJsonUtil.java
index 36cc16f..3383ba9 100644
--- a/protocols/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/utils/FromJsonUtil.java
+++ b/protocols/ovsdb/rfc/src/main/java/org/onosproject/ovsdb/rfc/utils/FromJsonUtil.java
@@ -221,15 +221,21 @@
List<OperationResult> operationResults = new ArrayList<OperationResult>();
for (int i = 0; i < input.size(); i++) {
JsonNode jsonNode = input.get(i);
- Operation operation = operations.get(i);
+
if (jsonNode != null && jsonNode.size() > 0) {
- if (i >= operations.size() || !operation.getOp().equals("select")) {
+ if (i >= operations.size()) {
OperationResult or = objectMapper.convertValue(jsonNode, OperationResult.class);
operationResults.add(or);
} else {
- List<Row> rows = createRows(operation.getTableSchema(), jsonNode);
- OperationResult or = new OperationResult(rows);
- operationResults.add(or);
+ Operation operation = operations.get(i);
+ if (!operation.getOp().equals("select")) {
+ OperationResult or = objectMapper.convertValue(jsonNode, OperationResult.class);
+ operationResults.add(or);
+ } else {
+ List<Row> rows = createRows(operation.getTableSchema(), jsonNode);
+ OperationResult or = new OperationResult(rows);
+ operationResults.add(or);
+ }
}
}
}