Program: 70905
Project: 70905
Buggy source:
public void setColorsTest() throws IOException {
  PolygonalMesh mesh=createMesh(cubeObj,true);
  mesh.setVertexColoringEnabled();
  check("String_Node_Str",mesh.numColors() == 8);
  check("String_Node_Str",mesh.getVertexColoringEnabled());
  checkIndices(mesh.getColorIndices(),mesh.createVertexIndices());
  check("String_Node_Str",mesh.getColorIndices().length == 28);
  for (int i=0; i < mesh.numColors(); i++) {
    mesh.setColor(i,cubeColors[i]);
  }
  Face f0=mesh.getFace(0);
  Face f3=mesh.getFace(3);
  Face f6=mesh.getFace(6);
  Face f4=mesh.getFace(4);
  mesh.removeFace(f0);
  mesh.removeFace(f3);
  check("String_Node_Str",mesh.numColors() == 8);
  checkIndices(mesh.getColorIndices(),mesh.createVertexIndices());
  check("String_Node_Str",mesh.getColorIndices().length == 22);
  mesh.removeFace(f6);
  mesh.removeFace(f4);
  mesh.removeVertex(mesh.getVertex(5));
  check("String_Node_Str",mesh.numColors() == 7);
  checkColors(mesh.getColors(),createColors(new float[][]{red,green,blue,cyan,yellow,pink,grey}));
  mesh.addVertex(4,4,4);
  checkColors(mesh.getColors(),createColors(new float[][]{red,green,blue,cyan,yellow,pink,grey,grey}));
  checkIndices(mesh.getColorIndices(),mesh.createVertexIndices());
  check("String_Node_Str",mesh.getColorIndices().length == 14);
  mesh.clearColors();
  checkColors(mesh.getColors(),null);
  mesh=createMesh(cubeObj,true);
  mesh.setFeatureColoringEnabled();
  check("String_Node_Str",mesh.getFeatureColoringEnabled());
  check("String_Node_Str",!mesh.getVertexColoringEnabled());
  check("String_Node_Str",mesh.numColors() == 8);
  checkIndices(mesh.getColorIndices(),mesh.createFeatureIndices());
  check("String_Node_Str",mesh.getColorIndices().length == 28);
  for (int i=0; i < mesh.numColors(); i++) {
    mesh.setColor(i,cubeColors[i]);
  }
  f0=mesh.getFace(0);
  f3=mesh.getFace(3);
  f6=mesh.getFace(6);
  f4=mesh.getFace(4);
  mesh.removeFace(f0);
  mesh.removeFace(f3);
  check("String_Node_Str",mesh.numColors() == 6);
  checkIndices(mesh.getColorIndices(),mesh.createFeatureIndices());
  check("String_Node_Str",mesh.getColorIndices().length == 22);
  mesh.removeFace(f6);
  mesh.removeFace(f4);
  mesh.removeVertex(mesh.getVertex(5));
  check("String_Node_Str",mesh.numColors() == 4);
  checkColors(mesh.getColors(),createColors(new float[][]{green,blue,magenta,grey}));
  mesh.addFace(new int[]{3,4,1});
  checkColors(mesh.getColors(),createColors(new float[][]{green,blue,magenta,grey,grey}));
  checkIndices(mesh.getColorIndices(),mesh.createFeatureIndices());
  check("String_Node_Str",mesh.getColorIndices().length == 17);
}

Fixed version (ground truth):
public void setColorsTest() throws IOException {
  PolygonalMesh mesh=createMesh(cubeObj,true);
  mesh.setVertexColoringEnabled();
  check("String_Node_Str",mesh.numColors() == 8);
  check("String_Node_Str",mesh.getVertexColoringEnabled());
  checkIndices(mesh.getColorIndices(),mesh.createVertexIndices());
  check("String_Node_Str",mesh.getColorIndices().length == 28);
  for (int i=0; i < mesh.numColors(); i++) {
    mesh.setColor(i,cubeColors[i]);
  }
  Face f0=mesh.getFace(0);
  Face f3=mesh.getFace(3);
  Face f6=mesh.getFace(6);
  Face f4=mesh.getFace(4);
  mesh.removeFace(f0);
  mesh.removeFace(f3);
  check("String_Node_Str",mesh.numColors() == 8);
  checkIndices(mesh.getColorIndices(),mesh.createVertexIndices());
  check("String_Node_Str",mesh.getColorIndices().length == 22);
  mesh.removeFace(f6);
  mesh.removeFace(f4);
  mesh.removeVertex(mesh.getVertex(5));
  check("String_Node_Str",mesh.numColors() == 7);
  checkColors(mesh.getColors(),createColors(new float[][]{red,green,blue,cyan,yellow,pink,grey}));
  mesh.addVertex(4,4,4);
  checkColors(mesh.getColors(),createColors(new float[][]{red,green,blue,cyan,yellow,pink,grey,grey}));
  checkIndices(mesh.getColorIndices(),mesh.createVertexIndices());
  check("String_Node_Str",mesh.getColorIndices().length == 14);
  mesh.clearColors();
  checkColors(mesh.getColors(),null);
  mesh=createMesh(cubeObj,true);
  mesh.setFeatureColoringEnabled();
  check("String_Node_Str",mesh.getFeatureColoringEnabled());
  check("String_Node_Str",!mesh.getVertexColoringEnabled());
  check("String_Node_Str",mesh.numColors() == 8);
  checkIndices(mesh.getColorIndices(),mesh.createFeatureIndices());
  check("String_Node_Str",mesh.getColorIndices().length == 28);
  for (int i=0; i < mesh.numColors(); i++) {
    mesh.setColor(i,cubeColors[i]);
  }
  f0=mesh.getFace(0);
  f3=mesh.getFace(3);
  f6=mesh.getFace(6);
  f4=mesh.getFace(4);
  mesh.removeFace(f0);
  mesh.removeFace(f3);
  check("String_Node_Str",mesh.numColors() == 6);
  checkIndices(mesh.getColorIndices(),mesh.createFeatureIndices());
  check("String_Node_Str",mesh.getColorIndices().length == 22);
  mesh.removeFace(f6);
  mesh.removeFace(f4);
  mesh.removeVertex(mesh.getVertex(5));
  check("String_Node_Str",mesh.numColors() == 4);
  checkColors(mesh.getColors(),createColors(new float[][]{green,blue,magenta,grey}));
  mesh.addFace(new int[]{3,4,1});
  checkColors(mesh.getColors(),createColors(new float[][]{green,blue,magenta,grey,grey}));
  checkIndices(mesh.getColorIndices(),mesh.createFeatureIndices());
  check("String_Node_Str",mesh.getColorIndices().length == 17);
  mesh.setColor(2,new float[]{1f,0f,0f,0.5f});
  checkColor(mesh.getColor(2),new float[]{1f,0f,0f,0.5f});
  mesh.setColor(2,new float[]{1f,0f,0f});
  checkColor(mesh.getColor(2),new float[]{1f,0f,0f,1f});
}