Getting an infinite loop when doing Breadth First Traversal

public void printBreadthFirstTraversal() {
        Queue<T> queue = new LinkedList<>();
        if (_value == null) {
            return;
        }

        queue.add(_value); 

        while (!queue.isEmpty()) { 
            T node = (T) queue.remove();
            System.out.print(_value + " ");

            if (getLeft() != null) {
                queue.add(_left.getValue());
            }
            if (getRight() != null) {
                queue.add(_right.getValue());
            }
        }
        

    }

The method above is in the class as follows:

public class NonEmpty<T extends Comparable<T>> implements BST<T> {
    private T _value;
    private BST<T> _left;
    private BST<T> _right;

    public NonEmpty(T element) {
        _left = new Empty<T>();
        _right = new Empty<T>();
        _value = value;
    }

...
// getValue and isEmpty methods written and works

I get an infinite loop when I run a test. It just lists the root value nonstop. What is wrong with my logic here?