Program: 83615
Project: 83615
Buggy source:
@Override public void onSurfaceCreated(GL10 gl,EGLConfig config){
  gl.glEnable(GL10.GL_TEXTURE_2D);
  gl.glShadeModel(GL10.GL_SMOOTH);
  gl.glClearColor(0.0f,0.0f,0.0f,0.5f);
  gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT,GL10.GL_NICEST);
  gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
  gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
  gl.glTexEnvx(GL10.GL_TEXTURE_ENV,GL10.GL_TEXTURE_ENV_MODE,GL10.GL_MODULATE);
  gl.glEnable(GL10.GL_BLEND);
  gl.glBlendFunc(GL10.GL_ONE,GL10.GL_ONE_MINUS_SRC_ALPHA);
{
    Log.v("String_Node_Str","String_Node_Str" + gl.glGetString(GL10.GL_VERSION));
    Log.v("String_Node_Str","String_Node_Str");
    String extensions=gl.glGetString(GL10.GL_EXTENSIONS);
    for (    String extension : extensions.split("String_Node_Str")) {
      Log.v("String_Node_Str","String_Node_Str" + extension);
    }
    Log.v("String_Node_Str","String_Node_Str" + gl.glGetString(GL10.GL_RENDERER));
  }
  Resources resources=mContext.getResources();
  Map<Integer,Bitmap> bitmaps=new HashMap<Integer,Bitmap>();
  for (  int resourceID : RESOURCES_TO_LOAD) {
    bitmaps.put(resourceID,BitmapFactory.decodeResource(resources,resourceID));
  }
  mPlayerEntityPainters=new HashMap<Player,Painter[]>();
  for (int player=0; player < Game.NUM_PLAYERS; player++) {
    Painter[] painters=new Painter[Entity.TYPES.length];
switch (player) {
case 0:
      painters[Entity.FIGHTER]=Painter.CreateMinSize(gl,mVBOSupport,bitmaps.get(R.drawable.ohblue),Fighter.DIAMETER);
    painters[Entity.BOMBER]=Painter.CreateMinSize(gl,mVBOSupport,bitmaps.get(R.drawable.ohblue),Bomber.DIAMETER);
  painters[Entity.FRIGATE]=Painter.CreateMinSize(gl,mVBOSupport,bitmaps.get(R.drawable.ohblue),Frigate.DIAMETER);
painters[Entity.FACTORY]=Painter.CreateMinSize(gl,mVBOSupport,bitmaps.get(R.drawable.ohblue),Factory.DIAMETER);
break;
case 1:
default :
painters[Entity.FIGHTER]=Painter.CreateMinSize(gl,mVBOSupport,bitmaps.get(R.drawable.ohred),Fighter.DIAMETER);
painters[Entity.BOMBER]=Painter.CreateMinSize(gl,mVBOSupport,bitmaps.get(R.drawable.ohred),Bomber.DIAMETER);
painters[Entity.FRIGATE]=Painter.CreateMinSize(gl,mVBOSupport,bitmaps.get(R.drawable.ohred),Frigate.DIAMETER);
painters[Entity.FACTORY]=Painter.CreateMinSize(gl,mVBOSupport,bitmaps.get(R.drawable.ohred),Factory.DIAMETER);
break;
}
painters[Entity.LASER]=Painter.CreateMinSize(gl,mVBOSupport,bitmaps.get(R.drawable.laser),Laser.DIAMETER);
painters[Entity.BOMB]=Painter.CreateMinSize(gl,mVBOSupport,bitmaps.get(R.drawable.bomb),Bomb.DIAMETER);
painters[Entity.MISSILE]=Painter.CreateMinSize(gl,mVBOSupport,bitmaps.get(R.drawable.missile),Missile.DIAMETER);
mPlayerEntityPainters.put(mGame.mPlayers[player],painters);
}
for (Bitmap bitmap : bitmaps.values()) {
bitmap.recycle();
}
mBackgroundPainter=null;
}

