diff --git a/libreplan-business/src/main/java/org/libreplan/business/expensesheet/entities/ExpenseSheet.java b/libreplan-business/src/main/java/org/libreplan/business/expensesheet/entities/ExpenseSheet.java index 91495f534..aae3a494b 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/expensesheet/entities/ExpenseSheet.java +++ b/libreplan-business/src/main/java/org/libreplan/business/expensesheet/entities/ExpenseSheet.java @@ -35,7 +35,7 @@ import org.libreplan.business.common.IHumanIdentifiable; import org.libreplan.business.common.IntegrationEntity; import org.libreplan.business.common.Registry; import org.libreplan.business.common.entities.EntitySequence; -import org.libreplan.business.common.exceptions.InstanceNotFoundException; +import org.libreplan.business.common.exceptions.ValidationException; import org.libreplan.business.expensesheet.daos.IExpenseSheetDAO; import org.libreplan.business.resources.entities.Resource; @@ -211,11 +211,11 @@ public class ExpenseSheet extends IntegrationEntity implements IHumanIdentifiabl } public ExpenseSheetLine getExpenseSheetLineByCode(String code) - throws InstanceNotFoundException { + throws ValidationException { if (StringUtils.isBlank(code)) { - throw new InstanceNotFoundException(code, - ExpenseSheetLine.class.getName()); + throw new ValidationException( + "missing the code with which find the expense sheet line"); } for (ExpenseSheetLine l : this.expenseSheetLines) { @@ -223,9 +223,7 @@ public class ExpenseSheet extends IntegrationEntity implements IHumanIdentifiabl return l; } } - - throw new InstanceNotFoundException(code, - ExpenseSheetLine.class.getName()); + return null; } public boolean isPersonal() { diff --git a/libreplan-webapp/src/main/java/org/libreplan/ws/expensesheets/impl/ExpenseSheetConverter.java b/libreplan-webapp/src/main/java/org/libreplan/ws/expensesheets/impl/ExpenseSheetConverter.java index 37829a48d..d5dec9019 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/ws/expensesheets/impl/ExpenseSheetConverter.java +++ b/libreplan-webapp/src/main/java/org/libreplan/ws/expensesheets/impl/ExpenseSheetConverter.java @@ -201,13 +201,14 @@ public final class ExpenseSheetConverter { "missing code in a expense sheet line"); } - try { - ExpenseSheetLine line = expenseSheet - .getExpenseSheetLineByCode(lineDTO.code); + ExpenseSheetLine line = expenseSheet + .getExpenseSheetLineByCode(lineDTO.code); + if (line != null) { updateExpenseSheetLine(line, lineDTO); - } catch (InstanceNotFoundException e) { + } else { expenseSheet.add(toEntity(lineDTO, expenseSheet)); } + } }