diff --git a/src/main/java/fr/soleil/archiving/snap/api/DataBaseAPI.java b/src/main/java/fr/soleil/archiving/snap/api/DataBaseAPI.java
index ec0747b1bdcd66a4f156fb248a3519be074f7699..0ad2048ee4d1a470aeab7d89c623593c6cf2c1ef 100644
--- a/src/main/java/fr/soleil/archiving/snap/api/DataBaseAPI.java
+++ b/src/main/java/fr/soleil/archiving/snap/api/DataBaseAPI.java
@@ -1,30 +1,6 @@
 package fr.soleil.archiving.snap.api;
 
-import java.lang.reflect.Array;
-import java.sql.CallableStatement;
-import java.sql.Clob;
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.sql.Timestamp;
-import java.sql.Types;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Random;
-import java.util.StringTokenizer;
-import java.util.stream.Collectors;
-
-import org.jdbi.v3.core.Handle;
-import org.jdbi.v3.core.statement.Query;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
+import com.google.common.collect.Lists;
 import fr.esrf.Tango.AttrDataFormat;
 import fr.esrf.Tango.AttrWriteType;
 import fr.esrf.Tango.ErrSeverity;
@@ -44,7 +20,30 @@ import fr.soleil.archiving.snap.api.tools.TangoJAVAUtils;
 import fr.soleil.database.connection.AbstractDataBaseConnector;
 import fr.soleil.database.connection.DataBaseParameters;
 import fr.soleil.database.connection.DataBaseParameters.DataBaseType;
-import fr.soleil.lib.project.ObjectUtils;
+import org.jdbi.v3.core.Handle;
+import org.jdbi.v3.core.statement.Query;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.lang.reflect.Array;
+import java.sql.CallableStatement;
+import java.sql.Clob;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.sql.Timestamp;
+import java.sql.Types;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Random;
+import java.util.StringTokenizer;
+import java.util.stream.Collectors;
 
 /**
  * <b>Description : </b> This class hides the loading of drivers, the
@@ -57,8 +56,10 @@ import fr.soleil.lib.project.ObjectUtils;
 public class DataBaseAPI {
 
     private static final String ERROR_EXTRACTING_SNAPSHOT_DATA = "error extracting snapshot data";
-    public static final boolean USE_LOG4JDBC = "true".equalsIgnoreCase(System.getProperty("log4jdbc.active", "false"));
-    private static final Logger LOGGER = LoggerFactory.getLogger(DataBaseAPI.class);
+    public static final int MAX_SELECT_SIZE = 1000;
+    public static boolean useLog4JDBC = System.getProperty("log4jdbc.active") == null ? false : System.getProperty(
+            "log4jdbc.active").equalsIgnoreCase("true");
+    private final Logger logger = LoggerFactory.getLogger(DataBaseAPI.class);
     /**
      * Connection dbatabase type (<I>MySQL</I>, <I>Oracle</I>, ...)
      */
@@ -106,15 +107,6 @@ public class DataBaseAPI {
         return params.getName();
     }
 
