DeltaTask$Block.partitionTask was doing an infinite loop if number of threads was greater than the totalWeight. The weightPerThread was 0 which was causing the infinite loop. Set the weightPerThread to a minimal value of one. Bug: 420915 Change-Id: Ia8e3ad956d53d8193937b7fa1bc19aafde9767ff Signed-off-by: Hugo Arès <hugo.ares@ericsson.com>tags/v3.5.0.201409071800-rc1
@@ -121,7 +121,7 @@ final class DeltaTask implements Callable<Object> { | |||
ArrayList<WeightedPath> topPaths = computeTopPaths(); | |||
Iterator<WeightedPath> topPathItr = topPaths.iterator(); | |||
int nextTop = 0; | |||
long weightPerThread = totalWeight / threads; | |||
long weightPerThread = Math.max(totalWeight / threads, 1); | |||
for (int i = beginIndex; i < endIndex;) { | |||
DeltaTask task = new DeltaTask(this); | |||
long w = 0; |