From 8ece179912c377dac14e7f5a245cb9107fb7cb41 Mon Sep 17 00:00:00 2001 From: Leijurv Date: Sat, 24 Nov 2018 11:32:23 -0800 Subject: [PATCH] recalculate on allocation size change --- .../java/tenor/QuantizedTaskPriorityAllocationCache.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/tenor/java/tenor/QuantizedTaskPriorityAllocationCache.java b/src/tenor/java/tenor/QuantizedTaskPriorityAllocationCache.java index 48941c571..5ec20e547 100644 --- a/src/tenor/java/tenor/QuantizedTaskPriorityAllocationCache.java +++ b/src/tenor/java/tenor/QuantizedTaskPriorityAllocationCache.java @@ -32,7 +32,12 @@ public abstract class QuantizedTaskPriorityAllocationCache extends QuantizedTask @Override public final double priorityAllocatedTo(IQuantizedParentTaskRelationship child, int quantity) { - return allocationByQuantity.computeIfAbsent(quantity, this::allocationStrategy).allocatedTo(child); + Allocation allocation = allocationByQuantity.get(quantity); + if (allocation == null || allocation.total != effectiveAllocationSize(quantity)) { + allocation = allocationStrategy(quantity); + allocationByQuantity.put(quantity, allocation); + } + return allocation.allocatedTo(child); } protected Allocation allocationStrategy(int quantity) { // overridable