Buggy code:
public class TexturedMesh extends Shape { public static final int VERTEX_INDEX_X = 0 ; public static final int VERTEX_INDEX_Y = ( TexturedMesh . VERTEX_INDEX_X ) + 1 ; public static final int COLOR_INDEX = ( TexturedMesh . VERTEX_INDEX_Y ) + 1 ; public static final int TEXTURECOORDINATES_INDEX_U = ( TexturedMesh . COLOR_INDEX ) + 1 ; public static final int TEXTURECOORDINATES_INDEX_V = ( TexturedMesh . TEXTURECOORDINATES_INDEX_U ) + 1 ; public static final int VERTEX_SIZE = 5 ; public static final VertexBufferObjectAttributes VERTEXBUFFEROBJECTATTRIBUTES_DEFAULT = new VertexBufferObjectAttributesBuilder ( 3 ) . add ( ATTRIBUTE_POSITION_LOCATION , ATTRIBUTE_POSITION , 2 , GL_FLOAT , false ) . add ( ATTRIBUTE_COLOR_LOCATION , ATTRIBUTE_COLOR , 4 , GL_UNSIGNED_BYTE , true ) . add ( ATTRIBUTE_TEXTURECOORDINATES_LOCATION , ATTRIBUTE_TEXTURECOORDINATES , 2 , GL_FLOAT , false ) . build ( ) ; protected final TexturedMesh . ITexturedMeshVertexBufferObject mMeshVertexBufferObject ; private int mVertexCountToDraw ; private int mDrawMode ; protected ITextureRegion mTextureRegion ; public TexturedMesh ( final float pX , final float pY , final float [ ] pBufferData , final int pVertexCount , final TexturedMesh . DrawMode pDrawMode , final VertexBufferObjectManager pVertexBufferObjectManager ) { } public TexturedMesh ( final float pX , final float pY , final float [ ] pBufferData , final int pVertexCount , final TexturedMesh . DrawMode pDrawMode , final ITextureRegion pTextureRegion , final VertexBufferObjectManager pVertexBufferObjectManager ) { } public TexturedMesh ( final float pX , final float pY , final float [ ] pBufferData , final int pVertexCount , final TexturedMesh . DrawMode pDrawMode , final VertexBufferObjectManager pVertexBufferObjectManager , final DrawType pDrawType ) { } public TexturedMesh ( final float pX , final float pY , final float [ ] pBufferData , final int pVertexCount , final TexturedMesh . DrawMode pDrawMode , final ITextureRegion pTextureRegion , final VertexBufferObjectManager pVertexBufferObjectManager , final DrawType pDrawType ) { } public TexturedMesh ( final float pX , final float pY , final float [ ] pVertexX , final float [ ] pVertexY , final TexturedMesh . DrawMode pDrawMode , final ITextureRegion pTextureRegion , final VertexBufferObjectManager pVertexBufferObjectManager , final DrawType pDrawType ) { } public TexturedMesh ( final float pX , final float pY , final int pVertexCount , final TexturedMesh . DrawMode pDrawMode , final ITextureRegion pTextureRegion , final TexturedMesh . ITexturedMeshVertexBufferObject pMeshVertexBufferObject ) { } public float [ ] getBufferData ( ) { } public void setVertexCountToDraw ( final int pVertexCountToDraw ) { } public void setDrawMode ( final TexturedMesh . DrawMode pDrawMode ) { } public ITextureRegion getTextureRegion ( ) { } @ Override public TexturedMesh . ITexturedMeshVertexBufferObject getVertexBufferObject ( ) { } @ Override public void reset ( ) { } @ Override protected void preDraw ( final GLState pGLState , final Camera pCamera ) { } @ Override protected void draw ( final GLState pGLState , final Camera pCamera ) { } @ Override protected void postDraw ( final GLState pGLState , final Camera pCamera ) { } @ Override protected void onUpdateColor ( ) { } @ Override protected void onUpdateVertices ( ) { } protected void onUpdateTextureCoordinates ( ) { } @ Override @ Deprecated public boolean contains ( final float pX , final float pY ) { } @ Override public boolean collidesWith ( final IShape pOtherShape ) { } protected static float [ ] buildVertexList ( float [ ] pVertexX , float [ ] pVertexY ) { } protected static void updateVertexList ( float [ ] pVertexX , float [ ] pVertexY , float [ ] pBufferData ) { } public static interface ITexturedMeshVertexBufferObject extends IVertexBufferObject { public float [ ] getBufferData ( ) { } public void onUpdateColor ( final TexturedMesh pMesh ) ; public void onUpdateVertices ( final TexturedMesh pMesh ) { } public void onUpdateTextureCoordinates ( final TexturedMesh pMesh ) { } } public static class HighPerformanceTexturedMeshVertexBufferObject extends HighPerformanceVertexBufferObject implements TexturedMesh . ITexturedMeshVertexBufferObject { private final int mVertexCount ; public HighPerformanceTexturedMeshVertexBufferObject ( final VertexBufferObjectManager pVertexBufferObjectManager , final float [ ] pBufferData , final int pVertexCount , final DrawType pDrawType , final boolean pAutoDispose , final VertexBufferObjectAttributes pVertexBufferObjectAttributes ) { } @ Override public void onUpdateColor ( final TexturedMesh pMesh ) { final float [ ] bufferData = this . mBufferData ; <START_BUG> final float packedColor = pMesh . getColor ( ) . getFloatPacked ( ) ; <END_BUG> for ( int i = 0 ; i < ( this . mVertexCount ) ; i ++ ) { bufferData [ ( ( i * ( TexturedMesh . VERTEX_SIZE ) ) + ( TexturedMesh . COLOR_INDEX ) ) ] = packedColor ; } this . setDirtyOnHardware ( ) ; } @ Override public void onUpdateVertices ( final TexturedMesh pMesh ) { } @ Override public void onUpdateTextureCoordinates ( final TexturedMesh pMesh ) { } } public static enum DrawMode { POINTS ( GLES20 . GL_POINTS ) , LINE_STRIP ( GLES20 . GL_LINE_STRIP ) , LINE_LOOP ( GLES20 . GL_LINE_LOOP ) , LINES ( GLES20 . GL_LINES ) , TRIANGLE_STRIP ( GLES20 . GL_TRIANGLE_STRIP ) , TRIANGLE_FAN ( GLES20 . GL_TRIANGLE_FAN ) , TRIANGLES ( GLES20 . GL_TRIANGLES ) ; public final int mDrawMode ; private DrawMode ( final int pDrawMode ) { } public int getDrawMode ( ) { } } }

Fix:
final float packedColor = pMesh . getColor ( ) . getABGRPackedFloat ( ) ;