Index: modules/dnet-modular-uis/trunk/src/main/java/eu/dnetlib/functionality/modular/ui/InfoController.java
===================================================================
--- modules/dnet-modular-uis/trunk/src/main/java/eu/dnetlib/functionality/modular/ui/InfoController.java	(revision 61717)
+++ modules/dnet-modular-uis/trunk/src/main/java/eu/dnetlib/functionality/modular/ui/InfoController.java	(revision 61718)
@@ -5,7 +5,6 @@
 import java.lang.management.RuntimeMXBean;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Comparator;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -59,103 +58,129 @@
 
 	@SuppressWarnings("unchecked")
 	private List<Map<String, Object>> getModules() throws IOException {
-		final Map<String, Map<String, Map<String, Object>>> modules = Maps.newLinkedHashMap();
+		final long start = System.currentTimeMillis();
+		try {
 
-		final MavenXpp3Reader reader = new MavenXpp3Reader();
-		for (Resource res : ResourcePatternUtils.getResourcePatternResolver(resourceLoader).getResources("classpath*:/META-INF/**/pom.xml")) {
-			try {
-				final Model model = reader.read(res.getInputStream());
+			final Map<String, Map<String, Map<String, Object>>> modules = Maps.newLinkedHashMap();
 
-				final String name = model.getArtifactId();
+			final MavenXpp3Reader reader = new MavenXpp3Reader();
+			for (final Resource res : ResourcePatternUtils.getResourcePatternResolver(resourceLoader).getResources("classpath*:/META-INF/**/pom.xml")) {
+				try {
+					final Model model = reader.read(res.getInputStream());
 
-				String groupId = model.getGroupId();
-				for (Parent parent = model.getParent(); groupId == null && model.getParent() != null; parent = model.getParent()) {
-					groupId = parent.getGroupId();
-				}
+					final String name = model.getArtifactId();
 
-				String version = model.getVersion();
-				for (Parent parent = model.getParent(); version == null && model.getParent() != null; parent = model.getParent()) {
-					version = parent.getVersion();
-				}
+					String groupId = model.getGroupId();
+					for (Parent parent = model.getParent(); (groupId == null) && (model.getParent() != null); parent = model.getParent()) {
+						groupId = parent.getGroupId();
+					}
 
-				if (!modules.containsKey(groupId)) {
-					modules.put(groupId, new HashMap<String, Map<String, Object>>());
+					String version = model.getVersion();
+					for (Parent parent = model.getParent(); (version == null) && (model.getParent() != null); parent = model.getParent()) {
+						version = parent.getVersion();
+					}
+
+					if (!modules.containsKey(groupId)) {
+						modules.put(groupId, new HashMap<String, Map<String, Object>>());
+					}
+					if (!modules.get(groupId).containsKey(name)) {
+						final Map<String, Object> map = Maps.newHashMap();
+						map.put("group", groupId);
+						map.put("name", name);
+						map.put("files", new ArrayList<String>());
+						map.put("versions", new ArrayList<String>());
+						modules.get(groupId).put(name, map);
+					} else {
+						// Artifact already found
+						modules.get(groupId).get(name).put("warning", "1");
+					}
+					((List<String>) modules.get(groupId).get(name).get("versions")).add(version);
+					((List<String>) modules.get(groupId).get(name).get("files")).add(res.getURI().toString());
+				} catch (final Exception e) {
+					log.error("Error evaluating pom: " + res.getURI());
+					log.debug("-- ERROR --", e);
 				}
-				if (!modules.get(groupId).containsKey(name)) {
-					final Map<String, Object> map = Maps.newHashMap();
-					map.put("group", groupId);
-					map.put("name", name);
-					map.put("files", new ArrayList<String>());
-					map.put("versions", new ArrayList<String>());
-					modules.get(groupId).put(name, map);
-				} else {
-					// Artifact already found
-					modules.get(groupId).get(name).put("warning", "1");
-				}
-				((List<String>) modules.get(groupId).get(name).get("versions")).add(version);
-				((List<String>) modules.get(groupId).get(name).get("files")).add(res.getURI().toString());
-			} catch (Exception e) {
-				log.error("Error evaluating pom: " + res.getURI());
-				log.debug("-- ERROR --", e);
 			}
-		}
 
-		final List<Map<String, Object>> list = Lists.newArrayList();
-		for (Entry<String, Map<String, Map<String, Object>>> e : modules.entrySet()) {
-			for (Entry<String, Map<String, Object>> e1 : e.getValue().entrySet()) {
-				list.add(e1.getValue());
+			final List<Map<String, Object>> list = Lists.newArrayList();
+			for (final Entry<String, Map<String, Map<String, Object>>> e : modules.entrySet()) {
+				for (final Entry<String, Map<String, Object>> e1 : e.getValue().entrySet()) {
+					list.add(e1.getValue());
+				}
 			}
-		}
 
-		Collections.sort(list, new Comparator<Map<String, Object>>() {
-
-			@Override
-			public int compare(final Map<String, Object> o1, final Map<String, Object> o2) {
+			Collections.sort(list, (o1, o2) -> {
 				if (o1.get("group").equals(o2.get("group"))) {
 					return o1.get("name").toString().compareTo(o2.get("name").toString());
 				} else {
 					return o1.get("group").toString().compareTo(o2.get("group").toString());
 				}
-			}
-		});
+			});
 
-		return list;
+			return list;
+		} finally {
+			log.debug(" - getModules(): " + ((System.currentTimeMillis() - start) / 1000) + " seconds");
+		}
 	}
 
 	private Map<String, String> getSysInfo(final RuntimeMXBean mxbean) {
-		return mxbean.getSystemProperties();
+		final long start = System.currentTimeMillis();
+		try {
+			return mxbean.getSystemProperties();
+		} finally {
+			log.debug(" - getSysInfo(): " + ((System.currentTimeMillis() - start) / 1000) + " seconds");
+		}
+
 	}
 
 	private Map<String, String> getGeneralInfo(final RuntimeMXBean mxbean) {
-		final Map<String, String> genInfo = Maps.newLinkedHashMap();
-		genInfo.put("Hostname", hostname);
-		genInfo.put("Port", port);
-		genInfo.put("Context", context);
-		genInfo.put("Uptime", HumanTime.exactly(mxbean.getUptime()));
-		genInfo.put("Start Time", DateUtils.calculate_ISO8601(mxbean.getStartTime()));
-		return genInfo;
+		final long start = System.currentTimeMillis();
+		try {
+			final Map<String, String> genInfo = Maps.newLinkedHashMap();
+			genInfo.put("Hostname", hostname);
+			genInfo.put("Port", port);
+			genInfo.put("Context", context);
+			genInfo.put("Uptime", HumanTime.exactly(mxbean.getUptime()));
+			genInfo.put("Start Time", DateUtils.calculate_ISO8601(mxbean.getStartTime()));
+			return genInfo;
+		} finally {
+			log.debug(" - getGeneralInfo(): " + ((System.currentTimeMillis() - start) / 1000) + " seconds");
+		}
+
 	}
 
 	private Map<String, String> getJvmInfo(final RuntimeMXBean mxbean) {
-		final Map<String, String> jvmInfo = Maps.newLinkedHashMap();
-		jvmInfo.put("JVM Name", mxbean.getVmName());
-		jvmInfo.put("JVM Vendor", mxbean.getVmVendor());
-		jvmInfo.put("JVM Version", mxbean.getVmVersion());
-		jvmInfo.put("JVM Spec Name", mxbean.getSpecName());
-		jvmInfo.put("JVM Spec Vendor", mxbean.getSpecVendor());
-		jvmInfo.put("JVM Spec Version", mxbean.getSpecVersion());
-		jvmInfo.put("Running JVM Name", mxbean.getName());
-		jvmInfo.put("Management Spec Version", mxbean.getManagementSpecVersion());
-		return jvmInfo;
+		final long start = System.currentTimeMillis();
+		try {
+			final Map<String, String> jvmInfo = Maps.newLinkedHashMap();
+			jvmInfo.put("JVM Name", mxbean.getVmName());
+			jvmInfo.put("JVM Vendor", mxbean.getVmVendor());
+			jvmInfo.put("JVM Version", mxbean.getVmVersion());
+			jvmInfo.put("JVM Spec Name", mxbean.getSpecName());
+			jvmInfo.put("JVM Spec Vendor", mxbean.getSpecVendor());
+			jvmInfo.put("JVM Spec Version", mxbean.getSpecVersion());
+			jvmInfo.put("Running JVM Name", mxbean.getName());
+			jvmInfo.put("Management Spec Version", mxbean.getManagementSpecVersion());
+			return jvmInfo;
+		} finally {
+			log.debug(" - getJvmInfo(): " + ((System.currentTimeMillis() - start) / 1000) + " seconds");
+		}
+
 	}
 
 	private Map<String, String> getLibInfo(final RuntimeMXBean mxbean) {
-		final Map<String, String> libInfo = Maps.newLinkedHashMap();
-		libInfo.put("Classpath", mxbean.getClassPath().replaceAll(":", " : "));
-		libInfo.put("Boot ClassPath", mxbean.getBootClassPath().replaceAll(":", " : "));
-		libInfo.put("Input arguments", mxbean.getInputArguments().toString());
-		libInfo.put("Library Path", mxbean.getLibraryPath().replaceAll(":", " : "));
-		return libInfo;
+		final long start = System.currentTimeMillis();
+		try {
+			final Map<String, String> libInfo = Maps.newLinkedHashMap();
+			libInfo.put("Classpath", mxbean.getClassPath().replaceAll(":", " : "));
+			libInfo.put("Boot ClassPath", mxbean.getBootClassPath().replaceAll(":", " : "));
+			libInfo.put("Input arguments", mxbean.getInputArguments().toString());
+			libInfo.put("Library Path", mxbean.getLibraryPath().replaceAll(":", " : "));
+			return libInfo;
+		} finally {
+			log.debug(" - getLibInfo(): " + ((System.currentTimeMillis() - start) / 1000) + " seconds");
+		}
+
 	}
 
 	public String getHostname() {
