From b0672730c13c23777fc95307e181bfb3e98903ba Mon Sep 17 00:00:00 2001
From: Falilou Thiam <falilou.thiam@synchrotron-soleil.fr>
Date: Wed, 25 Jan 2017 15:28:45 +0000
Subject: [PATCH] - Some code refactoring/cleaning - Better error management
 (includes TANGOARCH-576)

---
 .../java/fr/soleil/bensikin/Bensikin.java     |  7 ++-
 .../lifecycle/DefaultLifeCycleManager.java    | 33 ++++++------
 .../options/manager/DummyOptionsManager.java  | 50 ++++++++++---------
 .../options/manager/IOptionsManager.java      | 42 ++++++++--------
 .../options/manager/XMLOptionsManager.java    | 10 ++--
 5 files changed, 75 insertions(+), 67 deletions(-)

diff --git a/src/main/java/fr/soleil/bensikin/Bensikin.java b/src/main/java/fr/soleil/bensikin/Bensikin.java
index 9d2d7ec..4b290bb 100644
--- a/src/main/java/fr/soleil/bensikin/Bensikin.java
+++ b/src/main/java/fr/soleil/bensikin/Bensikin.java
@@ -208,8 +208,7 @@ public class Bensikin {
             LOGGER.debug(msg);
         } catch (final Exception e) {
             final String msg = Messages.getLogMessage("APPLICATION_WILL_START_LOAD_OPTIONS_KO");
-            LOGGER.error(msg, e);
-            treatError(e, splash);
+            treatError(e, msg, splash);
         }
     }
 