Fixed version (ground truth):
@Override public void onSurfaceCreated(GL10 gl,EGLConfig config){
  gl.glEnable(GL10.GL_TEXTURE_2D);
  gl.glShadeModel(GL10.GL_SMOOTH);
  gl.glClearColor(0.0f,0.0f,0.0f,0.5f);
  gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT,GL10.GL_NICEST);
  gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
  gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
  gl.glTexEnvx(GL10.GL_TEXTURE_ENV,GL10.GL_TEXTURE_ENV_MODE,GL10.GL_MODULATE);
  gl.glEnable(GL10.GL_BLEND);
  gl.glBlendFunc(GL10.GL_ONE,GL10.GL_ONE_MINUS_SRC_ALPHA);
{
    Log.v("String_Node_Str","String_Node_Str" + gl.glGetString(GL10.GL_VERSION));
    Log.v("String_Node_Str","String_Node_Str");
    String extensions=gl.glGetString(GL10.GL_EXTENSIONS);
    for (    String extension : extensions.split("String_Node_Str")) {
      Log.v("String_Node_Str","String_Node_Str" + extension);
    }
    Log.v("String_Node_Str","String_Node_Str" + gl.glGetString(GL10.GL_RENDERER));
  }
  Resources resources=mContext.getResources();
  Map<Integer,Bitmap> bitmaps=new HashMap<Integer,Bitmap>();
  for (  int resourceID : RESOURCES_TO_LOAD) {
    bitmaps.put(resourceID,BitmapFactory.decodeResource(resources,resourceID));
  }
  mPlayerEntityPainters=new HashMap<Player,Painter[]>();
  for (int player=0; player < Game.NUM_PLAYERS; player++) {
    Painter[] painters=new Painter[Entity.TYPES.length];
switch (player) {
case 0:
      painters[Entity.FIGHTER]=Painter.CreateMinSize(gl,mVBOSupport,bitmaps.get(R.drawable.ohblue),Fighter.DIAMETER);
    painters[Entity.BOMBER]=Painter.CreateMinSize(gl,mVBOSupport,bitmaps.get(R.drawable.ohblue),Bomber.DIAMETER);
  painters[Entity.FRIGATE]=Painter.CreateMinSize(gl,mVBOSupport,bitmaps.get(R.drawable.ohblue),Frigate.DIAMETER);
painters[Entity.FACTORY]=Painter.CreateMinSize(gl,mVBOSupport,bitmaps.get(R.drawable.ohblue),Factory.DIAMETER);
break;
case 1:
default :
painters[Entity.FIGHTER]=Painter.CreateMinSize(gl,mVBOSupport,bitmaps.get(R.drawable.ohred),Fighter.DIAMETER);
painters[Entity.BOMBER]=Painter.CreateMinSize(gl,mVBOSupport,bitmaps.get(R.drawable.ohred),Bomber.DIAMETER);
painters[Entity.FRIGATE]=Painter.CreateMinSize(gl,mVBOSupport,bitmaps.get(R.drawable.ohred),Frigate.DIAMETER);
painters[Entity.FACTORY]=Painter.CreateMinSize(gl,mVBOSupport,bitmaps.get(R.drawable.ohred),Factory.DIAMETER);
break;
}
painters[Entity.LASER]=Painter.CreateMinSize(gl,mVBOSupport,bitmaps.get(R.drawable.laser),Laser.DIAMETER);
painters[Entity.BOMB]=Painter.CreateMinSize(gl,mVBOSupport,bitmaps.get(R.drawable.bomb),Bomb.DIAMETER);
painters[Entity.MISSILE]=Painter.CreateMinSize(gl,mVBOSupport,bitmaps.get(R.drawable.missile),Missile.DIAMETER);
mPlayerEntityPainters.put(mGame.mPlayers[player],painters);
}
mHighlight=Painter.Create(gl,mVBOSupport,bitmaps.get(R.drawable.white20));
for (Bitmap bitmap : bitmaps.values()) {
bitmap.recycle();
}
mBackgroundPainter=null;
}