Очередь заполнена, на глубине очереди блокировки требуется уточнение

При заполнении очереди из содержимого файла глубина, кажется, никогда не увеличивается, так как элементы в этой реализации не добавляются.

    BlockingQueue<String> q = new SynchronousQueue<String>();
            ...
        fstream = new FileInputStream("/path/to/file.txt");
            ...
        while ((line = br.readLine()) != null) {
            if (q.offer(line))
                System.out.println("Depth: " + q.size()); //0
        }

При заменеoffer с участиемadd, исключение, если брошено

Exception in thread "main" java.lang.IllegalStateException: Queue full
  ...

Что я делаю не так, пожалуйста? Почему очередь заполнена сразу после вставки первого элемента?

Ответы на вопрос(3)

Ваш ответ на вопрос