Buggy code:
public abstract class Vertex { private Vertex next ; private Vertex family ; private int color ; private int id ; private Vector2 pos ; private boolean isInDepot ; protected GameElement gameElement ; private int width ; private int nextWidth ; private static HashMap < Integer , Integer > colorMap = new HashMap < Integer , Integer > ( ) ; private LinkedList < Integer > familyColorList ; private LinkedList < Integer > nextColorList ; public Vertex ( ) { } public Vertex ( int id , int color ) { } public boolean updateIdList ( int oldId , int newId ) { } protected static void updateMap ( int vertexColor , int mappedColor ) { } protected static int getMappedColor ( int vertexColor ) { } public void addFamilyIdList ( int addId ) { } public Vertex updateStart ( ) { } protected boolean renameFamily ( int oldColor , int newColor ) { } public abstract GameElement getGameElement ( ) { } protected LinkedList < Vertex > replaceInFamily ( Vertex start ) { LinkedList < Vertex > listOfNewVertex = new LinkedList < Vertex > ( ) ; if ( this . getFamilyColorList ( ) . contains ( start . getColor ( ) ) ) { if ( ( this . getfamily ( ) ) != null ) { listOfNewVertex = this . getfamily ( ) . replaceInFamily ( start ) ; if ( ( this . getfamily ( ) . getType ( ) . equals ( "Variable" ) ) && ( ( this . getfamily ( ) . getColor ( ) ) == ( start . getColor ( ) ) ) ) { Vertex replaced = start . getnext ( ) . cloneMe ( ) ; LinkedList < Vertex > cloneList = replaced . getVertexList ( ) ; for ( Vertex v : cloneList ) { listOfNewVertex . add ( v ) ; } Vector2 position = new Vector2 ( start . getGameElement ( ) . getPosition ( ) . x , start . getGameElement ( ) . getPosition ( ) . y ) ; position . x += Constants . ABSTRACTION_OUTPUT ; position . y += Constants . GAMEELEMENT_ANIMATION_WIDTH ; <START_BUG> EvaluationOptimizer . MoveAndScaleAnimationWithoutDelay ( pos , this . getfamily ( ) . getGameElement ( ) , false ) ; <END_BUG> if ( ( this . getfamily ( ) . getnext ( ) ) != null ) { replaced . setnext ( this . getfamily ( ) . getnext ( ) ) ; } this . setfamily ( replaced ) ; } } } if ( ( this . getnext ( ) ) != null ) { LinkedList < Vertex > listOfNextVertex = this . getnext ( ) . replaceInFamily ( start ) ; for ( Vertex v : listOfNextVertex ) { listOfNewVertex . add ( v ) ; } if ( ( this . getnext ( ) . getType ( ) . equals ( "Variable" ) ) && ( ( this . getnext ( ) . getColor ( ) ) == ( start . getColor ( ) ) ) ) { Vertex replaced = start . getnext ( ) . cloneMe ( ) ; LinkedList < Vertex > cloneList = replaced . getVertexList ( ) ; for ( Vertex v : cloneList ) { listOfNewVertex . add ( v ) ; } Vector2 position = new Vector2 ( start . getGameElement ( ) . getPosition ( ) . x , start . getGameElement ( ) . getPosition ( ) . y ) ; position . x += Constants . ABSTRACTION_OUTPUT ; position . y += Constants . GAMEELEMENT_ANIMATION_WIDTH ; EvaluationOptimizer . MoveAndScaleAnimationWithoutDelay ( pos , this . getnext ( ) . getGameElement ( ) , false ) ; if ( ( this . getnext ( ) . getnext ( ) ) != null ) { replaced . setnext ( this . getnext ( ) . getnext ( ) ) ; } this . setnext ( replaced ) ; } } return listOfNewVertex ; } public abstract Vertex cloneMe ( ) { } public abstract Vertex cloneFamily ( ) { } public abstract String getType ( ) { } public boolean removeGameelements ( ) { } private boolean removeAllGameelements ( ) { } public boolean removeVariableGameelements ( ) { } private boolean removeVariableFamily ( int color ) { } protected LinkedList < Vertex > getVertexList ( ) { } private LinkedList < Vertex > getFamilyVertexList ( ) { } protected void updateColorList ( LinkedList < Integer > cloneList , int color ) { } private void updateFamilyColorList ( LinkedList < Integer > cloneList , int color ) { } public void updateWidth ( ) { } private void updateFamilyWidth ( ) { } public abstract Vertex updatePointerAfterBetaReduction ( ) { } public abstract Vertex getEvaluationResult ( ) { } public abstract void UpdatePositionsAfterBetaReduction ( ) { } public abstract LinkedList < Vertex > betaReduction ( ) { } public abstract boolean alphaConversion ( ) { } public abstract Vertex getReadIn ( ) { } public void readInAnimation ( Vector2 pos ) { } protected void readInFamilyAnimation ( Vector2 pos ) { } public void updateGameelementPosition ( int difX , int difY ) { } private void updateOtherGameelementPosition ( int difX , int difY ) { } public abstract void reorganizePositions ( Vector2 start , Vector2 newPos ) { } protected void setGameelementPosition ( Vector2 start , Vector2 newPos ) { } private void setOtherGameelementPosition ( Vector2 newPos , Vector2 startPos ) { } public boolean equals ( Vertex v ) { } public abstract void DeleteAfterBetaReduction ( ) { } public void setnext ( Vertex next ) { } public boolean setfamily ( Vertex family ) { } public void setColor ( int color ) { } public void setFamilyColorlist ( LinkedList < Integer > familyColorList ) { } public void setNextColorlist ( LinkedList < Integer > nextColorList ) { } public void setPosition ( Vector2 p ) { }

Fix:
EvaluationOptimizer . MoveAndScaleAnimationWithoutDelay ( position , this . getfamily ( ) . getGameElement ( ) , false ) ;