public OutputQueueHandle addOutputQueue(final String name) {
        if (name == null || name.length() == 0) {
            throw new IllegalArgumentException("The name is null or zero length.");
        }
        if (getOutputQueueHandle(name) != null) {
            throw new IllegalArgumentException("The name has been used.");
        }

        final int newQueueId = super.addOutput();
        final OutputQueueHandle handle = new OutputQueueHandle(this, name, newQueueId);
        CollectionUtil.expandArrayListSize(outputQueues, newQueueId + 1);
        outputQueues.set(newQueueId, handle);
        return handle;
    }