Sonar Fix: CronJobManager.java
[music.git] / src / main / java / org / onap / music / main / CronJobManager.java
index 5b7a8de..504ff20 100644 (file)
@@ -22,8 +22,6 @@
 package org.onap.music.main;
 
 import java.util.Iterator;
-import java.util.Map;
-import java.util.Map.Entry;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
@@ -32,16 +30,19 @@ import javax.servlet.ServletContextListener;
 import javax.servlet.annotation.WebListener;
 
 import org.onap.music.datastore.PreparedQueryObject;
+import org.onap.music.eelf.logging.EELFLoggerDelegate;
+import org.onap.music.eelf.logging.format.ErrorSeverity;
 import org.onap.music.exceptions.MusicLockingException;
 import org.onap.music.exceptions.MusicServiceException;
 
 import com.datastax.driver.core.ResultSet;
 import com.datastax.driver.core.Row;
 
-@WebListener
+//@WebListener
 public class CronJobManager implements ServletContextListener {
 
     private ScheduledExecutorService scheduler;
+    private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(CronJobManager.class);
 
     @Override
     public void contextInitialized(ServletContextEvent event) {
@@ -53,10 +54,25 @@ public class CronJobManager implements ServletContextListener {
         try {
             ResultType result = MusicCore.nonKeyRelatedPut(pQuery, consistency);
         } catch (MusicServiceException e1) {
-            e1.printStackTrace();
+               logger.error(EELFLoggerDelegate.errorLogger, e1.getMessage(),ErrorSeverity.ERROR);
         }
-        
-        pQuery = new PreparedQueryObject();
+
+      //Zookeeper cleanup
+        scheduler.scheduleAtFixedRate(new Runnable() {
+            @Override
+            public void run() {
+                deleteLocksFromDB();
+            }
+        } , 0, 24, TimeUnit.HOURS);
+    }
+
+    @Override
+    public void contextDestroyed(ServletContextEvent event) {
+        scheduler.shutdownNow();
+    }
+
+    public void deleteLocksFromDB() {
+        PreparedQueryObject pQuery = new PreparedQueryObject();
         pQuery.appendQueryString(
                         "select * from admin.locks");
             try {
@@ -71,68 +87,22 @@ public class CronJobManager implements ServletContextListener {
                     if(System.currentTimeMillis() >= ctime + 24 * 60 * 60 * 1000) {
                         expiredKeys = true;
                         String new_id = id.substring(1);
-                        MusicCore.deleteLock(new_id);
-                        deleteKeys.append(id).append(",");
+                        try {
+                            MusicCore.deleteLock(new_id);
+                        } catch (MusicLockingException e) {
+                            logger.info(EELFLoggerDelegate.applicationLogger,
+                                     e.getMessage());
+                        }
+                        deleteKeys.append("'").append(id).append("'").append(",");
                     }
-                    else {
-                        MusicUtil.zkNodeMap.put(id, ctime);
-                    }
-                };
-                if(expiredKeys) {
-                    deleteKeys.deleteCharAt(deleteKeys.length()-1);
-                    deleteKeysFromDB(deleteKeys);
-               }
-            } catch (MusicServiceException e) {
-                e.printStackTrace();
-            } catch (MusicLockingException e) {
-                e.printStackTrace();
-       }
-       
-      //Zookeeper cleanup
-        scheduler.scheduleAtFixedRate(new Runnable() {
-            @Override
-            public void run() {
-                Iterator<Entry<String, Long>> it = MusicUtil.zkNodeMap.entrySet().iterator();
-                StringBuilder deleteKeys = new StringBuilder();
-                Boolean expiredKeys = false;
-                while (it.hasNext()) {
-                    Map.Entry<String, Long> pair = (Map.Entry<String, Long>)it.next();
-                    long ctime = pair.getValue();
-                   if (System.currentTimeMillis() >= ctime + 24 * 60 * 60 * 1000) {
-                       try {
-                           expiredKeys = true;
-                           String id = pair.getKey();
-                           deleteKeys.append("'").append(id).append("'").append(",");
-                           MusicCore.deleteLock(id.substring(1));
-                           MusicUtil.zkNodeMap.remove(id);
-                           
-                       } catch (MusicLockingException e) {
-                          e.printStackTrace();
-                       }
-                   }
                 }
                 if(expiredKeys) {
                     deleteKeys.deleteCharAt(deleteKeys.length()-1);
-                    deleteKeysFromDB(deleteKeys);
+                    CachingUtil.deleteKeysFromDB(deleteKeys.toString());
                }
+            } catch (MusicServiceException e) {
+               logger.error(EELFLoggerDelegate.errorLogger, e.getMessage(),ErrorSeverity.ERROR);
             }
-        } , 0, 24, TimeUnit.HOURS);
-    }
-
-    @Override
-    public void contextDestroyed(ServletContextEvent event) {
-        scheduler.shutdownNow();
-    }
-    
-    public void deleteKeysFromDB(StringBuilder deleteKeys) {
-        PreparedQueryObject pQuery = new PreparedQueryObject();
-        pQuery.appendQueryString(
-                        "DELETE FROM admin.locks WHERE lock_id IN ("+deleteKeys+")");
-        try {
-            MusicCore.nonKeyRelatedPut(pQuery, "eventual");
-        } catch (Exception e) {
-              e.printStackTrace();
-        }
     }
 
 }