diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/TaskElementAdapter.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/TaskElementAdapter.java index 01879244e..3858f837e 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/TaskElementAdapter.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/TaskElementAdapter.java @@ -52,7 +52,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; import org.zkoss.ganttz.adapters.DomainDependency; import org.zkoss.ganttz.data.DependencyType; import org.zkoss.ganttz.data.ITaskFundamentalProperties; @@ -290,28 +289,44 @@ public class TaskElementAdapter implements ITaskElementAdapter { } @Override - @Transactional(readOnly = true) public String getTooltipText() { + return transactionService + .runOnReadOnlyTransaction(new IOnTransaction() { + @Override + public String execute() { + orderElementDAO + .reattachUnmodifiedEntity(taskElement + .getOrderElement()); + return buildTooltipText(); + } + }); + } + + private String buildTooltipText() { StringBuilder result = new StringBuilder(); - result.append("Advance: ") - .append(getAdvancePercentage().multiply(new BigDecimal(100))) - .append("% , "); + result.append("Advance: ").append( + getAdvancePercentage().multiply( + new BigDecimal(100))) + .append("% , "); - result.append("Hours invested: ") - .append(getHoursAdvancePercentage() - .multiply(new BigDecimal(100))) - .append("%
"); + result.append("Hours invested: ").append( + getHoursAdvancePercentage().multiply( + new BigDecimal(100))).append( + "%
"); if (taskElement.getOrderElement() != null) { - Set