Program: 179571
Project: 179571
Buggy source:
void createMainCharacter(){
  Resource<SpriteSheet> walkingAnimationResource=resourceManager.get("String_Node_Str");
  Resource<SpriteSheet> idleAnimationResource=resourceManager.get("String_Node_Str");
  Resource<SpriteSheet> jumpAnimationResource=resourceManager.get("String_Node_Str");
  Resource<SpriteSheet> fallAnimationResource=resourceManager.get("String_Node_Str");
  Sprite sprite=new Sprite(idleAnimationResource.get().getFrame(0));
  float x=0f;
  float y=2f;
  float size=1f;
  float width=0.15f;
  float height=1f;
  Vector2[] bodyShape=Box2dUtils.createRectangle(width,height);
  Body body=physicsObjectsFactory.createPolygonBody(x,y,bodyShape,true,0.1f,1f,0.15f);
  mainCharacter=world.createEntity();
  mainCharacter.setTag("String_Node_Str");
  body.setUserData(mainCharacter);
  PhysicsComponent physicsComponent=new PhysicsComponent(body);
  physicsComponent.setVertices(bodyShape);
  mainCharacter.setGroup("String_Node_Str");
  mainCharacter.addComponent(physicsComponent);
  mainCharacter.addComponent(new SpatialComponent(new Box2dPositionProperty(body),PropertyBuilder.vector2(size,size),new Box2dAngleProperty(body)));
  mainCharacter.addComponent(new SpriteComponent(sprite,1,new Vector2(0.5f,0.5f),new Color(Color.WHITE)));
  SpriteSheet[] spriteSheets=new SpriteSheet[]{walkingAnimationResource.get(),idleAnimationResource.get(),jumpAnimationResource.get(),fallAnimationResource.get()};
  FrameAnimation[] animations=new FrameAnimation[]{new FrameAnimationImpl(150,2,true),new FrameAnimationImpl(new int[]{1000,50},true),new FrameAnimationImpl(100,1,false),new FrameAnimationImpl(new int[]{400,200},true)};
  mainCharacter.addComponent(new AnimationComponent(spriteSheets,animations));
  mainCharacter.addComponent(new CameraFollowComponent(cameraData));
  mainCharacter.addComponent(new HealthComponent(new Container(50f,50f)));
  CharacterController characterController=null;
  if (Gdx.app.getType() == ApplicationType.Desktop)   characterController=new KeyboardCharacterController();
 else   if (Gdx.input.isPeripheralAvailable(Peripheral.MultitouchScreen))   characterController=new MultitouchController(new LibgdxPointer(0),new LibgdxPointer(1));
 else   characterController=new SingleTouchController(new LibgdxPointer(0));
  mainCharacter.addComponent(new CharacterControllerComponent(characterController));
  controllers.add(characterController);
  mainCharacter.refresh();
}

Fixed version (ground truth):
void createMainCharacter(){
  Resource<SpriteSheet> walkingAnimationResource=resourceManager.get("String_Node_Str");
  Resource<SpriteSheet> idleAnimationResource=resourceManager.get("String_Node_Str");
  Resource<SpriteSheet> jumpAnimationResource=resourceManager.get("String_Node_Str");
  Resource<SpriteSheet> fallAnimationResource=resourceManager.get("String_Node_Str");
  Sprite sprite=new Sprite(idleAnimationResource.get().getFrame(0));
  float x=0f;
  float y=2f;
  float size=1f;
  float width=0.15f;
  float height=1f;
  Vector2[] bodyShape=Box2dUtils.createRectangle(width,height);
  Body body=physicsObjectsFactory.createPolygonBody(x,y,bodyShape,true,0.1f,1f,0f);
  mainCharacter=world.createEntity();
  mainCharacter.setTag("String_Node_Str");
  body.setUserData(mainCharacter);
  PhysicsComponent physicsComponent=new PhysicsComponent(body);
  physicsComponent.setVertices(bodyShape);
  mainCharacter.setGroup("String_Node_Str");
  mainCharacter.addComponent(physicsComponent);
  mainCharacter.addComponent(new SpatialComponent(new Box2dPositionProperty(body),PropertyBuilder.vector2(size,size),new Box2dAngleProperty(body)));
  mainCharacter.addComponent(new SpriteComponent(sprite,1,new Vector2(0.5f,0.5f),new Color(Color.WHITE)));
  SpriteSheet[] spriteSheets=new SpriteSheet[]{walkingAnimationResource.get(),idleAnimationResource.get(),jumpAnimationResource.get(),fallAnimationResource.get()};
  FrameAnimation[] animations=new FrameAnimation[]{new FrameAnimationImpl(150,2,true),new FrameAnimationImpl(new int[]{1000,50},true),new FrameAnimationImpl(100,1,false),new FrameAnimationImpl(new int[]{400,200},true)};
  mainCharacter.addComponent(new AnimationComponent(spriteSheets,animations));
  mainCharacter.addComponent(new CameraFollowComponent(cameraData));
  mainCharacter.addComponent(new HealthComponent(new Container(50f,50f)));
  CharacterController characterController=null;
  if (Gdx.app.getType() == ApplicationType.Desktop)   characterController=new KeyboardCharacterController();
 else   if (Gdx.input.isPeripheralAvailable(Peripheral.MultitouchScreen))   characterController=new MultitouchController(new LibgdxPointer(0),new LibgdxPointer(1));
 else   characterController=new SingleTouchController(new LibgdxPointer(0));
  mainCharacter.addComponent(new CharacterControllerComponent(characterController));
  controllers.add(characterController);
  mainCharacter.refresh();
}