From ec209c07fe5ab39e8858d0f13dbdd8839e8ab431 Mon Sep 17 00:00:00 2001 From: Diego Pino Garcia Date: Mon, 5 Oct 2009 10:48:23 +0200 Subject: [PATCH] ItEr28S11AltaEtiquetasTipoEtiquetaItEr27S11: [FixBug] Create duplicate Label when creating new OrderElement --- .../AssignedLabelsToOrderElementModel.java | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/AssignedLabelsToOrderElementModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/AssignedLabelsToOrderElementModel.java index 7608f1d9c..3de656a37 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/AssignedLabelsToOrderElementModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/AssignedLabelsToOrderElementModel.java @@ -165,8 +165,7 @@ public class AssignedLabelsToOrderElementModel implements @Override @Transactional(readOnly = true) public Label findLabelByNameAndType(String labelName, LabelType labelType) { - reattachLabels(); - Label label = labelDAO.findByNameAndType(labelName, labelType); + Label label = findLabelByNameAndTypeName(labelName, labelType.getName()); if (label != null) { initializeLabel(label); cacheLabels.add(label); @@ -174,6 +173,24 @@ public class AssignedLabelsToOrderElementModel implements return label; } + /** + * Search {@link Label} by name and type in cache of labels + * + * @param labelName + * @param labelTypeName + * @return + */ + private Label findLabelByNameAndTypeName(String labelName, + String labelTypeName) { + for (Label label : cacheLabels) { + if (label.getName().equals(labelName) + && label.getType().getName().equals(labelTypeName)) { + return label; + } + } + return null; + } + @Override public boolean isAssigned(Label label) { final Set