diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/hibernate/notification/NotBlockingAutoUpdatedSnapshot.java b/navalplanner-business/src/main/java/org/navalplanner/business/hibernate/notification/NotBlockingAutoUpdatedSnapshot.java index 4dc8bb6b8..aa2cbb22a 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/hibernate/notification/NotBlockingAutoUpdatedSnapshot.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/hibernate/notification/NotBlockingAutoUpdatedSnapshot.java @@ -231,6 +231,7 @@ class NotBlockingAutoUpdatedSnapshot implements IAutoUpdatedSnapshot { return callable.call(); } catch (Exception e) { error = e; + LOG.error("error executing snapshot " + name); throw e; } finally { long timeExecuting = System.currentTimeMillis() - start; diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/hibernate/notification/PredefinedDatabaseSnapshots.java b/navalplanner-business/src/main/java/org/navalplanner/business/hibernate/notification/PredefinedDatabaseSnapshots.java index 11ea113aa..583f13ba2 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/hibernate/notification/PredefinedDatabaseSnapshots.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/hibernate/notification/PredefinedDatabaseSnapshots.java @@ -21,10 +21,12 @@ package org.navalplanner.business.hibernate.notification; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.SortedMap; +import java.util.TreeMap; import java.util.concurrent.Callable; import org.apache.commons.logging.Log; @@ -92,9 +94,9 @@ public class PredefinedDatabaseSnapshots { @Autowired private ISnapshotRefresherService snapshotRefresherService; - private IAutoUpdatedSnapshot>> criterionsMap; + private IAutoUpdatedSnapshot>> criterionsMap; - public Map> snapshotCriterionsMap() { + public SortedMap> snapshotCriterionsMap() { return criterionsMap.getValue(); } @@ -237,11 +239,13 @@ public class PredefinedDatabaseSnapshots { @Autowired private ICriterionDAO criterionDAO; - private Callable>> calculateCriterionsMap() { - return new Callable>>() { + private Callable>> calculateCriterionsMap() { + return new Callable>>() { @Override - public Map> call() throws Exception { - Map> result = new HashMap>(); + public SortedMap> call() + throws Exception { + SortedMap> result = new TreeMap>( + getComparatorByName()); for (CriterionType criterionType : criterionTypeDAO .getSortedCriterionTypes()) { if (criterionType.isEnabled()) { @@ -255,6 +259,15 @@ public class PredefinedDatabaseSnapshots { }; } + private Comparator getComparatorByName(){ + return new Comparator() { + @Override + public int compare(CriterionType arg0, CriterionType arg1) { + return (arg0.getName().compareTo(arg1.getName())); + } + }; + } + @Autowired private ILabelTypeDAO labelTypeDAO; diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/finders/OrderElementsMultipleFiltersFinder.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/finders/OrderElementsMultipleFiltersFinder.java index 4db51b0ca..4a4e33cb2 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/finders/OrderElementsMultipleFiltersFinder.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/finders/OrderElementsMultipleFiltersFinder.java @@ -23,6 +23,7 @@ package org.navalplanner.web.common.components.finders; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.SortedMap; import org.apache.commons.lang.StringUtils; import org.navalplanner.business.hibernate.notification.PredefinedDatabaseSnapshots; @@ -78,7 +79,7 @@ public class OrderElementsMultipleFiltersFinder extends MultipleFiltersFinder { } private List fillWithFirstTenFiltersCriterions() { - Map> mapCriterions = getMapCriterions(); + SortedMap> mapCriterions = getMapCriterions(); Iterator iteratorCriterionType = mapCriterions.keySet() .iterator(); while (iteratorCriterionType.hasNext() && getListMatching().size() < 10) { @@ -95,7 +96,7 @@ public class OrderElementsMultipleFiltersFinder extends MultipleFiltersFinder { return getListMatching(); } - private Map> getMapCriterions() { + private SortedMap> getMapCriterions() { return databaseSnapshots.snapshotCriterionsMap(); } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/finders/OrdersMultipleFiltersFinder.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/finders/OrdersMultipleFiltersFinder.java index f06e745f9..08ef53c8e 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/finders/OrdersMultipleFiltersFinder.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/finders/OrdersMultipleFiltersFinder.java @@ -23,6 +23,7 @@ package org.navalplanner.web.common.components.finders; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.SortedMap; import org.apache.commons.lang.StringUtils; import org.navalplanner.business.externalcompanies.entities.ExternalCompany; @@ -82,7 +83,7 @@ public class OrdersMultipleFiltersFinder extends MultipleFiltersFinder { } private List fillWithFirstTenFiltersCriterions() { - Map> mapCriterions = getMapCriterions(); + SortedMap> mapCriterions = getMapCriterions(); Iterator iteratorCriterionType = mapCriterions.keySet() .iterator(); while (iteratorCriterionType.hasNext() && getListMatching().size() < 10) { @@ -99,7 +100,7 @@ public class OrdersMultipleFiltersFinder extends MultipleFiltersFinder { return getListMatching(); } - private Map> getMapCriterions() { + private SortedMap> getMapCriterions() { return databaseSnapshots.snapshotCriterionsMap(); } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/finders/ResourceAllocationMultipleFiltersFinder.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/finders/ResourceAllocationMultipleFiltersFinder.java index 38e0300b7..a9307940f 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/finders/ResourceAllocationMultipleFiltersFinder.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/finders/ResourceAllocationMultipleFiltersFinder.java @@ -24,6 +24,7 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.SortedMap; import org.apache.commons.lang.StringUtils; import org.navalplanner.business.hibernate.notification.PredefinedDatabaseSnapshots; @@ -99,7 +100,7 @@ public class ResourceAllocationMultipleFiltersFinder extends } private List fillWithFirstTenFiltersCriterions() { - Map> mapCriterions = getCriterionsMap(); + SortedMap> mapCriterions = getCriterionsMap(); Iterator iteratorCriterionType = mapCriterions.keySet() .iterator(); while (iteratorCriterionType.hasNext() && getListMatching().size() < 10) { @@ -116,7 +117,7 @@ public class ResourceAllocationMultipleFiltersFinder extends return getListMatching(); } - private Map> getCriterionsMap() { + private SortedMap> getCriterionsMap() { return this.databaseSnapshots.snapshotCriterionsMap(); } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/finders/ResourcesMultipleFiltersFinder.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/finders/ResourcesMultipleFiltersFinder.java index 2f632d000..4b2deaeb2 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/finders/ResourcesMultipleFiltersFinder.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/finders/ResourcesMultipleFiltersFinder.java @@ -23,6 +23,7 @@ package org.navalplanner.web.common.components.finders; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.SortedMap; import org.apache.commons.lang.StringUtils; import org.navalplanner.business.costcategories.entities.CostCategory; @@ -56,7 +57,7 @@ public class ResourcesMultipleFiltersFinder extends MultipleFiltersFinder { } private List fillWithFirstTenFiltersCriterions() { - Map> criterionsMap = getCriterionsMap(); + SortedMap> criterionsMap = getCriterionsMap(); Iterator iteratorCriterionType = criterionsMap.keySet() .iterator(); while (iteratorCriterionType.hasNext() && getListMatching().size() < 10) { @@ -70,7 +71,7 @@ public class ResourcesMultipleFiltersFinder extends MultipleFiltersFinder { return getListMatching(); } - private Map> getCriterionsMap() { + private SortedMap> getCriterionsMap() { return databaseSnapshots.snapshotCriterionsMap(); }