private void countJoinWindowNodes(
        final AtomicInteger count,
        final GraphNode currentNode,
        final Set<GraphNode> visited) {

        if (currentNode instanceof WindowedStreamProcessorNode) {
            count.incrementAndGet();
        }

        for (final GraphNode child: currentNode.children()) {
            if (!visited.contains(child)) {
                visited.add(child);
                countJoinWindowNodes(count, child, visited);
            }
        }
    }
The join node has two parents and the graph looks like:
root ---> source (t1)
source ---> map , windowed-4, join
map ---> windowed-3, join
streams/src/test/java/org/apache/kafka/streams/kstream/internals/InternalStreamsBuilderTest.java