diff --git a/ambari-infra-solr-client/src/main/java/org/apache/ambari/infra/solr/commands/DumpCollectionsCommand.java b/ambari-infra-solr-client/src/main/java/org/apache/ambari/infra/solr/commands/DumpCollectionsCommand.java
index 1167a51..2b58bfc 100644
--- a/ambari-infra-solr-client/src/main/java/org/apache/ambari/infra/solr/commands/DumpCollectionsCommand.java
+++ b/ambari-infra-solr-client/src/main/java/org/apache/ambari/infra/solr/commands/DumpCollectionsCommand.java
@@ -54,9 +54,8 @@
 
   @Override
   protected String executeZkCommand(AmbariSolrCloudClient client, SolrZkClient zkClient, SolrZooKeeper solrZooKeeper) throws Exception {
+    Map<String, SolrCollection> collectionMap = new HashMap<>();
     if (!this.collections.isEmpty()) {
-      ObjectMapper objectMapper = new ObjectMapper();
-      Map<String, SolrCollection> collectionMap = new HashMap<>();
       for (String collection : this.collections) {
         SolrCollection solrCollection = new SolrCollection();
         Collection<Slice> slices = getSlices(client.getSolrCloudClient(), collection);
@@ -112,16 +111,16 @@
         solrCollection.setName(collection);
         collectionMap.put(collection, solrCollection);
       }
-      File file = new File(client.getOutput());
-      if (!file.exists()) {
-        file.createNewFile();
-      }
-      final ObjectWriter objectWriter = objectMapper
-        .writerWithDefaultPrettyPrinter();
-      objectWriter.writeValue(file, collectionMap);
-      return objectWriter.writeValueAsString(collectionMap);
     }
-    return null;
+    ObjectMapper objectMapper = new ObjectMapper();
+    final ObjectWriter objectWriter = objectMapper
+      .writerWithDefaultPrettyPrinter();
+    File file = new File(client.getOutput());
+    if (!file.exists()) {
+      file.createNewFile();
+    }
+    objectWriter.writeValue(file, collectionMap);
+    return objectWriter.writeValueAsString(collectionMap);
   }
 
   private String getHostFromNodeName(String nodeName) {
