Суть - что будет если элементов, которые удовлетворяют условию предиката в filter не будет? Код дальше просто не выполнится, правильно я не понимаю?
public void checkBricksBump() {
    bricks.stream()
            .filter(brick -> brick.isIntersec(ball))
            .limit(1)
            .forEach(brick ->
            {
                bricks.remove(brick);
                ball.setDirection(Math.random() * 360);
            });
}
Валидатор говорит что поведение шарика после столкновения не правильно задаю, но мне кажется тут проблема кроется за моим недостаточным пониманием работы Stream Api