diff --git a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/LuceneCatalog.java b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/LuceneCatalog.java
index d8e3af0..ba2dc2b 100644
--- a/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/LuceneCatalog.java
+++ b/filemgr/src/main/java/org/apache/oodt/cas/filemgr/catalog/LuceneCatalog.java
@@ -1060,12 +1060,12 @@
     private synchronized void addCompleteProductToIndex(CompleteProduct cp)
             throws CatalogException {
         IndexWriter writer = null;
-            IndexWriterConfig config = new IndexWriterConfig(new StandardAnalyzer());
+        IndexWriterConfig config = new IndexWriterConfig(new StandardAnalyzer());
 
-            config.setOpenMode(IndexWriterConfig.OpenMode.CREATE_OR_APPEND);
-            LogMergePolicy lmp =new LogDocMergePolicy();
-            lmp.setMergeFactor(mergeFactor);
-            config.setMergePolicy(lmp);
+        config.setOpenMode(IndexWriterConfig.OpenMode.CREATE_OR_APPEND);
+        LogMergePolicy lmp = new LogDocMergePolicy();
+        lmp.setMergeFactor(mergeFactor);
+        config.setMergePolicy(lmp);
 
         try {
             writer = new IndexWriter(indexDir, config);
@@ -1077,8 +1077,8 @@
         try {
             writer.addDocument(doc);
             writer.close();
-        // TODO: determine a better way to optimize the index
-       } catch (Exception e) {
+            // TODO: determine a better way to optimize the index
+        } catch (Exception e) {
             LOG.log(Level.WARNING, "Unable to index product: ["
                     + cp.getProduct().getProductName() + "]: Message: "
                     + e.getMessage(), e);
@@ -1091,7 +1091,7 @@
                     writer.close();
                 }
             } catch (Exception e) {
-                System.out.println("failed"+e.getLocalizedMessage());
+                System.out.println("failed" + e.getLocalizedMessage());
             }
         }
 
