public void addTask(Task task) {

        if (queue.size() <= MAXQSIZE) {

            Logger.getInstance().debug("QSize is: " + queue.size() + "; Now Pushed task " + task.toString());
            queue.add(task);
            Logger.getInstance().debug("QSize is: " + queue.size());

        } else {
            Logger.getInstance().info("QSize is FULL: " + queue.size() + "; Task " + task.toString() + " Ignored");
        }

        if (isBecomeFull()) {
            Logger.getInstance().info("Queue became full on Task " + task.toString());
            
            //Signal Controller that queue is full.
            EventBusFactory.getDefault().fire(new QueueFullEvent());
        }
    }