diff --git a/src/adql/db/DBChecker.java b/src/adql/db/DBChecker.java
index 876cf2a6840a494dba6ed08b28dc3637bf0e89df..8f32aed0bfbf796cbf693ea7326382219d43b92c 100644
--- a/src/adql/db/DBChecker.java
+++ b/src/adql/db/DBChecker.java
@@ -27,6 +27,7 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 import java.util.Stack;
 
@@ -98,12 +99,12 @@ import adql.search.SimpleSearchHandler;
  * </i></p>
  * 
  * @author Gr&eacute;gory Mantelet (CDS;ARI)
- * @version 1.4 (04/2017)
+ * @version 1.4 (09/2017)
  */
 public class DBChecker implements QueryChecker {
 
 	/** List of all available tables ({@link DBTable}). */
-	protected SearchTableList lstTables;
+	protected SearchTableApi lstTables;
 
 	/** <p>List of all allowed geometrical functions (i.e. CONTAINS, REGION, POINT, COORD2, ...).</p>
 	 * <p>
@@ -337,8 +338,9 @@ public class DBChecker implements QueryChecker {
 	 * <p>Sets the list of all available tables.</p>
 	 * 
 	 * <p><i><u>Note:</u>
-	 * 	Only if the given collection is NOT an instance of {@link SearchTableList},
-	 * 	the collection will be copied inside a new {@link SearchTableList}, otherwise it is used as provided.
+	 * 	Only if the given collection is NOT an implementation of
+	 * 	{@link SearchTableApi}, the collection will be copied inside a new
+	 * 	{@link SearchTableList}, otherwise it is used as provided.
 	 * </i></p>
 	 * 
 	 * @param tables	List of {@link DBTable}s.
@@ -346,8 +348,8 @@ public class DBChecker implements QueryChecker {
 	public final void setTables(final Collection<? extends DBTable> tables){
 		if (tables == null)
 			lstTables = new SearchTableList();
-		else if (tables instanceof SearchTableList)
-			lstTables = (SearchTableList)tables;
+		else if (tables instanceof SearchTableApi)
+			lstTables = (SearchTableApi)tables;
 		else
 			lstTables = new SearchTableList(tables);
 	}
@@ -546,7 +548,7 @@ public class DBChecker implements QueryChecker {
 
 				// first, try to resolve the table by table alias:
 				if (table.getTableName() != null && table.getSchemaName() == null){
-					ArrayList<ADQLTable> tables = query.getFrom().getTablesByAlias(table.getTableName(), table.isCaseSensitive(IdentifierField.TABLE));
+					List<ADQLTable> tables = query.getFrom().getTablesByAlias(table.getTableName(), table.isCaseSensitive(IdentifierField.TABLE));
 					if (tables.size() == 1)
 						dbTable = tables.get(0).getDBLink();
 				}
@@ -575,7 +577,7 @@ public class DBChecker implements QueryChecker {
 	 * @throws ParseException	An {@link UnresolvedTableException} if the given table can't be resolved.
 	 */
 	protected DBTable resolveTable(final ADQLTable table) throws ParseException{
-		ArrayList<DBTable> tables = lstTables.search(table);
+		List<DBTable> tables = lstTables.search(table);
 
 		// good if only one table has been found:
 		if (tables.size() == 1)
@@ -691,7 +693,7 @@ public class DBChecker implements QueryChecker {
 	 * 							or an {@link UnresolvedTableException} if its table reference can't be resolved.
 	 */
 	protected DBColumn resolveColumn(final ADQLColumn column, final SearchColumnList dbColumns, Stack<SearchColumnList> fathersList) throws ParseException{
-		ArrayList<DBColumn> foundColumns = dbColumns.search(column);
+		List<DBColumn> foundColumns = dbColumns.search(column);
 
 		// good if only one column has been found:
 		if (foundColumns.size() == 1)
@@ -737,7 +739,7 @@ public class DBChecker implements QueryChecker {
 		 * So, try resolving the name as an alias.
 		 * If it fails, perform the normal column resolution.*/
 		if (col.getTableName() == null){
-			ArrayList<SelectItem> founds = select.searchByAlias(col.getColumnName(), col.isCaseSensitive(IdentifierField.COLUMN));
+			List<SelectItem> founds = select.searchByAlias(col.getColumnName(), col.isCaseSensitive(IdentifierField.COLUMN));
 			if (founds.size() == 1)
 				return null;
 			else if (founds.size() > 1)
@@ -779,7 +781,7 @@ public class DBChecker implements QueryChecker {
 			col.setPosition(colRef.getPosition());
 
 			// search among the select_item aliases:
-			ArrayList<SelectItem> founds = select.searchByAlias(colRef.getColumnName(), colRef.isCaseSensitive());
+			List<SelectItem> founds = select.searchByAlias(colRef.getColumnName(), colRef.isCaseSensitive());
 			if (founds.size() == 1)
 				return null;
 			else if (founds.size() > 1)
diff --git a/src/adql/db/SearchColumnList.java b/src/adql/db/SearchColumnList.java
index b403fa51b2fc32a9e9a7b7ffda698760920be577..22c836099a21595ff36726ddd8ccb6b28097e408 100644
--- a/src/adql/db/SearchColumnList.java
+++ b/src/adql/db/SearchColumnList.java
@@ -16,7 +16,7 @@ package adql.db;
  * You should have received a copy of the GNU Lesser General Public License
  * along with ADQLLibrary.  If not, see <http://www.gnu.org/licenses/>.
  * 
- * Copyright 2012-2015 - UDS/Centre de Données astronomiques de Strasbourg (CDS),
+ * Copyright 2012-2017 - UDS/Centre de Données astronomiques de Strasbourg (CDS),
  *                       Astronomisches Rechen Institut (ARI)
  */
 
@@ -24,6 +24,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 import java.util.NoSuchElementException;
 
@@ -46,7 +47,7 @@ import cds.utils.TextualSearchList;
  * </i></p>
  * 
  * @author Gr&eacute;gory Mantelet (CDS;ARI)
- * @version 1.4 (08/2015)
+ * @version 1.4 (09/2017)
  */
 public class SearchColumnList extends TextualSearchList<DBColumn> {
 	private static final long serialVersionUID = 1L;
@@ -55,10 +56,10 @@ public class SearchColumnList extends TextualSearchList<DBColumn> {
 	private boolean distinct = false;
 
 	/** Case-sensitive dictionary of table aliases. (tableAlias <-> TableName) */
-	private final HashMap<String,String> tableAliases = new HashMap<String,String>();
+	private final Map<String,String> tableAliases = new HashMap<String,String>();
 
 	/** Case-insensitive dictionary of table aliases. (tablealias <-> List&lt;TableName&gt;) */
-	private final HashMap<String,ArrayList<String>> mapAliases = new HashMap<String,ArrayList<String>>();
+	private final Map<String,List<String>> mapAliases = new HashMap<String,List<String>>();
 
 	/* ************ */
 	/* CONSTRUCTORS */
@@ -122,7 +123,7 @@ public class SearchColumnList extends TextualSearchList<DBColumn> {
 		if (tableAlias != null && tableName != null){
 			tableAliases.put(tableAlias, tableName);
 
-			ArrayList<String> aliases = mapAliases.get(tableAlias.toLowerCase());
+			List<String> aliases = mapAliases.get(tableAlias.toLowerCase());
 			if (aliases == null){
 				aliases = new ArrayList<String>();
 				mapAliases.put(tableAlias.toLowerCase(), aliases);
@@ -139,7 +140,7 @@ public class SearchColumnList extends TextualSearchList<DBColumn> {
 	public final void removeTableAlias(final String tableAlias){
 		tableAliases.remove(tableAlias);
 
-		ArrayList<String> aliases = mapAliases.get(tableAlias.toLowerCase());
+		List<String> aliases = mapAliases.get(tableAlias.toLowerCase());
 		if (aliases != null){
 			aliases.remove(tableAlias);
 			if (aliases.isEmpty())
@@ -171,7 +172,7 @@ public class SearchColumnList extends TextualSearchList<DBColumn> {
 	 * 
 	 * @see TextualSearchList#get(String)
 	 */
-	public ArrayList<DBColumn> search(final String columnName){
+	public List<DBColumn> search(final String columnName){
 		return get(columnName);
 	}
 
@@ -187,7 +188,7 @@ public class SearchColumnList extends TextualSearchList<DBColumn> {
 	 * 
 	 * @see #search(String, String, String, String, byte)
 	 */
-	public final ArrayList<DBColumn> search(final String catalog, final String schema, final String table, final String column){
+	public final List<DBColumn> search(final String catalog, final String schema, final String table, final String column){
 		return search(catalog, schema, table, column, (byte)0);
 	}
 
@@ -200,7 +201,7 @@ public class SearchColumnList extends TextualSearchList<DBColumn> {
 	 * 
 	 * @see #search(String, String, String, String, byte)
 	 */
-	public ArrayList<DBColumn> search(final ADQLColumn column){
+	public List<DBColumn> search(final ADQLColumn column){
 		return search(column.getCatalogName(), column.getSchemaName(), column.getTableName(), column.getColumnName(), column.getCaseSensitive());
 	}
 
@@ -217,15 +218,15 @@ public class SearchColumnList extends TextualSearchList<DBColumn> {
 	 * 
 	 * @see IdentifierField
 	 */
-	public ArrayList<DBColumn> search(final String catalog, final String schema, final String table, final String column, final byte caseSensitivity){
+	public List<DBColumn> search(final String catalog, final String schema, final String table, final String column, final byte caseSensitivity){
 
-		ArrayList<DBColumn> tmpResult = get(column, IdentifierField.COLUMN.isCaseSensitive(caseSensitivity));
+		List<DBColumn> tmpResult = get(column, IdentifierField.COLUMN.isCaseSensitive(caseSensitivity));
 
 		/* WITH TABLE PREFIX */
 		if (table != null){
 			/* 1. Figure out the table alias */
 			String tableName = null;
-			ArrayList<String> aliasMatches = null;
+			List<String> aliasMatches = null;
 
 			// Case sensitive => tableName is set , aliasMatches = null
 			if (IdentifierField.TABLE.isCaseSensitive(caseSensitivity)){
diff --git a/src/adql/db/SearchTableApi.java b/src/adql/db/SearchTableApi.java
new file mode 100644
index 0000000000000000000000000000000000000000..c7d047abd30d3e298edcecf946e2d3a4c8a22374
--- /dev/null
+++ b/src/adql/db/SearchTableApi.java
@@ -0,0 +1,47 @@
+package adql.db;
+
+/*
+ * This file is part of ADQLLibrary.
+ * 
+ * ADQLLibrary is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * ADQLLibrary is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with ADQLLibrary.  If not, see <http://www.gnu.org/licenses/>.
+ * 
+ * Copyright 2017 - Astronomisches Rechen Institut (ARI)
+ */
+
+import java.util.List;
+
+import adql.query.from.ADQLTable;
+
+/**
+ * Simple interface about a class which allows to search for a specified
+ * {@link ADQLTable}.
+ * 
+ * @author Gr&eacute;gory Mantelet (ARI)
+ * @version 1.4 (09/2017)
+ * @since 1.4
+ * 
+ * @see SearchTableList
+ */
+public interface SearchTableApi {
+
+	/**
+	 * Searches all {@link DBTable} elements corresponding to the given {@link ADQLTable} (case insensitive).
+	 * 
+	 * @param table	An {@link ADQLTable}.
+	 * 
+	 * @return		The list of all corresponding {@link DBTable} elements.
+	 */
+	public List<DBTable> search(final ADQLTable table);
+
+}
\ No newline at end of file
diff --git a/src/adql/db/SearchTableList.java b/src/adql/db/SearchTableList.java
index 1468218812582cabc2fc62710f6dce3be29e9a71..8522d24bf851d0766ce6e932c8537cd3777219f2 100644
--- a/src/adql/db/SearchTableList.java
+++ b/src/adql/db/SearchTableList.java
@@ -16,12 +16,13 @@ package adql.db;
  * You should have received a copy of the GNU Lesser General Public License
  * along with ADQLLibrary.  If not, see <http://www.gnu.org/licenses/>.
  * 
- * Copyright 2012,2015 - UDS/Centre de Données astronomiques de Strasbourg (CDS)
+ * Copyright 2012-2017 - UDS/Centre de Données astronomiques de Strasbourg (CDS)
  *                       Astronomisches Rechen Institut (ARI)
  */
 
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.List;
 
 import adql.query.IdentifierField;
 import adql.query.from.ADQLTable;
@@ -36,9 +37,9 @@ import cds.utils.TextualSearchList;
  * </p>
  * 
  * @author Gr&eacute;gory Mantelet (CDS;ARI)
- * @version 1.4 (08/2015)
+ * @version 1.4 (09/2017)
  */
-public class SearchTableList extends TextualSearchList<DBTable> {
+public class SearchTableList extends TextualSearchList<DBTable> implements SearchTableApi {
 	private static final long serialVersionUID = 1L;
 
 	/** Indicates whether multiple occurrences are allowed. */
@@ -105,7 +106,7 @@ public class SearchTableList extends TextualSearchList<DBTable> {
 	 * 
 	 * @see TextualSearchList#get(String)
 	 */
-	public ArrayList<DBTable> search(final String tableName){
+	public List<DBTable> search(final String tableName){
 		return get(tableName);
 	}
 
@@ -120,7 +121,7 @@ public class SearchTableList extends TextualSearchList<DBTable> {
 	 * 
 	 * @see #search(String, String, String, byte)
 	 */
-	public final ArrayList<DBTable> search(final String catalog, final String schema, final String table){
+	public final List<DBTable> search(final String catalog, final String schema, final String table){
 		return search(catalog, schema, table, (byte)0);
 	}
 
@@ -133,7 +134,8 @@ public class SearchTableList extends TextualSearchList<DBTable> {
 	 * 
 	 * @see #search(String, String, String, byte)
 	 */
-	public ArrayList<DBTable> search(final ADQLTable table){
+	@Override
+	public List<DBTable> search(final ADQLTable table){
 		return search(table.getCatalogName(), table.getSchemaName(), table.getTableName(), table.getCaseSensitive());
 	}
 
@@ -149,11 +151,11 @@ public class SearchTableList extends TextualSearchList<DBTable> {
 	 * 
 	 * @see IdentifierField
 	 */
-	public ArrayList<DBTable> search(final String catalog, final String schema, final String table, final byte caseSensitivity){
-		ArrayList<DBTable> tmpResult = get(table, IdentifierField.TABLE.isCaseSensitive(caseSensitivity));
+	public List<DBTable> search(final String catalog, final String schema, final String table, final byte caseSensitivity){
+		List<DBTable> tmpResult = get(table, IdentifierField.TABLE.isCaseSensitive(caseSensitivity));
 
 		if (schema != null){
-			ArrayList<DBTable> result = new ArrayList<DBTable>();
+			List<DBTable> result = new ArrayList<DBTable>();
 
 			for(DBTable match : tmpResult){
 				// No schema name (<=> no schema), then this table can not be a good match:
diff --git a/src/adql/query/ClauseSelect.java b/src/adql/query/ClauseSelect.java
index 0f63247cea675a0485e877c6cee61b9853092053..26256238a220c4b60a03446d51d5608eec1d9c8e 100644
--- a/src/adql/query/ClauseSelect.java
+++ b/src/adql/query/ClauseSelect.java
@@ -16,10 +16,12 @@ package adql.query;
  * You should have received a copy of the GNU Lesser General Public License
  * along with ADQLLibrary.  If not, see <http://www.gnu.org/licenses/>.
  * 
- * Copyright 2012 - UDS/Centre de Données astronomiques de Strasbourg (CDS)
+ * Copyright 2012-2017 - UDS/Centre de Données astronomiques de Strasbourg (CDS),
+ *                       Astronomisches Rechen Institut (ARI)
  */
 
 import java.util.ArrayList;
+import java.util.List;
 
 import adql.query.operand.ADQLOperand;
 
@@ -30,8 +32,8 @@ import adql.query.operand.ADQLOperand;
  * <ul><li>The user can specify the maximum number of rows the query must return.</li>
  * <li>He can also ask that all the returned rows are unique according to the first returned column.</li></ul></p>
  * 
- * @author Gr&eacute;gory Mantelet (CDS)
- * @version 06/2011
+ * @author Gr&eacute;gory Mantelet (CDS;ARI)
+ * @version 1.4 (09/2017)
  */
 public class ClauseSelect extends ClauseADQL<SelectItem> {
 
@@ -218,7 +220,7 @@ public class ClauseSelect extends ClauseADQL<SelectItem> {
 	 * @see #searchByAlias(String, boolean)
 	 */
 	public ADQLOperand searchByAlias(String alias){
-		ArrayList<SelectItem> founds = searchByAlias(alias, true);
+		List<SelectItem> founds = searchByAlias(alias, true);
 		if (founds.isEmpty())
 			return null;
 		else
@@ -231,7 +233,7 @@ public class ClauseSelect extends ClauseADQL<SelectItem> {
 	 * @param alias	Alias of the operand to retrieve.
 	 * @return		All the corresponding select items.
 	 */
-	public ArrayList<SelectItem> searchByAlias(String alias, boolean caseSensitive){
+	public List<SelectItem> searchByAlias(String alias, boolean caseSensitive){
 		if (alias == null)
 			return new ArrayList<SelectItem>(0);
 
diff --git a/src/adql/query/from/ADQLJoin.java b/src/adql/query/from/ADQLJoin.java
index 119154cb367c2d45d5b5189937fd869d8a61d220..a3acdee9ba5dbeae9741bd190d0c711116c93f50 100644
--- a/src/adql/query/from/ADQLJoin.java
+++ b/src/adql/query/from/ADQLJoin.java
@@ -16,7 +16,7 @@ package adql.query.from;
  * You should have received a copy of the GNU Lesser General Public License
  * along with ADQLLibrary.  If not, see <http://www.gnu.org/licenses/>.
  * 
- * Copyright 2012-2016 - UDS/Centre de Données astronomiques de Strasbourg (CDS),
+ * Copyright 2012-2017 - UDS/Centre de Données astronomiques de Strasbourg (CDS),
  *                       Astronomisches Rechen Institut (ARI)
  */
 
@@ -24,6 +24,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 import java.util.NoSuchElementException;
 
@@ -42,7 +43,7 @@ import adql.query.operand.ADQLColumn;
  * Defines a join between two "tables".
  * 
  * @author Gr&eacute;gory Mantelet (CDS;ARI)
- * @version 1.4 (03/2016)
+ * @version 1.4 (09/2017)
  */
 public abstract class ADQLJoin implements ADQLObject, FromContent {
 
@@ -445,7 +446,7 @@ public abstract class ADQLJoin implements ADQLObject, FromContent {
 	}
 
 	public final static DBColumn findAtMostOneColumn(final String columnName, final byte caseSensitive, final SearchColumnList list, final boolean leftList) throws UnresolvedJoinException{
-		ArrayList<DBColumn> result = list.search(null, null, null, columnName, caseSensitive);
+		List<DBColumn> result = list.search(null, null, null, columnName, caseSensitive);
 		if (result.isEmpty())
 			return null;
 		else if (result.size() > 1)
@@ -465,15 +466,15 @@ public abstract class ADQLJoin implements ADQLObject, FromContent {
 	}
 
 	@Override
-	public ArrayList<ADQLTable> getTables(){
-		ArrayList<ADQLTable> tables = leftTable.getTables();
+	public List<ADQLTable> getTables(){
+		List<ADQLTable> tables = leftTable.getTables();
 		tables.addAll(rightTable.getTables());
 		return tables;
 	}
 
 	@Override
-	public ArrayList<ADQLTable> getTablesByAlias(final String alias, final boolean caseSensitive){
-		ArrayList<ADQLTable> tables = leftTable.getTablesByAlias(alias, caseSensitive);
+	public List<ADQLTable> getTablesByAlias(final String alias, final boolean caseSensitive){
+		List<ADQLTable> tables = leftTable.getTablesByAlias(alias, caseSensitive);
 		tables.addAll(rightTable.getTablesByAlias(alias, caseSensitive));
 		return tables;
 	}
diff --git a/src/adql/query/from/ADQLTable.java b/src/adql/query/from/ADQLTable.java
index baa2599913fbd1a7d7f4e90397b85f07d547ff78..c01847b7a28a6c71147611cb343a406e7d645a43 100644
--- a/src/adql/query/from/ADQLTable.java
+++ b/src/adql/query/from/ADQLTable.java
@@ -16,11 +16,12 @@ package adql.query.from;
  * You should have received a copy of the GNU Lesser General Public License
  * along with ADQLLibrary.  If not, see <http://www.gnu.org/licenses/>.
  * 
- * Copyright 2012-2016 - UDS/Centre de Données astronomiques de Strasbourg (CDS),
+ * Copyright 2012-2017 - UDS/Centre de Données astronomiques de Strasbourg (CDS),
  *                       Astronomisches Rechen Institut (ARI)
  */
 
 import java.util.ArrayList;
+import java.util.List;
 import java.util.NoSuchElementException;
 
 import adql.db.DBChecker;
@@ -39,7 +40,7 @@ import adql.query.TextPosition;
  * A table reference may have an alias (MUST if it is a sub-query).
  * 
  * @author Gr&eacute;gory Mantelet (CDS;ARI)
- * @version 2.1 (07/2016)
+ * @version 1.4 (09/2017)
  */
 public class ADQLTable implements ADQLObject, FromContent {
 
@@ -488,14 +489,14 @@ public class ADQLTable implements ADQLObject, FromContent {
 	}
 
 	@Override
-	public ArrayList<ADQLTable> getTables(){
+	public List<ADQLTable> getTables(){
 		ArrayList<ADQLTable> tables = new ArrayList<ADQLTable>();
 		tables.add(this);
 		return tables;
 	}
 
 	@Override
-	public ArrayList<ADQLTable> getTablesByAlias(final String alias, final boolean caseSensitive){
+	public List<ADQLTable> getTablesByAlias(final String alias, final boolean caseSensitive){
 		ArrayList<ADQLTable> tables = new ArrayList<ADQLTable>();
 
 		if (hasAlias()){
diff --git a/src/adql/query/from/FromContent.java b/src/adql/query/from/FromContent.java
index a3df9cce2a1d0f1590239d1af87a7f15264a45f8..60cfe9084df741d2ef263abc2c91676c4492e8ad 100644
--- a/src/adql/query/from/FromContent.java
+++ b/src/adql/query/from/FromContent.java
@@ -16,11 +16,11 @@ package adql.query.from;
  * You should have received a copy of the GNU Lesser General Public License
  * along with ADQLLibrary.  If not, see <http://www.gnu.org/licenses/>.
  * 
- * Copyright 2012-2015 - UDS/Centre de Données astronomiques de Strasbourg (CDS),
+ * Copyright 2012-2017 - UDS/Centre de Données astronomiques de Strasbourg (CDS),
  *                       Astronomisches Rechen Institut (ARI)
  */
 
-import java.util.ArrayList;
+import java.util.List;
 
 import adql.db.DBColumn;
 import adql.db.SearchColumnList;
@@ -33,7 +33,7 @@ import adql.query.TextPosition;
  * It could be either a table ({@link ADQLTable}) or a join ({@link ADQLJoin}).
  * 
  * @author Gr&eacute;gory Mantelet (CDS;ARI)
- * @version 1.4 (06/2015)
+ * @version 1.4 (09/2017)
  */
 public interface FromContent extends ADQLObject {
 
@@ -52,7 +52,7 @@ public interface FromContent extends ADQLObject {
 	 * 
 	 * @return	The list of all {@link ADQLTable}s found.
 	 */
-	public ArrayList<ADQLTable> getTables();
+	public List<ADQLTable> getTables();
 
 	/**
 	 * <p>Gets all the table whose the alias is equals to the given one.</p>
@@ -66,7 +66,7 @@ public interface FromContent extends ADQLObject {
 	 * 
 	 * @return	The list of all tables found.
 	 */
-	public ArrayList<ADQLTable> getTablesByAlias(final String alias, final boolean caseSensitive);
+	public List<ADQLTable> getTablesByAlias(final String alias, final boolean caseSensitive);
 
 	/**
 	 * Set the position of this {@link FromContent} in the given ADQL query string.
diff --git a/src/adql/translator/JDBCTranslator.java b/src/adql/translator/JDBCTranslator.java
index e144121a0ab6cc54f72bcfdcd34be56ff2c242ca..64a301f6dd3e7ca895a8b73ca6ca75b97e301643 100644
--- a/src/adql/translator/JDBCTranslator.java
+++ b/src/adql/translator/JDBCTranslator.java
@@ -16,12 +16,12 @@ package adql.translator;
  * You should have received a copy of the GNU Lesser General Public License
  * along with ADQLLibrary.  If not, see <http://www.gnu.org/licenses/>.
  * 
- * Copyright 2015-2016 - Astronomisches Rechen Institut (ARI)
+ * Copyright 2017 - Astronomisches Rechen Institut (ARI)
  */
 
-import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.List;
 
 import adql.db.DBColumn;
 import adql.db.DBTable;
@@ -166,7 +166,7 @@ import adql.query.operand.function.geometry.RegionFunction;
  * </p>
  * 
  * @author Gr&eacute;gory Mantelet (ARI)
- * @version 1.4 (07/2016)
+ * @version 1.4 (09/2017)
  * @since 1.4
  * 
  * @see PostgreSQLTranslator
@@ -472,7 +472,7 @@ public abstract class JDBCTranslator implements ADQLTranslator {
 			}catch(UnresolvedJoinException pe){
 				throw new TranslationException("Due to a join problem, the ADQL to SQL translation can not be completed!", pe);
 			}
-			ArrayList<ADQLTable> tables = item.getQuery().getFrom().getTables();
+			List<ADQLTable> tables = item.getQuery().getFrom().getTables();
 			for(ADQLTable table : tables){
 				if (table.hasAlias()){
 					String key = getQualifiedTableName(table.getDBLink());
diff --git a/src/cds/utils/TextualSearchList.java b/src/cds/utils/TextualSearchList.java
index 3dd9888b0f0f866f36f2a590c9cf09dcc2d78b4c..2cd9c8df0eb13f7977101ef875077d83c75a6cbc 100644
--- a/src/cds/utils/TextualSearchList.java
+++ b/src/cds/utils/TextualSearchList.java
@@ -16,13 +16,14 @@ package cds.utils;
  * You should have received a copy of the GNU Lesser General Public License
  * along with ADQLLibrary.  If not, see <http://www.gnu.org/licenses/>.
  * 
- * Copyright 2012-2014 - UDS/Centre de Données astronomiques de Strasbourg (CDS),
+ * Copyright 2012-2017 - UDS/Centre de Données astronomiques de Strasbourg (CDS),
  *                       Astronomisches Rechen Institut (ARI)
  */
 
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
+import java.util.List;
 
 /**
  * <p>A TextualSearchList is an {@link ArrayList} with a textual search capability.</p>
@@ -39,7 +40,7 @@ import java.util.HashMap;
  * 
  * @param <E>	Type of object to manage in this list.
  * @author 		Gr&eacute;gory Mantelet (CDS;ARI)
- * @version 	1.1 (11/2013)
+ * @version 	1.4 (09/2017)
  */
 public class TextualSearchList< E > extends ArrayList<E> {
 	private static final long serialVersionUID = 1L;
@@ -173,7 +174,7 @@ public class TextualSearchList< E > extends ArrayList<E> {
 	 * 
 	 * @return		The corresponding object or <code>null</code>.
 	 */
-	public final ArrayList<E> get(final String key){
+	public final List<E> get(final String key){
 		return get(key, false);
 	}
 
@@ -186,7 +187,7 @@ public class TextualSearchList< E > extends ArrayList<E> {
 	 * @return		All the objects whose the key is the same as the given one.
 	 */
 	@SuppressWarnings("unchecked")
-	public ArrayList<E> get(final String key, final boolean caseSensitive){
+	public List<E> get(final String key, final boolean caseSensitive){
 		if (key == null)
 			return new ArrayList<E>(0);
 
@@ -419,7 +420,7 @@ public class TextualSearchList< E > extends ArrayList<E> {
 	 * @param <E>	The type of objects managed in the given map.
 	 */
 	private static final < E > void removeFromMap(final HashMap<String,ArrayList<E>> map, final String key, final E value){
-		ArrayList<E> lst = map.get(key);
+		List<E> lst = map.get(key);
 		if (lst != null){
 			lst.remove(value);
 			if (lst.isEmpty())
diff --git a/src/tap/metadata/TAPMetadata.java b/src/tap/metadata/TAPMetadata.java
index 7181bc5301b48df8d3c24755251a0fcda46ca8fc..d5672674c75e253c3595ec8771f35b27d66fea68 100644
--- a/src/tap/metadata/TAPMetadata.java
+++ b/src/tap/metadata/TAPMetadata.java
@@ -25,6 +25,7 @@ import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.NoSuchElementException;
 
@@ -64,7 +65,7 @@ import uws.UWSToolBox;
  * </p>
  * 
  * @author Gr&eacute;gory Mantelet (CDS;ARI)
- * @version 2.1 (03/2017)
+ * @version 2.1 (09/2017)
  */
 public class TAPMetadata implements Iterable<TAPSchema>, VOSIResource, TAPResource {
 
@@ -378,7 +379,7 @@ public class TAPMetadata implements Iterable<TAPSchema>, VOSIResource, TAPResour
 	 * @return	A list of all the tables which have the given ADQL name,
 	 *        	or an empty list if no such table can be found.
 	 */
-	public ArrayList<DBTable> getTable(String tableName){
+	public List<DBTable> getTable(String tableName){
 		ArrayList<DBTable> tables = new ArrayList<DBTable>();
 		for(TAPSchema s : this)
 			if (s.hasTable(tableName))
diff --git a/src/uws/AcceptHeader.java b/src/uws/AcceptHeader.java
index f12ed18e0381826a93165864675799173e9cc257..47f56efd0796cc73b068b2999ff4cde1d901e6eb 100644
--- a/src/uws/AcceptHeader.java
+++ b/src/uws/AcceptHeader.java
@@ -16,7 +16,8 @@ package uws;
  * You should have received a copy of the GNU Lesser General Public License
  * along with UWSLibrary.  If not, see <http://www.gnu.org/licenses/>.
  * 
- * Copyright 2012 - UDS/Centre de Données astronomiques de Strasbourg (CDS)
+ * Copyright 2012-2017 - UDS/Centre de Données astronomiques de Strasbourg (CDS),
+ *                       Astronomisches Rechen Institut (ARI)
  */
 
 import java.util.ArrayList;
@@ -25,16 +26,15 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
-
 import java.util.Map.Entry;
+import java.util.Set;
 
 /**
  * Parser of HTTP Accept header.
  * It takes into account the order of the different MIME types and their respective quality.
  * 
  * @author Brice Gassmann (CDS) & modified by Gr&eacute;gory Mantelet (CDS)
- * @version 12/2010
+ * @version 4.2 (09/2017)
  */
 public class AcceptHeader {
 
@@ -136,7 +136,7 @@ public class AcceptHeader {
 	 * 
 	 * @return	The ordered list of the extracted MIME types.
 	 */
-	public ArrayList<String> getOrderedMimeTypes(){
+	public List<String> getOrderedMimeTypes(){
 		Float[] qualities = mSortedMimeTypes.keySet().toArray(new Float[0]);
 		Arrays.sort(qualities, Collections.reverseOrder());
 
diff --git a/src/uws/UWSToolBox.java b/src/uws/UWSToolBox.java
index e622c560606604c91d675d3cb420667775ce8eaf..bb3df0ddda49348c067cc69870396aab212820e4 100644
--- a/src/uws/UWSToolBox.java
+++ b/src/uws/UWSToolBox.java
@@ -16,7 +16,7 @@ package uws;
  * You should have received a copy of the GNU Lesser General Public License
  * along with UWSLibrary.  If not, see <http://www.gnu.org/licenses/>.
  * 
- * Copyright 2012-2015 - UDS/Centre de Données astronomiques de Strasbourg (CDS),
+ * Copyright 2012-2017 - UDS/Centre de Données astronomiques de Strasbourg (CDS),
  *                       Astronomisches Rechen Institut (ARI)
  */
 
@@ -55,7 +55,7 @@ import uws.service.request.UploadFile;
  * Some useful functions for the managing of a UWS service.
  * 
  * @author Gr&eacute;gory Mantelet (CDS;ARI)
- * @version 4.2 (07/2015)
+ * @version 4.2 (09/2017)
  */
 public class UWSToolBox {
 
@@ -137,7 +137,7 @@ public class UWSToolBox {
 	 * @return		The corresponding map of string.
 	 */
 	@SuppressWarnings("unchecked")
-	public static final HashMap<String,String> getParamsMap(final HttpServletRequest req){
+	public static final Map<String,String> getParamsMap(final HttpServletRequest req){
 		HashMap<String,String> map = new HashMap<String,String>();
 
 		/* If the attribute "PARAMETERS" has been already set by the UWS library,
@@ -325,7 +325,7 @@ public class UWSToolBox {
 	}
 
 	/**
-	 * Check whether the parameter specified with the given pair (name,value) exists in the given HTTP request. 
+	 * Check whether the parameter specified with the given pair (name,value) exists in the given HTTP request.
 	 * 
 	 * @param name				Name of the parameter to search.
 	 * @param value				Expected value of the parameter.
@@ -351,7 +351,7 @@ public class UWSToolBox {
 	}
 
 	/**
-	 * Get the parameter specified by the given name from the given HTTP request. 
+	 * Get the parameter specified by the given name from the given HTTP request.
 	 * 
 	 * @param name				Name of the parameter to search.
 	 * @param request			HTTP request in which the given pair must be searched.
diff --git a/src/uws/job/JobList.java b/src/uws/job/JobList.java
index 90e43f405b1bbd2e5c920aeff1007b2546484ad3..384039cc9d46bfee238bf95d749f57277c5ca435 100644
--- a/src/uws/job/JobList.java
+++ b/src/uws/job/JobList.java
@@ -16,13 +16,14 @@ package uws.job;
  * You should have received a copy of the GNU Lesser General Public License
  * along with UWSLibrary.  If not, see <http://www.gnu.org/licenses/>.
  * 
- * Copyright 2012,2014 - UDS/Centre de Données astronomiques de Strasbourg (CDS),
+ * Copyright 2012-2017 - UDS/Centre de Données astronomiques de Strasbourg (CDS),
  *                       Astronomisches Rechen Institut (ARI)
  */
 
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
+import java.util.List;
 import java.util.Map;
 
 import uws.UWSException;
@@ -96,7 +97,7 @@ import uws.service.log.UWSLog.LogLevel;
  * </p>
  * 
  * @author Gr&eacute;gory Mantelet (CDS;ARI)
- * @version 4.1 (11/2014)
+ * @version 4.2 (09/2017)
  * 
  * @see UWSJob
  */
@@ -493,7 +494,7 @@ public class JobList extends SerializableUWSObject implements Iterable<UWSJob> {
 	 * 
 	 * @return		All the corresponding jobs.
 	 */
-	public final ArrayList<UWSJob> searchJobs(String runID){
+	public final List<UWSJob> searchJobs(String runID){
 		ArrayList<UWSJob> foundJobs = new ArrayList<UWSJob>();
 		runID = (runID != null) ? runID.trim() : runID;
 
diff --git a/src/uws/job/parameters/UWSParameters.java b/src/uws/job/parameters/UWSParameters.java
index 734a79f73c25bb035797e9098b517c8765bbd9b3..8a7da5e9081f6cda24370f7e5b8c8aa1ab6f5d59 100644
--- a/src/uws/job/parameters/UWSParameters.java
+++ b/src/uws/job/parameters/UWSParameters.java
@@ -16,7 +16,7 @@ package uws.job.parameters;
  * You should have received a copy of the GNU Lesser General Public License
  * along with UWSLibrary.  If not, see <http://www.gnu.org/licenses/>.
  * 
- * Copyright 2012,2014 - UDS/Centre de Données astronomiques de Strasbourg (CDS),
+ * Copyright 2012-2017 - UDS/Centre de Données astronomiques de Strasbourg (CDS),
  *                       Astronomisches Rechen Institut (ARI)
  */
 
@@ -116,7 +116,7 @@ import uws.service.request.UploadFile;
  * <p><i><u>note 2:</u> If several values have been submitted for the same UWS standard parameter, just the last occurrence is taken into account.</i></p>
  * 
  * @author Gr&eacute;gory Mantelet (CDS;ARI)
- * @version 4.1 (12/2014)
+ * @version 4.2 (09/2017)
  */
 public class UWSParameters implements Iterable<Entry<String,Object>> {
 
@@ -331,7 +331,7 @@ public class UWSParameters implements Iterable<Entry<String,Object>> {
 	 * 
 	 * @return Default list of controllers. <i><u>note:</u> This map can be modified !</i>
 	 */
-	protected HashMap<String,InputParamController> getDefaultControllers(){
+	protected Map<String,InputParamController> getDefaultControllers(){
 		HashMap<String,InputParamController> controllers = new HashMap<String,InputParamController>(2);
 		controllers.put(UWSJob.PARAM_EXECUTION_DURATION, new ExecutionDurationController());
 		controllers.put(UWSJob.PARAM_DESTRUCTION_TIME, new DestructionTimeController());
diff --git a/src/uws/service/AbstractUWSFactory.java b/src/uws/service/AbstractUWSFactory.java
index d066712ee3c6afe8fcbebdde7a0fe65b1164ca0c..6acbe5770124fa1fc924a7c17c1d75bcdac2355e 100644
--- a/src/uws/service/AbstractUWSFactory.java
+++ b/src/uws/service/AbstractUWSFactory.java
@@ -49,7 +49,7 @@ import uws.service.request.UWSRequestParser;
  * Only the function which creates a {@link JobThread} from a {@link UWSJob} needs to be implemented.</p>
  * 
  * @author Gr&eacute;gory Mantelet (CDS;ARI)
- * @version 4.2 (06/2017)
+ * @version 4.2 (09/2017)
  */
 public abstract class AbstractUWSFactory implements UWSFactory {
 
@@ -147,7 +147,7 @@ public abstract class AbstractUWSFactory implements UWSFactory {
 	 * 
 	 * @return	Names of the expected additional parameters.
 	 */
-	public final ArrayList<String> getExpectedAdditionalParameters(){
+	public final List<String> getExpectedAdditionalParameters(){
 		return expectedAdditionalParams;
 	}
 
diff --git a/src/uws/service/UWSService.java b/src/uws/service/UWSService.java
index 248f25beae0cea7fb9b12d97715c79f8b891d0af..c35cad94049d4cb4ec94b111d8b13cd82b5881f8 100644
--- a/src/uws/service/UWSService.java
+++ b/src/uws/service/UWSService.java
@@ -16,7 +16,7 @@ package uws.service;
  * You should have received a copy of the GNU Lesser General Public License
  * along with UWSLibrary.  If not, see <http://www.gnu.org/licenses/>.
  * 
- * Copyright 2012-2016 - UDS/Centre de Données astronomiques de Strasbourg (CDS),
+ * Copyright 2012-2017 - UDS/Centre de Données astronomiques de Strasbourg (CDS),
  *                       Astronomisches Rechen Institut (ARI)
  */
 
@@ -26,6 +26,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.Vector;
 
@@ -137,7 +138,7 @@ import uws.service.request.RequestParser;
  * </p>
  * 
  * @author Gr&eacute;gory Mantelet (CDS;ARI)
- * @version 4.2 (06/2016)
+ * @version 4.2 (09/2017)
  */
 public class UWSService implements UWS {
 
@@ -721,7 +722,7 @@ public class UWSService implements UWS {
 		if (mimeTypes != null){
 			// Parse the given MIME types list:
 			AcceptHeader accept = new AcceptHeader(mimeTypes);
-			ArrayList<String> lstMimeTypes = accept.getOrderedMimeTypes();
+			List<String> lstMimeTypes = accept.getOrderedMimeTypes();
 
 			// Try each of them and stop at the first which match with an existing serializer:
 			for(int i = 0; choosenSerializer == null && i < lstMimeTypes.size(); i++)
diff --git a/src/uws/service/UWSServlet.java b/src/uws/service/UWSServlet.java
index d7660548f7c7713c6952c2b067240f38190818aa..46f7ea69f2dccbacf5c6a8d42bf3d8b7ea21cfd4 100644
--- a/src/uws/service/UWSServlet.java
+++ b/src/uws/service/UWSServlet.java
@@ -150,7 +150,7 @@ import uws.service.request.UploadFile;
  * </p>
  * 
  * @author Gr&eacute;gory Mantelet (CDS;ARI)
- * @version 4.2 (06/2017)
+ * @version 4.2 (09/2017)
  */
 public abstract class UWSServlet extends HttpServlet implements UWS, UWSFactory {
 	private static final long serialVersionUID = 1L;
@@ -937,7 +937,7 @@ public abstract class UWSServlet extends HttpServlet implements UWS, UWSFactory
 	 * 
 	 * @return	Names of the expected additional parameters.
 	 */
-	public final ArrayList<String> getExpectedAdditionalParameters(){
+	public final List<String> getExpectedAdditionalParameters(){
 		return expectedAdditionalParams;
 	}
 
@@ -1214,7 +1214,7 @@ public abstract class UWSServlet extends HttpServlet implements UWS, UWSFactory
 		if (mimeTypes != null){
 			// Parse the given MIME types list:
 			AcceptHeader accept = new AcceptHeader(mimeTypes);
-			ArrayList<String> lstMimeTypes = accept.getOrderedMimeTypes();
+			List<String> lstMimeTypes = accept.getOrderedMimeTypes();
 
 			// Try each of them and stop at the first which match with an existing serializer:
 			for(int i = 0; choosenSerializer == null && i < lstMimeTypes.size(); i++)
diff --git a/src/uws/service/backup/DefaultUWSBackupManager.java b/src/uws/service/backup/DefaultUWSBackupManager.java
index d749be5f45692539b4cc2d3aee527560a77dc785..021b4784d215683a7cfa8dca7725cad98320db02 100644
--- a/src/uws/service/backup/DefaultUWSBackupManager.java
+++ b/src/uws/service/backup/DefaultUWSBackupManager.java
@@ -34,6 +34,7 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 import java.util.NoSuchElementException;
 import java.util.Timer;
@@ -86,7 +87,7 @@ import uws.service.request.UploadFile;
  * <p>Another positive value will be considered as the frequency (in milliseconds) of the automatic backup (= {@link #saveAll()}).</p>
  * 
  * @author Gr&eacute;gory Mantelet (CDS;ARI)
- * @version 4.2 (06/2017)
+ * @version 4.2 (09/2017)
  */
 public class DefaultUWSBackupManager implements UWSBackupManager {
 
@@ -914,7 +915,7 @@ public class DefaultUWSBackupManager implements UWSBackupManager {
 				endTime = -1;
 		HashMap<String,Object> inputParams = new HashMap<String,Object>(10);
 		//Map<String, Object> params = null;
-		ArrayList<Result> results = null;
+		List<Result> results = null;
 		ErrorSummary error = null;
 		JSONArray uploads = null;
 		JobInfo jobInfo = null;
@@ -1156,7 +1157,7 @@ public class DefaultUWSBackupManager implements UWSBackupManager {
 	 * 
 	 * @see #getResult(JSONObject)
 	 */
-	protected ArrayList<Result> getResults(final JSONArray array) throws UWSException{
+	protected List<Result> getResults(final JSONArray array) throws UWSException{
 		if (array == null || array.length() == 0)
 			return null;
 
diff --git a/src/uws/service/error/DefaultUWSErrorWriter.java b/src/uws/service/error/DefaultUWSErrorWriter.java
index 71ec87e41423bcb9233a2bc0a39b65e845c6c34a..8d7e7820a7e5c995b189f8f7968c548ad62f0f39 100644
--- a/src/uws/service/error/DefaultUWSErrorWriter.java
+++ b/src/uws/service/error/DefaultUWSErrorWriter.java
@@ -16,7 +16,7 @@ package uws.service.error;
  * You should have received a copy of the GNU Lesser General Public License
  * along with UWSLibrary.  If not, see <http://www.gnu.org/licenses/>.
  * 
- * Copyright 2012-2015 - UDS/Centre de Données astronomiques de Strasbourg (CDS),
+ * Copyright 2012-2017 - UDS/Centre de Données astronomiques de Strasbourg (CDS),
  *                       Astronomisches Rechen Institut (ARI)
  */
 
@@ -25,7 +25,7 @@ import java.io.IOException;
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
-import java.util.ArrayList;
+import java.util.List;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -69,7 +69,7 @@ import uws.service.log.UWSLog.LogLevel;
  * </p>
  * 
  * @author Gr&eacute;gory Mantelet (CDS;ARI)
- * @version 4.1 (04/2015)
+ * @version 4.2 (09/2017)
  */
 public class DefaultUWSErrorWriter implements ServiceErrorWriter {
 
@@ -149,7 +149,7 @@ public class DefaultUWSErrorWriter implements ServiceErrorWriter {
 		if (acceptHeader != null && !acceptHeader.trim().isEmpty()){
 			// Parse the given MIME types list:
 			AcceptHeader accept = new AcceptHeader(acceptHeader);
-			ArrayList<String> lstMimeTypes = accept.getOrderedMimeTypes();
+			List<String> lstMimeTypes = accept.getOrderedMimeTypes();
 			for(String acceptedFormat : lstMimeTypes){
 				for(String f : managedFormats){
 					if (acceptedFormat.equalsIgnoreCase(f))
diff --git a/src/uws/service/file/LocalUWSFileManager.java b/src/uws/service/file/LocalUWSFileManager.java
index 0bbb628cb3b848594d3606ae7a41a5f2d6a9ef7c..080b80dcbda775e92c36b00c64849b804475ef27 100644
--- a/src/uws/service/file/LocalUWSFileManager.java
+++ b/src/uws/service/file/LocalUWSFileManager.java
@@ -16,7 +16,7 @@ package uws.service.file;
  * You should have received a copy of the GNU Lesser General Public License
  * along with UWSLibrary.  If not, see <http://www.gnu.org/licenses/>.
  * 
- * Copyright 2012-2015 - UDS/Centre de Données astronomiques de Strasbourg (CDS),
+ * Copyright 2012-2017 - UDS/Centre de Données astronomiques de Strasbourg (CDS),
  *                       Astronomisches Rechen Institut (ARI)
  */
 
@@ -38,6 +38,7 @@ import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.Iterator;
+import java.util.List;
 import java.util.NoSuchElementException;
 
 import uws.UWSException;
@@ -69,7 +70,7 @@ import uws.service.request.UploadFile;
  * </p>
  * 
  * @author Gr&eacute;gory Mantelet (CDS;ARI)
- * @version 4.1 (02/2015)
+ * @version 4.2 (09/2017)
  */
 public class LocalUWSFileManager implements UWSFileManager {
 
@@ -417,7 +418,7 @@ public class LocalUWSFileManager implements UWSFileManager {
 
 	/**
 	 * Create a File instance from the given upload file description.
-	 * This function is able to deal with location as URI and as file path. 
+	 * This function is able to deal with location as URI and as file path.
 	 * 
 	 * @param upload	Description of an uploaded file.
 	 * 
@@ -765,7 +766,7 @@ public class LocalUWSFileManager implements UWSFileManager {
 			itBackupFiles = loadAllBackupFiles().iterator();
 		}
 
-		private ArrayList<File> loadAllBackupFiles(){
+		private List<File> loadAllBackupFiles(){
 			ArrayList<File> backupFiles = new ArrayList<File>();
 
 			// If there must be 1 directory by user:
diff --git a/test/adql/query/TestADQLObjectPosition.java b/test/adql/query/TestADQLObjectPosition.java
index 7a41bb29913aeca74dcd5dbee52052f85daeaf2e..a03b24c398a26e6f45760298357d9fb6a44a2d1e 100644
--- a/test/adql/query/TestADQLObjectPosition.java
+++ b/test/adql/query/TestADQLObjectPosition.java
@@ -3,17 +3,14 @@ package adql.query;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 
-import java.util.ArrayList;
 import java.util.Iterator;
+import java.util.List;
 
 import org.junit.Before;
 import org.junit.Test;
 
 import adql.parser.ADQLParser;
 import adql.parser.ParseException;
-import adql.query.ADQLObject;
-import adql.query.ADQLQuery;
-import adql.query.TextPosition;
 import adql.query.constraint.Comparison;
 import adql.query.from.ADQLJoin;
 import adql.query.from.ADQLTable;
@@ -75,7 +72,7 @@ public class TestADQLObjectPosition {
 			 *     the one of the first table of the clause FROM. */
 			assertEquality(new TextPosition(1, 26, 1, 49), query.getFrom().getPosition());
 			// Test ADQLTable
-			ArrayList<ADQLTable> tables = query.getFrom().getTables();
+			List<ADQLTable> tables = query.getFrom().getTables();
 			assertEquality(new TextPosition(1, 26, 1, 29), tables.get(0).getPosition());
 			assertEquality(new TextPosition(1, 35, 1, 38), tables.get(1).getPosition());
 			// Test the join condition: