Two views do not perform all of its transitions. Only pre-ordered views will do it all

When I execute an object call in the order of A1 and A2 running the excuteSwapView (...) method, if I call A1 before, A1 completes all of its transitions. But A2 only performs Transition [0] and subsequent transitions are not performed. On the contrary, if I call A2 before, all the transitions of A2 are done and A1 only executes transition [0]. How A1 and A2 perform all transitions that are passed on. Note: The transition [0] of the two A are executed concurrently.

public class AAA {
View v;
public AAA(View v) {
    this.v = v;
}
public void excuteSwapView(final ConstraintLayout ctrl, final int position, final Transition... arrGuiOrAnim) {
    if (position < arrGuiOrAnim.length) {
        TransitionSet transitionSet = new TransitionSet();
        Transition transition = arrGuiOrAnim[position];
        ConstraintSet constraintSet = new ConstraintSet();

        constraintSet.clone(ctrl);
        transitionSet.addTransition(transition);
        transitionSet.addListener(new Transition.TransitionListener() {
            @Override
            public void onTransitionStart(Transition transition) {

            }

            @Override
            public void onTransitionEnd(Transition transition) {
                excuteSwapView(ctrl,position+1,arrGuiOrAnim);
            }

            @Override
            public void onTransitionCancel(Transition transition) {

            }

            @Override
            public void onTransitionPause(Transition transition) {
            }

            @Override
            public void onTransitionResume(Transition transition) {

            }
        });
        TransitionManager.beginDelayedTransition(ctrl, transitionSet);
        constraintSet.applyTo(ctrl);

    }
}

}

Method MainActivity

public void runTransition(){
    ConstraintLayout layout;
    View v1, v2;
    ....
    Transition x1[] = new Transition[5];
    ....
    Transition x2[] = new Transition[5];
    ....

    AAA a1 = new AAA(v1);
    AAA a2 = new AAA(v2);
    a1.excuteSwapView(layout, 0, x1);
    a2.excuteSwapView(layout, 0, x2);


}