@@ -237,8 +236,8 @@ public class Bensikin {
     private static void initResolutionMode() {
         final Toolkit toolkit = Toolkit.getDefaultToolkit();
         final Dimension dim = toolkit.getScreenSize();
-        System.out.println("Resolution-------------------------------------------------------------");
-        System.out.println("Resolution: " + dim.width + "*" + dim.height);
+//        System.out.println("Resolution-------------------------------------------------------------");
+//        System.out.println("Resolution: " + dim.width + "*" + dim.height);
 
         hires = !(dim.width <= 1024);
     }
diff --git a/src/main/java/fr/soleil/bensikin/lifecycle/DefaultLifeCycleManager.java b/src/main/java/fr/soleil/bensikin/lifecycle/DefaultLifeCycleManager.java
index d2139be..ca5ed5f 100644
--- a/src/main/java/fr/soleil/bensikin/lifecycle/DefaultLifeCycleManager.java
+++ b/src/main/java/fr/soleil/bensikin/lifecycle/DefaultLifeCycleManager.java
@@ -54,6 +54,7 @@
 package fr.soleil.bensikin.lifecycle;
 
 import java.io.File;
+import java.io.FileNotFoundException;
 import java.util.Locale;
 
 import org.slf4j.Logger;
@@ -124,10 +125,10 @@ public class DefaultLifeCycleManager implements LifeCycleManager {
         } catch (final Exception e) {
             throw ArchivingException.toArchivingException(e);
         }
-
-        // No exception can be raised
+        // treatError is already done in this method
         loadOptions(splash);
-        // No exception can be raised
+
+        // treatError is already done in this method
         loadFavorites(splash);
 
         if (hasHistorySave) {
@@ -193,7 +194,7 @@ public class DefaultLifeCycleManager implements LifeCycleManager {
 //        } catch (final FileNotFoundException fnfe) {
 //            final String msg = Messages.getLogMessage("APPLICATION_WILL_START_LOAD_FAVORITES_WARNING");
 //            LOGGER.warn(msg, fnfe);
-        } catch (final ArchivingException e) {
+        } catch (final Exception e) {
             final String msg = Messages.getLogMessage("APPLICATION_WILL_START_LOAD_FAVORITES_KO");
             Bensikin.treatError(e, msg, splash);
         }
@@ -252,23 +253,25 @@ public class DefaultLifeCycleManager implements LifeCycleManager {
             splash.progress(12);
             splash.setMessage("loading history...");
             final History history = historyManager.loadHistory(historyPath);
+            if (history != null) {
+                splash.progress(13);
+                splash.setMessage("applying history");
+                History.setHistory(history);
+                splash.progress(14);
+                history.setLoadProperties(loadProperties);
 
-            splash.progress(13);
-            splash.setMessage("applying history");
-            History.setHistory(history);
-            splash.progress(14);
-            history.setLoadProperties(loadProperties);
+            }
             splash.progress(15);
             splash.setMessage("history fully loaded");
 
             final String msg = Messages.getLogMessage("APPLICATION_WILL_START_LOAD_HISTORY_OK");
             LOGGER.debug(msg);
-//        } catch (final FileNotFoundException fnfe) {
-//            final String msg = Messages.getLogMessage("APPLICATION_WILL_START_LOAD_HISTORY_WARNING");
-//            splash.progress(15);
-//            splash.setMessage(msg);
-//            LOGGER.warn(msg, fnfe);
-//            return;
+        } catch (final FileNotFoundException fnfe) {
+            final String msg = Messages.getLogMessage("APPLICATION_WILL_START_LOAD_HISTORY_WARNING");
+            splash.progress(15);
+            splash.setMessage(msg);
+            LOGGER.warn(msg, fnfe);
+            Bensikin.treatError(fnfe, msg, splash);
         } catch (final Exception e) {
             final String msg = Messages.getLogMessage("APPLICATION_WILL_START_LOAD_HISTORY_KO");
             splash.progress(15);
diff --git a/src/main/java/fr/soleil/bensikin/options/manager/DummyOptionsManager.java b/src/main/java/fr/soleil/bensikin/options/manager/DummyOptionsManager.java
index 76fd96e..667c54e 100644
--- a/src/main/java/fr/soleil/bensikin/options/manager/DummyOptionsManager.java
+++ b/src/main/java/fr/soleil/bensikin/options/manager/DummyOptionsManager.java
@@ -1,4 +1,4 @@
-//+======================================================================
+// +======================================================================
 // $Source: /cvsroot/tango-cs/tango/tools/bensikin/bensikin/options/manager/DummyOptionsManager.java,v $
 //
 // Project:      Tango Archiving Service
@@ -29,6 +29,7 @@
 //-======================================================================
 package fr.soleil.bensikin.options.manager;
 
+import fr.soleil.archiving.common.api.exception.ArchivingException;
 import fr.soleil.bensikin.options.Options;
 
 /**
@@ -38,31 +39,32 @@ import fr.soleil.bensikin.options.Options;
  */
 public class DummyOptionsManager implements IOptionsManager {
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * bensikin.bensikin.options.manager.IOptionsManager#saveOptions(bensikin
-	 * .bensikin.options.Options, java.lang.String)
-	 */
-	public void saveOptions(Options options, String optionsResourceLocation)
-			throws Exception {
-		// TODO Auto-generated method stub
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * bensikin.bensikin.options.manager.IOptionsManager#saveOptions(bensikin
+     * .bensikin.options.Options, java.lang.String)
+     */
+    @Override
+    public void saveOptions(Options options, String optionsResourceLocation) throws ArchivingException {
+        // TODO Auto-generated method stub
 
-	}
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * bensikin.bensikin.options.manager.IOptionsManager#loadOptions(java.lang
-	 * .String)
-	 */
-	public Options loadOptions(String optionsResourceLocation) throws Exception {
-		// TODO Auto-generated method stub
-		// Options ret = Options.getInstance();
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * bensikin.bensikin.options.manager.IOptionsManager#loadOptions(java.lang
+     * .String)
+     */
+    @Override
+    public Options loadOptions(String optionsResourceLocation) throws ArchivingException {
+        // TODO Auto-generated method stub
+        // Options ret = Options.getInstance();
 
-		return null;
-	}
+        return null;
+    }
 
 }