-    /**
-     * <b>Description : </b> Gets the database's schema name
-     *
-     * @return The database name
-     */
-    public String getDbSchema() {
-        return params.getSchema();
-    }
-
     /**
      * <b>Description : </b> Returns the connected database host identifier.
      *
@@ -159,7 +151,7 @@ public class DataBaseAPI {
      *
      * @param arr an array of Strings
      * @throws NullPointerException *************************************************************
-     *             * ***********
+     *                              * ***********
      */
     public int getArrayCount(final String[] arr) {
         int arrayCount = 0;
@@ -179,12 +171,29 @@ public class DataBaseAPI {
      * <b>Description : </b> Closes the connection with the database
      *
      * @throws SnapshotingException *************************************************************
-     *             * *********
+     *                              * *********
      */
     public void close(final Connection conn) {
         closeConnection(conn);
     }
 
+    private void closeConnection(final Connection conn) {
+        if (conn == null) {
+            return;
+        }
+
+        try {
+            conn.close();
+        } catch (final SQLException e) {
+            e.printStackTrace();
+
+            logger.error("ERROR !! " + "\r\n" + "\t Origin : \t " + "DataBaseAPI.closeConnection" + "\r\n"
+                    + "\t Reason : \t " + getDbSchema().toUpperCase().trim() + "_FAILURE" + "\r\n"
+                    + "\t Description : \t " + e.getMessage());
+        }
+    }
+
+
     /*****************************************************************************
      *
      *
@@ -192,6 +201,33 @@ public class DataBaseAPI {
      *
      ****************************************************************************/
 
+    /**
+     * <b>Description : </b> Gets the database's schema name
+     *
+     * @return The database name
+     */
+    public String getDbSchema() {
+        return params.getSchema();
+    }
+
+    /**
+     * <b>Description : </b> Checks if the attribute of the given name, is
+     * already registered in <I>SnapDb</I> (and more particularly in the table
+     * of the definitions).
+     *
+     * @param att_name The name of the attribute to check.
+     * @return boolean
+     * @throws SnapshotingException
+     */
+    public boolean isRegistered(final String att_name) throws SnapshotingException {
+        final int id = getAttID(att_name.trim());
+        if (id != 0) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+
     /**
      * ************************************************************************
      * <b>Description : </b> Gets for a specified attribute its ID as defined in
@@ -200,7 +236,7 @@ public class DataBaseAPI {
      * @param att_name The attribute's name
      * @return The <I>SnapDb</I>'s ID that caracterize the given attribute
      * @throws SnapshotingException *************************************************************
-     *             * *********
+     *                              * *********
      */
     public int getAttID(final String att_name) throws SnapshotingException {
         int attributesID = 0;
@@ -232,10 +268,10 @@ public class DataBaseAPI {
         } catch (final SQLException e) {
             final String message = SnapConst.SNAPSHOTING_ERROR_PREFIX + " : " + SnapConst.QUERY_FAILURE;
             final String reason = "Failed while executing DataBaseAPI.getAttID() method...";
-            final String desc = ObjectUtils.EMPTY_STRING;
+            final String desc = "";
             selectStringBuilder.append(" => ").append(att_name.trim());
             throw new SnapshotingException(message, reason, selectStringBuilder.toString(), ErrSeverity.PANIC, desc,
-                    ObjectUtils.EMPTY_STRING, e);
+                    "", e);
         } finally {
             closeResultSet(rset);
             closeStatement(ps_get_att_id);
@@ -246,21 +282,35 @@ public class DataBaseAPI {
         return attributesID;
     }
 
-    /**
-     * <b>Description : </b> Checks if the attribute of the given name, is
-     * already registered in <I>SnapDb</I> (and more particularly in the table
-     * of the definitions).
-     *
-     * @param att_name The name of the attribute to check.
-     * @return boolean
-     * @throws SnapshotingException
-     */
-    public boolean isRegistered(final String att_name) throws SnapshotingException {
-        final int id = getAttID(att_name.trim());
-        if (id != 0) {
-            return true;
-        } else {
-            return false;
+    public void closeResultSet(final ResultSet resultSet) {
+        if (resultSet == null) {
+            return;
+        }
+
+        try {
+            resultSet.close();
+        } catch (final SQLException e) {
+            e.printStackTrace();
+
+            logger.error("ERROR !! " + "\r\n" + "\t Origin : \t " + "DataBaseAPI.closeResultSet" + "\r\n"
+                    + "\t Reason : \t " + getDbSchema().toUpperCase().trim() + "_FAILURE" + "\r\n"
+                    + "\t Description : \t " + e.getMessage());
+        }
+    }
+
+    public void closeStatement(final Statement preparedStatement) {
+        if (preparedStatement == null) {
+            return;
+        }
+
+        try {
+            preparedStatement.close();
+        } catch (final SQLException e) {
+            e.printStackTrace();
+
+            logger.error("ERROR !! " + "\r\n" + "\t Origin : \t " + "DataBaseAPI.closeStatement" + "\r\n"
+                    + "\t Reason : \t " + getDbSchema().toUpperCase().trim() + "_FAILURE" + "\r\n"
+                    + "\t Description : \t " + e.getMessage());
         }
     }
 
@@ -269,7 +319,7 @@ public class DataBaseAPI {
      * referenced in database <I>snap</I>.<I>(mySQL only)</I>
      *
      * @return Returns the new id for the new context being referenced in
-     *         database <I>snap</I>.
+     * database <I>snap</I>.
      * @throws SnapshotingException
      */
     public int getMaxContextID() throws SnapshotingException {
@@ -292,16 +342,14 @@ public class DataBaseAPI {
                 final String message = SnapConst.SNAPSHOTING_ERROR_PREFIX + " : " + SnapConst.QUERY_FAILURE;
                 final String reason = "Failed while executing DataBaseAPI.getMaxID() method...";
                 final String desc = "The table seem to be empty, please check it...";
-                LOGGER.error(new SnapshotingException(message, reason, ErrSeverity.WARN, desc, ObjectUtils.EMPTY_STRING)
-                        .toString());
+                logger.error(new SnapshotingException(message, reason, ErrSeverity.WARN, desc, "").toString());
                 res = 0;
             }
         } catch (final SQLException e) {
             final String message = SnapConst.SNAPSHOTING_ERROR_PREFIX + " : " + SnapConst.QUERY_FAILURE;
             final String reason = "Failed while executing DataBaseAPI.getMaxID() method...";
-            final String desc = ObjectUtils.EMPTY_STRING;
-            throw new SnapshotingException(message, reason, query, ErrSeverity.PANIC, desc, ObjectUtils.EMPTY_STRING,
-                    e);
+            final String desc = "";
+            throw new SnapshotingException(message, reason, query, ErrSeverity.PANIC, desc, "", e);
         } finally {
             closeResultSet(rset);
             closeStatement(stmt);
@@ -351,11 +399,11 @@ public class DataBaseAPI {
      * @return array of strings
      * @throws SnapshotingException
      * @see SnapshotLight
-     *      ********************************************************************
-     *      * ****
+     * ********************************************************************
+     * * ****
      */
     public List<SnapshotLight> getContextAssociatedSnapshots(final String clause, final int id_context,
-            final int id_snap) throws SnapshotingException {
+                                                             final int id_snap) throws SnapshotingException {
         // Create and execute the SQL query string
         String query;
         final String select_field = SnapConst.ID_SNAP + ", " + SnapConst.time + ", " + SnapConst.snap_comment;
@@ -414,10 +462,9 @@ public class DataBaseAPI {
 
             final String message = SnapConst.SNAPSHOTING_ERROR_PREFIX + " : " + SnapConst.QUERY_FAILURE;
             final String reason = "Failed while executing DataBaseAPI.getContextID() method...";
-            final String desc = ObjectUtils.EMPTY_STRING;
+            final String desc = "";
             final String queryDebug = query + " => " + snapID;
-            throw new SnapshotingException(message, reason, queryDebug, ErrSeverity.PANIC, desc,
-                    ObjectUtils.EMPTY_STRING, e);
+            throw new SnapshotingException(message, reason, queryDebug, ErrSeverity.PANIC, desc, "", e);
         } finally {
             closeResultSet(rset);
             closeStatement(preparedStatement);
@@ -436,9 +483,9 @@ public class DataBaseAPI {
         ResultSet resultSet = null;
         // SELECT id_att, value FROM t_sc_num_1val WHERE id_snap = ?
         final String query = "SELECT " + SnapConst.ID_ATT + "," + SnapConst.value + " FROM " + getDbSchema() + "."
-                + table + " WHERE " + SnapConst.ID_SNAP + "=" + snapID + " AND " + SnapConst.ID_ATT + " IN ("
-                + String.join(", ",
-                        attributes.stream().map(s -> String.valueOf(s.getAttId())).collect(Collectors.toList()))
+                + table + " WHERE " + SnapConst.ID_SNAP + "=" + snapID + " AND " + SnapConst.ID_ATT
+                + " IN (" + String.join(", ",
+                attributes.stream().map(s -> String.valueOf(s.getAttId())).collect(Collectors.toList()))
                 + ")";
         try {
             conn = connector.getConnection();
@@ -459,8 +506,8 @@ public class DataBaseAPI {
         }
     }
 
-    private void selectRO(final List<SnapAttributeExtract> attributes, int snapID, final String tableName)
-            throws SnapshotingException, SQLException {
+    private void selectRO(final List<SnapAttributeExtract> attributes, int snapID,
+                          final String tableName) throws SnapshotingException, SQLException {
 
         Connection conn = null;
         PreparedStatement preparedStatement = null;
@@ -490,7 +537,8 @@ public class DataBaseAPI {
                 final Clob readClob = resultSet.getClob(2);
                 if (readClob != null) {
                     final String value = readClob.getSubString(1, (int) readClob.length());
-                    NullableData<?> data = getSpectrumValue(value, null, snapAttributeExtract.getDataType(), false);
+                    NullableData<?> data = getSpectrumValue(value, null, snapAttributeExtract.getDataType(),
+                            false);
                     snapAttributeExtract.setValue(data.getValue(), data.getNullElements());
                 }
             }
@@ -501,8 +549,8 @@ public class DataBaseAPI {
         }
     }
 
-    private void selectRW(final List<SnapAttributeExtract> attributes, final int snapID, final String tableName)
-            throws SnapshotingException, SQLException {
+    private void selectRW(final List<SnapAttributeExtract> attributes, final int snapID,
+                          final String tableName) throws SnapshotingException, SQLException {
         Connection conn = null;
         PreparedStatement preparedStatement = null;
         ResultSet resultSet = null;
@@ -510,7 +558,7 @@ public class DataBaseAPI {
         // t_sp_2val WHERE id_snap = ?
 
         List<String> scpectrumRWAttId = attributes.stream().filter(s -> s.getDataFormat() == AttrDataFormat._SPECTRUM
-                && (s.getWritable() == AttrWriteType._READ_WITH_WRITE || s.getWritable() == AttrWriteType._READ_WRITE))
+                        && (s.getWritable() == AttrWriteType._READ_WITH_WRITE || s.getWritable() == AttrWriteType._READ_WRITE))
                 .map(s -> String.valueOf(s.getAttId())).collect(Collectors.toList());
         if (scpectrumRWAttId.isEmpty()) {
             return;
@@ -538,8 +586,8 @@ public class DataBaseAPI {
                 if (writeClob != null) {
                     writeValue = writeClob.getSubString(1, (int) writeClob.length());
                 }
-                NullableData<?> data = getSpectrumValue(readValue, writeValue, snapAttributeExtract.getDataType(),
-                        true);
+                NullableData<?> data = getSpectrumValue(readValue, writeValue,
+                        snapAttributeExtract.getDataType(), true);
                 snapAttributeExtract.setValue(data.getValue(), data.getNullElements());
                 snapAttributeExtract.setDimX(resultSet.getInt(4));
             }
@@ -563,7 +611,7 @@ public class DataBaseAPI {
         final String query = "SELECT " + SnapConst.ID_ATT + "," + SnapConst.read_value + "," + SnapConst.write_value
                 + " FROM " + getDbSchema() + "." + table + " WHERE " + SnapConst.ID_SNAP + "=" + snapID + " AND "
                 + SnapConst.ID_ATT + " IN (" + String.join(", ",
-                        attributes.stream().map(s -> String.valueOf(s.getAttId())).collect(Collectors.toList()))
+                attributes.stream().map(s -> String.valueOf(s.getAttId())).collect(Collectors.toList()))
                 + ")";
         try {
             conn = connector.getConnection();
@@ -577,11 +625,11 @@ public class DataBaseAPI {
                 final Object value = TangoJAVAUtils.initPrimitiveArray(snapAttributeExtract.getDataType(), 2);
                 final boolean[] nullElements = new boolean[2];
 
-                Array.set(value, 0,
-                        TangoJAVAUtils.castResultSetAsPrimitive(snapAttributeExtract.getDataType(), resultSet, 2));
+                Array.set(value, 0, TangoJAVAUtils.castResultSetAsPrimitive(snapAttributeExtract.getDataType(),
+                        resultSet, 2));
                 nullElements[0] = resultSet.wasNull();
-                Array.set(value, 1,
-                        TangoJAVAUtils.castResultSetAsPrimitive(snapAttributeExtract.getDataType(), resultSet, 3));
+                Array.set(value, 1, TangoJAVAUtils.castResultSetAsPrimitive(snapAttributeExtract.getDataType(),
+                        resultSet, 3));
                 nullElements[1] = resultSet.wasNull();
 
                 snapAttributeExtract.setValue(value, nullElements);
@@ -598,15 +646,14 @@ public class DataBaseAPI {
      * Retrieve a snapshot results'
      *
      * @param attributes the attributes to retrieve. Will contain results after
-     *            execution
-     * @param snapID The snap ID
+     *                   execution
+     * @param snapID     The snap ID
      * @throws SnapshotingException
      */
     public void getSnapResults(final List<SnapAttributeExtract> attributes, final int snapID)
             throws SnapshotingException {
 
         // one sql request per table
-
         List<SnapAttributeExtract> numericScalarRO = attributes.stream()
                 .filter(s -> s.getDataFormat() == AttrDataFormat._SCALAR
                         && s.getDataType() != TangoConst.Tango_DEV_STRING
@@ -622,117 +669,85 @@ public class DataBaseAPI {
         List<SnapAttributeExtract> numericScalarRW = attributes.stream()
                 .filter(s -> s.getDataFormat() == AttrDataFormat._SCALAR
                         && s.getDataType() != TangoConst.Tango_DEV_STRING
-                        && (s.getWritable() == AttrWriteType._READ_WITH_WRITE
-                                || s.getWritable() == AttrWriteType._READ_WRITE))
+                        && (s.getWritable() == AttrWriteType._READ_WITH_WRITE || s.getWritable() == AttrWriteType._READ_WRITE))
                 .collect(Collectors.toList());
 
         List<SnapAttributeExtract> stringScalarRW = attributes.stream()
                 .filter(s -> s.getDataFormat() == AttrDataFormat._SCALAR
                         && s.getDataType() == TangoConst.Tango_DEV_STRING
-                        && (s.getWritable() == AttrWriteType._READ_WITH_WRITE
-                                || s.getWritable() == AttrWriteType._READ_WRITE))
+                        && (s.getWritable() == AttrWriteType._READ_WITH_WRITE || s.getWritable() == AttrWriteType._READ_WRITE))
                 .collect(Collectors.toList());
 
         try {
             // --- Get scalar numeric read only values
-            selectScalarRO(numericScalarRO, snapID, SnapConst.T_SC_NUM_1VAL);
+
+            // Avoid Oracle DB error ORA-01795: maximum number of expressions in a list is 1000
+            final List<List<SnapAttributeExtract>> chunks = Lists.partition(numericScalarRO, MAX_SELECT_SIZE);
+            for (List<SnapAttributeExtract> chunk : chunks) {
+                selectScalarRO(chunk, snapID, SnapConst.T_SC_NUM_1VAL);
+            }
         } catch (SQLException | SnapshotingException e) {
-            LOGGER.error(ERROR_EXTRACTING_SNAPSHOT_DATA, e);
+            logger.error(ERROR_EXTRACTING_SNAPSHOT_DATA, e);
         }
         try {
             // --- Get scalar numeric read write values
-            selectScalarRW(numericScalarRW, snapID, SnapConst.T_SC_NUM_2VAL);
+            final List<List<SnapAttributeExtract>> chunks = Lists.partition(numericScalarRW, MAX_SELECT_SIZE);
+            for (List<SnapAttributeExtract> chunk : chunks) {
+                selectScalarRW(chunk, snapID, SnapConst.T_SC_NUM_2VAL);
+            }
         } catch (SQLException | SnapshotingException e) {
-            LOGGER.error(ERROR_EXTRACTING_SNAPSHOT_DATA, e);
+            logger.error(ERROR_EXTRACTING_SNAPSHOT_DATA, e);
         }
 
         try {
             // --- Get scalar string read only values
-            selectScalarRO(stringScalarRO, snapID, SnapConst.T_SC_STR_1VAL);
+            final List<List<SnapAttributeExtract>> chunks = Lists.partition(stringScalarRO, MAX_SELECT_SIZE);
+            for (List<SnapAttributeExtract> chunk : chunks) {
+                selectScalarRO(chunk, snapID, SnapConst.T_SC_STR_1VAL);
+            }
         } catch (SQLException | SnapshotingException e) {
-            LOGGER.error(ERROR_EXTRACTING_SNAPSHOT_DATA, e);
+            logger.error(ERROR_EXTRACTING_SNAPSHOT_DATA, e);
         }
 
         try {
             // --- Get scalar numeric read write values
-            selectScalarRW(stringScalarRW, snapID, SnapConst.T_SC_STR_2VAL);
+            final List<List<SnapAttributeExtract>> chunks = Lists.partition(stringScalarRW, MAX_SELECT_SIZE);
+            for (List<SnapAttributeExtract> chunk : chunks) {
+                selectScalarRW(chunk, snapID, SnapConst.T_SC_STR_2VAL);
+            }
         } catch (SQLException | SnapshotingException e) {
-            LOGGER.error(ERROR_EXTRACTING_SNAPSHOT_DATA, e);
+            logger.error(ERROR_EXTRACTING_SNAPSHOT_DATA, e);
         }
         try {
             // --- Get spectrum read values
-            selectRO(attributes, snapID, SnapConst.T_SP_1VAL);
+            final List<List<SnapAttributeExtract>> chunks = Lists.partition(attributes, MAX_SELECT_SIZE);
+            for (List<SnapAttributeExtract> chunk : chunks) {
+                selectRO(chunk, snapID, SnapConst.T_SP_1VAL);
+            }
         } catch (SQLException | SnapshotingException e) {
-            LOGGER.error(ERROR_EXTRACTING_SNAPSHOT_DATA, e);
+            logger.error(ERROR_EXTRACTING_SNAPSHOT_DATA, e);
         }
         try {
             // --- Get spectrum read write values
-            selectRW(attributes, snapID, SnapConst.T_SP_2VAL);
+            final List<List<SnapAttributeExtract>> chunks = Lists.partition(attributes, MAX_SELECT_SIZE);
+            for (List<SnapAttributeExtract> chunk : chunks) {
+                selectRW(chunk, snapID, SnapConst.T_SP_2VAL);
+            }
         } catch (SQLException | SnapshotingException e) {
-            LOGGER.error(ERROR_EXTRACTING_SNAPSHOT_DATA, e);
-        }
-    }
-
-    public void closeResultSet(final ResultSet resultSet) {
-        if (resultSet == null) {
-            return;
-        }
-
-        try {
-            resultSet.close();
-        } catch (final SQLException e) {
-            e.printStackTrace();
-
-            LOGGER.error("ERROR !! " + "\r\n" + "\t Origin : \t " + "DataBaseAPI.closeResultSet" + "\r\n"
-                    + "\t Reason : \t " + getDbSchema().toUpperCase().trim() + "_FAILURE" + "\r\n"
-                    + "\t Description : \t " + e.getMessage());
-        }
-    }
-
-    public void closeStatement(final Statement preparedStatement) {
-        if (preparedStatement == null) {
-            return;
-        }
-
-        try {
-            preparedStatement.close();
-        } catch (final SQLException e) {
-            e.printStackTrace();
-
-            LOGGER.error("ERROR !! " + "\r\n" + "\t Origin : \t " + "DataBaseAPI.closeStatement" + "\r\n"
-                    + "\t Reason : \t " + getDbSchema().toUpperCase().trim() + "_FAILURE" + "\r\n"
-                    + "\t Description : \t " + e.getMessage());
-        }
-    }
-
-    private void closeConnection(final Connection conn) {
-        if (conn == null) {
-            return;
-        }
-
-        try {
-            conn.close();
-        } catch (final SQLException e) {
-            e.printStackTrace();
-
-            LOGGER.error("ERROR !! " + "\r\n" + "\t Origin : \t " + "DataBaseAPI.closeConnection" + "\r\n"
-                    + "\t Reason : \t " + getDbSchema().toUpperCase().trim() + "_FAILURE" + "\r\n"
-                    + "\t Description : \t " + e.getMessage());
+            logger.error(ERROR_EXTRACTING_SNAPSHOT_DATA, e);
         }
     }
 
     private NullableData<?> getSpectrumValue(final String readStr, final String writeStr, final int dataType,
-            final boolean returnAsReadWrite) {
+                                             final boolean returnAsReadWrite) {
         int readSize = 0, writeSize = 0;
         StringTokenizer readTokenizer;
         String readString = null, writeString = null;
         if (readStr == null) {
             readTokenizer = null;
         } else {
-            readString = readStr.replaceAll("\\[", ObjectUtils.EMPTY_STRING).replaceAll("\\]",
-                    ObjectUtils.EMPTY_STRING);
-            if (ObjectUtils.EMPTY_STRING.equals(readString) || "null".equals(readString)
-                    || "NaN".equalsIgnoreCase(readString)) {
+            readString = readStr.replaceAll("\\[", "").replaceAll("\\]", "");
+            if ("".equals(readString) || "null".equals(readString) || "NaN".equalsIgnoreCase(readString)) {
                 readTokenizer = null;
             } else {
                 readTokenizer = new StringTokenizer(readString, GlobalConst.CLOB_SEPARATOR);
@@ -744,9 +759,8 @@ public class DataBaseAPI {
         if (writeStr == null) {
             writeTokenizer = null;
         } else {
-            writeString = writeStr.replaceAll("\\[", ObjectUtils.EMPTY_STRING).replaceAll("\\]",
-                    ObjectUtils.EMPTY_STRING);
-            if (writeString.isEmpty() || "null".equals(writeString) || "NaN".equalsIgnoreCase(writeString)) {
+            writeString = writeStr.replaceAll("\\[", "").replaceAll("\\]", "");
+            if ("".equals(writeString) || "null".equals(writeString) || "NaN".equalsIgnoreCase(writeString)) {
                 writeTokenizer = null;
             } else {
                 writeTokenizer = new StringTokenizer(writeString, GlobalConst.CLOB_SEPARATOR);
@@ -760,6 +774,7 @@ public class DataBaseAPI {
         Object valueArr_read = TangoJAVAUtils.initPrimitiveArray(dataType, readSize);
         Object valueArr_write = null;
 
+
         if (returnAsReadWrite) {
             valueArr_write = TangoJAVAUtils.initPrimitiveArray(dataType, writeSize);
         }
@@ -768,7 +783,7 @@ public class DataBaseAPI {
             nullRead = new boolean[readSize];
             while (readTokenizer.hasMoreTokens()) {
                 final String currentValRead = readTokenizer.nextToken();
-                if (currentValRead == null || currentValRead.trim().isEmpty()) {
+                if (currentValRead == null || currentValRead.trim().equals("")) {
                     break;
                 }
                 if (TangoJAVAUtils.isNullOrNaN(currentValRead)) {
@@ -786,7 +801,7 @@ public class DataBaseAPI {
             i = 0;
             while (writeTokenizer.hasMoreTokens()) {
                 final String currentValWrite = writeTokenizer.nextToken();
-                if (currentValWrite == null || currentValWrite.trim().isEmpty()) {
+                if (currentValWrite == null || currentValWrite.trim().equals("")) {
                     break;
                 }
                 if (TangoJAVAUtils.isNullOrNaN(currentValWrite)) {
@@ -800,8 +815,8 @@ public class DataBaseAPI {
         }
 
         if (returnAsReadWrite) {
-            final Object[] result = new Object[] { valueArr_read, valueArr_write };
-            final boolean[][] nullElements = new boolean[][] { nullRead, nullWrite };
+            final Object[] result = new Object[]{valueArr_read, valueArr_write};
+            final boolean[][] nullElements = new boolean[][]{nullRead, nullWrite};
 
             return new NullableData<boolean[][]>(result, nullElements);
         } else {
@@ -826,18 +841,18 @@ public class DataBaseAPI {
      */
     public void registerAttribute(final AttributeHeavy snapAttributeHeavy) throws SnapshotingException {
         Connection conn = null;
-        Object[] listValues = new Object[] { snapAttributeHeavy.getAttributeCompleteName(),
+        Object[] listValues = new Object[]{snapAttributeHeavy.getAttributeCompleteName(),
                 snapAttributeHeavy.getAttribute_device_name(), snapAttributeHeavy.getDomain(),
                 snapAttributeHeavy.getFamily(), snapAttributeHeavy.getMember(), snapAttributeHeavy.getAttribute_name(),
                 snapAttributeHeavy.getDataType(), snapAttributeHeavy.getDataFormat(), snapAttributeHeavy.getWritable(),
                 snapAttributeHeavy.getMax_dim_x(), snapAttributeHeavy.getMax_dim_y(), snapAttributeHeavy.getLevel(),
                 snapAttributeHeavy.getCtrl_sys(), snapAttributeHeavy.getArchivable(),
-                snapAttributeHeavy.getSubstitute() };
+                snapAttributeHeavy.getSubstitute()};
 
         StringBuilder valueConcat = new StringBuilder();
 
         PreparedStatement preparedStatement = null;
-        String query = ObjectUtils.EMPTY_STRING;
+        String query = "";
         if (params.getDbType() == DataBaseType.MYSQL) {
 
             final String tableName = getDbSchema() + "." + SnapConst.AST;
@@ -846,7 +861,7 @@ public class DataBaseAPI {
             // Build the query string
             String insert_fields = String.join(", ", SnapConst.TAB_DEF);
 
-            String insert_values = ObjectUtils.EMPTY_STRING;
+            String insert_values = "";
             for (int i = 1; i < SnapConst.TAB_DEF.length - 1; i++) {
                 insert_values = insert_values + "?" + ", ";
             }
@@ -892,10 +907,9 @@ public class DataBaseAPI {
         } catch (final SQLException e) {
             final String message = SnapConst.SNAPSHOTING_ERROR_PREFIX + " : " + SnapConst.QUERY_FAILURE;
             final String reason = "Failed while executing DataBaseAPI.registerAttribute() method...";
-            final String desc = ObjectUtils.EMPTY_STRING;
+            final String desc = "";
             final String queryDebug = query + " => " + valueConcat.toString();
-            throw new SnapshotingException(message, reason, queryDebug, ErrSeverity.PANIC, desc,
-                    ObjectUtils.EMPTY_STRING, e);
+            throw new SnapshotingException(message, reason, queryDebug, ErrSeverity.PANIC, desc, "", e);
         } finally {
             closeStatement(preparedStatement);
             closeConnection(conn);
@@ -908,7 +922,7 @@ public class DataBaseAPI {
      *
      * @param snapContext the new context to register into the database for snapshots.
      * @return the context identifier (int) associated to the new registered
-     *         context.
+     * context.
      * @throws SnapshotingException
      */
     public int create_context(final SnapContext snapContext) throws SnapshotingException {
@@ -933,8 +947,8 @@ public class DataBaseAPI {
             if (contextIDList.contains(contextID)) {
                 // update snap.context SET name=?, author=?, reason=?,
                 // description=? where id =?;
-                final String updateQuery = "UPDATE " + tableName + " SET " + SnapConst.name + "= ?, " + SnapConst.author
-                        + "= ?, " + SnapConst.reason + "= ?, " + SnapConst.description + "= ? WHERE "
+                final String updateQuery = "UPDATE " + tableName + " SET " + SnapConst.name + "= ?, "
+                        + SnapConst.author + "= ?, " + SnapConst.reason + "= ?, " + SnapConst.description + "= ? WHERE "
                         + SnapConst.ID_CONTEXT + "= ?";
                 try {
 
@@ -950,12 +964,11 @@ public class DataBaseAPI {
                 } catch (final SQLException e) {
                     final String message = SnapConst.SNAPSHOTING_ERROR_PREFIX + " : " + SnapConst.QUERY_FAILURE;
                     final String reason = "Failed while executing DataBaseAPI.create_context() method...";
-                    final String desc = ObjectUtils.EMPTY_STRING;
+                    final String desc = "";
                     final String queryDebug = updateQuery + " => (" + snapContext.getName() + ","
                             + snapContext.getAuthor_name() + "," + snapContext.getReason() + ","
                             + snapContext.getDescription() + "," + contextID + ")";
-                    throw new SnapshotingException(message, reason, queryDebug, ErrSeverity.PANIC, desc,
-                            ObjectUtils.EMPTY_STRING, e);
+                    throw new SnapshotingException(message, reason, queryDebug, ErrSeverity.PANIC, desc, "", e);
                 } finally {
                     closeStatement(preparedStatement);
                 }
@@ -985,12 +998,11 @@ public class DataBaseAPI {
                     } catch (final SQLException e) {
                         final String message = SnapConst.SNAPSHOTING_ERROR_PREFIX + " : " + SnapConst.QUERY_FAILURE;
                         final String reason = "Failed while executing DataBaseAPI.create_context() method...";
-                        final String desc = ObjectUtils.EMPTY_STRING;
+                        final String desc = "";
                         final String queryDebug = query + " => (" + snapContext.getCreation_date() + ","
                                 + snapContext.getName() + "," + snapContext.getAuthor_name() + ","
                                 + snapContext.getReason() + "," + snapContext.getDescription() + ")";
-                        throw new SnapshotingException(message, reason, queryDebug, ErrSeverity.PANIC, desc,
-                                ObjectUtils.EMPTY_STRING, e);
+                        throw new SnapshotingException(message, reason, queryDebug, ErrSeverity.PANIC, desc, "", e);
                     } finally {
                         closeStatement(preparedStatement);
                     }
@@ -1014,13 +1026,12 @@ public class DataBaseAPI {
                     } catch (final SQLException e) {
                         final String message = SnapConst.SNAPSHOTING_ERROR_PREFIX + " : " + SnapConst.QUERY_FAILURE;
                         final String reason = "Failed while executing DataBaseAPI.create_context() method...";
-                        final String desc = ObjectUtils.EMPTY_STRING;
+                        final String desc = "";
                         final String queryDebug = query + " => (" + snapContext.getId() + ","
                                 + snapContext.getCreation_date() + "," + snapContext.getName() + ","
                                 + snapContext.getAuthor_name() + "," + snapContext.getReason() + ","
                                 + snapContext.getDescription() + ")";
-                        throw new SnapshotingException(message, reason, queryDebug, ErrSeverity.PANIC, desc,
-                                ObjectUtils.EMPTY_STRING, e);
+                        throw new SnapshotingException(message, reason, queryDebug, ErrSeverity.PANIC, desc, "", e);
                     } finally {
                         closeStatement(callableStatement);
                     }
@@ -1029,9 +1040,8 @@ public class DataBaseAPI {
         } catch (final SQLException e1) {
             final String message = SnapConst.SNAPSHOTING_ERROR_PREFIX + " : " + SnapConst.QUERY_FAILURE;
             final String reason = "Failed while executing DataBaseAPI.create_context() method...";
-            final String desc = ObjectUtils.EMPTY_STRING;
-            throw new SnapshotingException(message, reason, queryCurrentContext, ErrSeverity.PANIC, desc,
-                    ObjectUtils.EMPTY_STRING, e1);
+            final String desc = "";
+            throw new SnapshotingException(message, reason, queryCurrentContext, ErrSeverity.PANIC, desc, "", e1);
         } finally {
             closeStatement(prest);
             closeConnection(conn);
@@ -1057,7 +1067,8 @@ public class DataBaseAPI {
                 + ", " + SnapConst.facility + ", " + SnapConst.archivable + ", " + SnapConst.substitute;
 
         // final String selectFields = "*";
-        final String clause1 = SnapConst.AST + "." + SnapConst.ID + " = " + SnapConst.LIST + "." + SnapConst.ID_ATT;
+        final String clause1 = SnapConst.AST + "." + SnapConst.ID + " = " + SnapConst.LIST + "."
+                + SnapConst.ID_ATT;
         final String clause2 = SnapConst.LIST + "." + SnapConst.ID_CONTEXT + " = " + SnapConst.CONTEXT + "."
                 + SnapConst.ID_CONTEXT;
         final String clause3 = SnapConst.CONTEXT + "." + SnapConst.ID_CONTEXT + " = ?";
@@ -1065,7 +1076,7 @@ public class DataBaseAPI {
         // ast.id = list.id_att and list.id_context = context.id_context and
         // context.name = 'nom';
         String query = "SELECT " + selectFields + " FROM " + tables
-                + (whereClause.isEmpty() ? " WHERE " : whereClause + " AND ") + clause1 + " AND " + clause2 + " AND "
+                + (whereClause.equals("") ? " WHERE " : whereClause + " AND ") + clause1 + " AND " + clause2 + " AND "
                 + clause3;
 
         PreparedStatement statement = null;
@@ -1101,10 +1112,9 @@ public class DataBaseAPI {
         } catch (final SQLException e) {
             final String message = SnapConst.SNAPSHOTING_ERROR_PREFIX + " : " + SnapConst.QUERY_FAILURE;
             final String reason = "Failed while executing DataBaseAPI.getAttDefinitionData() method...";
-            final String desc = ObjectUtils.EMPTY_STRING;
+            final String desc = "";
             final String queryDebug = query + " => " + contextID;
-            throw new SnapshotingException(message, reason, queryDebug, ErrSeverity.PANIC, desc,
-                    ObjectUtils.EMPTY_STRING, e);
+            throw new SnapshotingException(message, reason, queryDebug, ErrSeverity.PANIC, desc, "", e);
         } finally {
             closeResultSet(rset);
             closeStatement(statement);
@@ -1161,9 +1171,8 @@ public class DataBaseAPI {
         } catch (final SQLException e) {
             final String message = SnapConst.SNAPSHOTING_ERROR_PREFIX + " : " + SnapConst.QUERY_FAILURE;
             final String reason = "Failed while executing DataBaseAPI.getContextAssociatedAttributes() method...";
-            final String desc = ObjectUtils.EMPTY_STRING;
-            throw new SnapshotingException(message, reason, query, ErrSeverity.PANIC, desc, ObjectUtils.EMPTY_STRING,
-                    e);
+            final String desc = "";
+            throw new SnapshotingException(message, reason, query, ErrSeverity.PANIC, desc, "", e);
         } finally {
             closeResultSet(rset);
             closeStatement(preparedStatement);
@@ -1200,7 +1209,6 @@ public class DataBaseAPI {
      * @param id_context The given context's identifier
      * @return The list of attributes associated to the given context
      * @throws SnapshotingException
-     * @see SnapAttributeLight
      */
     public List<SnapAttributeExtract> getContextAssociatedAttributes(final int id_context) throws SnapshotingException {
         final List<SnapAttributeExtract> attibutesList = new ArrayList<SnapAttributeExtract>();
@@ -1209,7 +1217,7 @@ public class DataBaseAPI {
         Connection conn = null;
 
         // Create and execute the SQL query string
-        String query = ObjectUtils.EMPTY_STRING;
+        String query = "";
         final String table_name_1 = getDbSchema() + "." + SnapConst.AST;
         final String table_name_2 = getDbSchema() + "." + SnapConst.CONTEXT;
         final String table_name_3 = getDbSchema() + "." + SnapConst.LIST;
@@ -1219,7 +1227,8 @@ public class DataBaseAPI {
                 SnapConst.dataType + ", " + // data_type
                 SnapConst.dataFormat + ", " + // data_format
                 SnapConst.writable; // writable
-        final String clause_1 = SnapConst.AST + "." + SnapConst.ID + " = " + SnapConst.LIST + "." + SnapConst.ID_ATT;
+        final String clause_1 = SnapConst.AST + "." + SnapConst.ID + " = " + SnapConst.LIST + "."
+                + SnapConst.ID_ATT;
         final String clause_2 = SnapConst.LIST + "." + SnapConst.ID_CONTEXT + " = " + SnapConst.CONTEXT + "."
                 + SnapConst.ID_CONTEXT;
         final String clause_3 = SnapConst.CONTEXT + "." + SnapConst.ID_CONTEXT + " = ?";
@@ -1251,10 +1260,9 @@ public class DataBaseAPI {
         } catch (final SQLException e) {
             final String message = SnapConst.SNAPSHOTING_ERROR_PREFIX + " : " + SnapConst.QUERY_FAILURE;
             final String reason = "Failed while executing DataBaseAPI.getContextAssociatedAttributes() method...";
-            final String desc = ObjectUtils.EMPTY_STRING;
+            final String desc = "";
             final String queryDebug = query + " => " + id_context;
-            throw new SnapshotingException(message, reason, queryDebug, ErrSeverity.PANIC, desc,
-                    ObjectUtils.EMPTY_STRING, e);
+            throw new SnapshotingException(message, reason, queryDebug, ErrSeverity.PANIC, desc, "", e);
         } finally {
             closeResultSet(rset);
             closeStatement(preparedStatement);
@@ -1303,10 +1311,9 @@ public class DataBaseAPI {
                     } catch (final SQLException e) {
                         final String message = SnapConst.SNAPSHOTING_ERROR_PREFIX + " : " + SnapConst.QUERY_FAILURE;
                         final String reason = "Failed while executing DataBaseAPI.setContextAssociatedAttributes() method...";
-                        final String desc = ObjectUtils.EMPTY_STRING;
+                        final String desc = "";
                         final String queryDebug = query + " => (" + id_context + "," + id_att + ")";
-                        throw new SnapshotingException(message, reason, queryDebug, ErrSeverity.PANIC, desc,
-                                ObjectUtils.EMPTY_STRING, e);
+                        throw new SnapshotingException(message, reason, queryDebug, ErrSeverity.PANIC, desc, "", e);
                     } finally {
                         closeStatement(preparedStatement);
                     }
@@ -1315,9 +1322,8 @@ public class DataBaseAPI {
         } catch (final SQLException e) {
             final String message = SnapConst.SNAPSHOTING_ERROR_PREFIX + " : " + SnapConst.QUERY_FAILURE;
             final String reason = "Failed while executing DataBaseAPI.setContextAssociatedAttributes() method...";
-            final String desc = ObjectUtils.EMPTY_STRING;
-            throw new SnapshotingException(message, reason, selectQuery, ErrSeverity.PANIC, desc,
-                    ObjectUtils.EMPTY_STRING, e);
+            final String desc = "";
+            throw new SnapshotingException(message, reason, selectQuery, ErrSeverity.PANIC, desc, "", e);
         } catch (final SnapshotingException e) {
             throw e;
         } finally {
@@ -1330,7 +1336,7 @@ public class DataBaseAPI {
      * This method registers a new snapshots and retrieves its identifier
      *
      * @param contextID the context identifier to wich the new registered snapshots
-     *            belongs to.
+     *                  belongs to.
      * @param timestamp the registration timestamp
      * @return the identifier for the new registered snapshot
      * @throws SnapshotingException
@@ -1353,7 +1359,7 @@ public class DataBaseAPI {
      * This method registers a new snapshots and retrieves its identifier
      *
      * @param contextID the context identifier to wich the new registered snapshots
-     *            belongs to.
+     *                  belongs to.
      * @param timestamp the registration timestamp
      * @return the identifier for the new registered snapshot
      * @throws SnapshotingException
@@ -1397,7 +1403,7 @@ public class DataBaseAPI {
      * This method registers a new snapshots and retrieves its identifier
      *
      * @param contextID the context identifier to wich the new registered snapshots
-     *            belongs to.
+     *                  belongs to.
      * @param timestamp the registration timestamp
      * @return the identifier for the new registered snapshot
      * @throws SnapshotingException
@@ -1429,10 +1435,9 @@ public class DataBaseAPI {
         } catch (final SQLException e) {
             final String message = SnapConst.SNAPSHOTING_ERROR_PREFIX + " : " + SnapConst.QUERY_FAILURE;
             final String reason = "Failed while executing DataBaseAPI.createNewSnapOracle() method...";
-            final String desc = ObjectUtils.EMPTY_STRING;
+            final String desc = "";
             final String queryDebug = query + " => (" + Types.INTEGER + "," + contextID + "," + timestamp + ")";
-            throw new SnapshotingException(message, reason, queryDebug, ErrSeverity.PANIC, desc,
-                    ObjectUtils.EMPTY_STRING, e);
+            throw new SnapshotingException(message, reason, queryDebug, ErrSeverity.PANIC, desc, "", e);
         } finally {
             closeStatement(cstmt_register_snapshot);
             closeConnection(conn);
@@ -1475,10 +1480,9 @@ public class DataBaseAPI {
         } catch (final SQLException e) {
             final String message = SnapConst.SNAPSHOTING_ERROR_PREFIX + " : " + SnapConst.QUERY_FAILURE;
             final String reason = "Failed while executing DataBaseAPI.updateSnapContextID() method...";
-            final String desc = ObjectUtils.EMPTY_STRING;
+            final String desc = "";
             final String queryDebug = query + " => (" + initial_context_value + "," + id_snap + ")";
-            throw new SnapshotingException(message, reason, queryDebug, ErrSeverity.PANIC, desc,
-                    ObjectUtils.EMPTY_STRING, e);
+            throw new SnapshotingException(message, reason, queryDebug, ErrSeverity.PANIC, desc, "", e);
         } finally {
             closeStatement(preparedStatement);
             closeConnection(conn);
@@ -1507,10 +1511,9 @@ public class DataBaseAPI {
         } catch (final SQLException e) {
             final String message = SnapConst.SNAPSHOTING_ERROR_PREFIX + " : " + SnapConst.QUERY_FAILURE;
             final String reason = "Failed while executing DataBaseAPI.updateSnapComment() method...";
-            final String desc = ObjectUtils.EMPTY_STRING;
+            final String desc = "";
             final String queryDebug = query + " => " + id_snap;
-            throw new SnapshotingException(message, reason, queryDebug, ErrSeverity.PANIC, desc,
-                    ObjectUtils.EMPTY_STRING, e);
+            throw new SnapshotingException(message, reason, queryDebug, ErrSeverity.PANIC, desc, "", e);
         } finally {
             closeStatement(preparedStatement);
             closeConnection(conn);
@@ -1531,7 +1534,7 @@ public class DataBaseAPI {
         final String table = getDbSchema() + "." + SnapConst.SNAPSHOT;
         final String query = "SELECT " + SnapConst.snap_comment + " FROM " + table + " WHERE " + SnapConst.ID_SNAP
                 + " = " + snapID;
-        String comment = ObjectUtils.EMPTY_STRING;
+        String comment = "";
         try {
             conn = connector.getConnection();
             preparedStatement = conn.prepareStatement(query);
@@ -1542,9 +1545,8 @@ public class DataBaseAPI {
         } catch (final SQLException e) {
             final String message = SnapConst.SNAPSHOTING_ERROR_PREFIX + " : " + SnapConst.QUERY_FAILURE;
             final String reason = "Failed while executing DataBaseAPI.updateSnapComment() method...";
-            final String desc = ObjectUtils.EMPTY_STRING;
-            throw new SnapshotingException(message, reason, query, ErrSeverity.PANIC, desc, ObjectUtils.EMPTY_STRING,
-                    e);
+            final String desc = "";
+            throw new SnapshotingException(message, reason, query, ErrSeverity.PANIC, desc, "", e);
         } finally {
             closeStatement(preparedStatement);
             closeConnection(conn);
@@ -1588,10 +1590,9 @@ public class DataBaseAPI {
         } catch (final SQLException e) {
             final String message = SnapConst.SNAPSHOTING_ERROR_PREFIX + " : " + SnapConst.QUERY_FAILURE;
             final String reason = "Failed while executing DataBaseAPI.getSnapID() method...";
-            final String desc = ObjectUtils.EMPTY_STRING;
+            final String desc = "";
             final String queryDebug = query + " => " + id_context;
-            throw new SnapshotingException(message, reason, queryDebug, ErrSeverity.PANIC, desc,
-                    ObjectUtils.EMPTY_STRING, e);
+            throw new SnapshotingException(message, reason, queryDebug, ErrSeverity.PANIC, desc, "", e);
         } finally {
             closeResultSet(rset);
             closeStatement(preparedStatement);
@@ -1630,10 +1631,9 @@ public class DataBaseAPI {
         } catch (final SQLException e) {
             final String message = SnapConst.SNAPSHOTING_ERROR_PREFIX + " : " + SnapConst.QUERY_FAILURE;
             final String reason = "Failed while executing DataBaseAPI.registerSnap() method...";
-            final String desc = ObjectUtils.EMPTY_STRING;
+            final String desc = "" + "";
             final String queryDebug = query + " => (" + id_context + "," + time + ")";
-            throw new SnapshotingException(message, reason, queryDebug, ErrSeverity.PANIC, desc,
-                    ObjectUtils.EMPTY_STRING, e);
+            throw new SnapshotingException(message, reason, queryDebug, ErrSeverity.PANIC, desc, "", e);
         } finally {
             closeStatement(preparedStatement);
             closeConnection(conn);