System.out.println("subtask starts too soon after "
if (logger.isDebugEnabled()) logger.debug("subtask starts too soon after "
    private void aggregateSubtask(Task subtask) {        int subtype = getSubtype(subtask);        long startTime = TaskUtils.getStartTime(subtask);        long endTime = TaskUtils.getEndTime(subtask);        long now = currentTimeMillis();        long minTime = now + 2 * ONE_DAY;        if (startTime < minTime) {            System.out.println("subtask starts too soon after "                               + dateFormat.format(new Date(now))                               + ": "                               + format(subtask));            failTask(subtask);            return;        }        for (Iterator i = mpTasks[subtype].iterator(); i.hasNext(); ) {            NewMPTask mpTask = (NewMPTask) i.next();            long mpStartTime = TaskUtils.getStartTime(mpTask);            if (mpStartTime > minTime) {                continue;       // Can't use if about to start            }            long mpEndTime = TaskUtils.getEndTime(mpTask);            if (mpStartTime + AGGREGATION_PERIOD > endTime                && mpEndTime - AGGREGATION_PERIOD < startTime) {                createAggregation(subtask, mpTask);                return;            }        }        NewMPTask mpTask = createMPTask(testDeletionExpand, getLevel(subtask) + 1, subtype, theAggAsset,                                        startTime, endTime, endTime - startTime);        mpTasks[subtype].add(mpTask);        publishAdd(mpTask);        createAggregation(subtask, mpTask);    }