public synchronized void add(E newValue){ . . . try { while (queue is full) wait for more space . . . } finally { ... }}