diff --git a/src/main/java/fr/soleil/bensikin/options/manager/IOptionsManager.java b/src/main/java/fr/soleil/bensikin/options/manager/IOptionsManager.java
index 9429ede..6678e64 100644
--- a/src/main/java/fr/soleil/bensikin/options/manager/IOptionsManager.java
+++ b/src/main/java/fr/soleil/bensikin/options/manager/IOptionsManager.java
@@ -1,4 +1,4 @@
-//+======================================================================
+// +======================================================================
 // $Source: /cvsroot/tango-cs/tango/tools/bensikin/bensikin/options/manager/IOptionsManager.java,v $
 //
 // Project:      Tango Archiving Service
@@ -26,6 +26,7 @@
 //-======================================================================
 package fr.soleil.bensikin.options.manager;
 
+import fr.soleil.archiving.common.api.exception.ArchivingException;
 import fr.soleil.bensikin.options.Options;
 
 /**
@@ -34,25 +35,24 @@ import fr.soleil.bensikin.options.Options;
  * @author CLAISSE
  */
 public interface IOptionsManager {
-	/**
-	 * Saves options to the desired location.
-	 * 
-	 * @param options
-	 *            The Options to save
-	 * @param optionsResourceLocation
-	 *            The Options save location
-	 * @throws Exception
-	 */
-	public void saveOptions(Options options, String optionsResourceLocation)
-			throws Exception;
+    /**
+     * Saves options to the desired location.
+     * 
+     * @param options
+     *            The Options to save
+     * @param optionsResourceLocation
+     *            The Options save location
+     * @throws Exception
+     */
+    public void saveOptions(Options options, String optionsResourceLocation) throws ArchivingException;
 
-	/**
-	 * Loads options from the desired location.
-	 * 
-	 * @param optionsResourceLocation
-	 *            The Options load location
-	 * @return The loaded Options
-	 * @throws Exception
-	 */
-	public Options loadOptions(String optionsResourceLocation) throws Exception;
+    /**
+     * Loads options from the desired location.
+     * 
+     * @param optionsResourceLocation
+     *            The Options load location
+     * @return The loaded Options
+     * @throws Exception
+     */
+    public Options loadOptions(String optionsResourceLocation) throws ArchivingException;
 }
diff --git a/src/main/java/fr/soleil/bensikin/options/manager/XMLOptionsManager.java b/src/main/java/fr/soleil/bensikin/options/manager/XMLOptionsManager.java
index 476ec9c..d6210a2 100644
--- a/src/main/java/fr/soleil/bensikin/options/manager/XMLOptionsManager.java
+++ b/src/main/java/fr/soleil/bensikin/options/manager/XMLOptionsManager.java
@@ -70,8 +70,12 @@ public class XMLOptionsManager extends XMLDataManager<Options, Map<String, List<
      * .bensikin.options.Options, java.lang.String)
      */
     @Override
-    public void saveOptions(Options options, String optionsResourceLocation) throws Exception {
-        XMLUtils.save(options.toString(), optionsResourceLocation);
+    public void saveOptions(Options options, String optionsResourceLocation) throws ArchivingException {
+        try {
+            XMLUtils.save(options.toString(), optionsResourceLocation);
+        } catch (Exception e) {
+            throw ArchivingException.toArchivingException(e);
+        }
     }
 
     /*
@@ -82,7 +86,7 @@ public class XMLOptionsManager extends XMLDataManager<Options, Map<String, List<
      * .String)
      */
     @Override
-    public Options loadOptions(String optionsResourceLocation) throws Exception {
+    public Options loadOptions(String optionsResourceLocation) throws ArchivingException {
         Options ret = Options.getInstance();
 
         Map<String, List<Map<String, String>>> optionsHt = loadDataIntoHash(optionsResourceLocation);
-- 
GitLab