Program: 13881
Project: 13881
Buggy source:
public void addTiles(boolean finished){
  int tileIndex;
  if (finished) {
    tileIndex=1;
  }
 else {
    tileIndex=0;
  }
  detachChildren();
  Tile[][] field=gameService.getLevel().getField();
  int width=field.length;
  int heigth=field[0].length;
  tileSprites=new TileSprite[width][heigth];
  int tilePositionY=0;
  for (int y=0; y < heigth; y++) {
    int tilePositionX=0;
    for (int x=0; x < width; x++) {
      if (field[x][y].getShortcut() != 'n') {
        TextureRegion pTextureRegion=tileRegionMap.get(field[x][y].getShortcut());
        TextureRegion pTextureRegionFilled=tileRegionMap.get(Character.toUpperCase(field[x][y].getShortcut()));
        List<ITextureRegion> textureRegions=Arrays.<ITextureRegion>asList(pTextureRegion,pTextureRegionFilled);
switch (field[x][y].getTileType()) {
case PUZZLE:
          TileSprite tileSprite=new TileSprite(tilePositionX,tilePositionY,spacePerTile,spacePerTile,textureRegions,vbom);
        tileSprite.setITextureRegionIndex(tileIndex);
      attachChild(tileSprite);
    tileSprites[x][y]=tileSprite;
  break;
case FINISH:
finish=createFinishAnsStart(x,y,tilePositionX,tilePositionY,textureRegions,field);
finish.setITextureRegionIndex(tileIndex);
break;
case START:
start=createFinishAnsStart(x,y,tilePositionX,tilePositionY,textureRegions,field);
start.setITextureRegionIndex(tileIndex);
break;
default :
break;
}
}
tilePositionX+=spacePerTile;
}
tilePositionY+=spacePerTile;
}
attachChild(new Sprite(spacePerTile,spacePerTile,spacePerTile * (width - 2),spacePerTile * (width - 2),tilesBorderRegion,vbom));
}

Fixed version (ground truth):
public void addTiles(boolean finished){
  int tileIndex;
  if (finished) {
    tileIndex=1;
  }
 else {
    tileIndex=0;
  }
  detachChildren();
  if (active) {
    oneModifierFinished(true);
  }
  Tile[][] field=gameService.getLevel().getField();
  int width=field.length;
  int heigth=field[0].length;
  tileSprites=new TileSprite[width][heigth];
  int tilePositionY=0;
  for (int y=0; y < heigth; y++) {
    int tilePositionX=0;
    for (int x=0; x < width; x++) {
      if (field[x][y].getShortcut() != 'n') {
        TextureRegion pTextureRegion=tileRegionMap.get(field[x][y].getShortcut());
        TextureRegion pTextureRegionFilled=tileRegionMap.get(Character.toUpperCase(field[x][y].getShortcut()));
        List<ITextureRegion> textureRegions=Arrays.<ITextureRegion>asList(pTextureRegion,pTextureRegionFilled);
switch (field[x][y].getTileType()) {
case PUZZLE:
          TileSprite tileSprite=new TileSprite(tilePositionX,tilePositionY,spacePerTile,spacePerTile,textureRegions,vbom);
        tileSprite.setITextureRegionIndex(tileIndex);
      attachChild(tileSprite);
    tileSprites[x][y]=tileSprite;
  break;
case FINISH:
TileSprite finish=createFinishAnsStart(x,y,tilePositionX,tilePositionY,textureRegions,field);
finish.setITextureRegionIndex(tileIndex);
break;
case START:
TileSprite start=createFinishAnsStart(x,y,tilePositionX,tilePositionY,textureRegions,field);
start.setITextureRegionIndex(tileIndex);
break;
default :
break;
}
}
tilePositionX+=spacePerTile;
}
tilePositionY+=spacePerTile;
}
attachChild(new Sprite(spacePerTile,spacePerTile,spacePerTile * (width - 2),spacePerTile * (width - 2),tilesBorderRegion,vbom));
}