Queue Full, en profundidad de la cola de bloqueo, se necesita aclaración

Cuando se llena la cola del contenido del archivo, la profundidad no parece aumentar nunca, ya que los elementos no se agregan en esta implementación.

    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
        }

Cuando reemplazaoffer conadd, excepción si se lanza

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

¿Qué estoy haciendo mal por favor? ¿Por qué la cola se llena inmediatamente después de insertar el primer elemento?

Respuestas a la pregunta(6)

Su respuesta a la pregunta