Program: 83614
Project: 83614
Buggy source:
@Override public void onSurfaceChanged(GL10 gl,int width,int height){
  gl.glViewport(0,0,width,height);
  Log.v(Pax.TAG,String.format("String_Node_Str",width,height));
  gl.glMatrixMode(GL10.GL_PROJECTION);
  gl.glLoadIdentity();
  mWidth=width;
  mHeight=height;
  float maxDimension=Math.max(width,height);
  mGameWidth=GAME_VIEW_SIZE * width / maxDimension;
  mGameHeight=GAME_VIEW_SIZE * height / maxDimension;
  float halfX=mGameWidth / 2;
  float halfY=mGameHeight / 2;
  GLU.gluOrtho2D(gl,-halfX,halfX,-halfY,halfY);
  gl.glMatrixMode(GL10.GL_MODELVIEW);
  gl.glLoadIdentity();
  float highlightWidth=Math.min(mGameWidth,mGameHeight) / 4;
  mButtonSize=Math.max(mGameWidth,mGameHeight) / 15;
  Resources res=mContext.getResources();
  if (Pax.BACKGROUND_IMAGE) {
    mBackgroundPainter=Painter.CreateMinSize(gl,mVBOSupport,BitmapFactory.decodeResource(res,R.drawable.background),Math.max(mGameWidth,mGameHeight));
  }
  mHighlight=Painter.CreateSize(gl,mVBOSupport,BitmapFactory.decodeResource(res,R.drawable.white20),highlightWidth,mButtonSize);
  mBuildTargetPainters=new Painter[4];
  mBuildTargetPainters[0]=Painter.CreateMinSize(gl,mVBOSupport,BitmapFactory.decodeResource(res,R.drawable.fighter_outline),mButtonSize);
  mBuildTargetPainters[1]=Painter.CreateMinSize(gl,mVBOSupport,BitmapFactory.decodeResource(res,R.drawable.bomber_outline),mButtonSize);
  mBuildTargetPainters[2]=Painter.CreateMinSize(gl,mVBOSupport,BitmapFactory.decodeResource(res,R.drawable.frigate_outline),mButtonSize);
  mBuildTargetPainters[3]=Painter.CreateMinSize(gl,mVBOSupport,BitmapFactory.decodeResource(res,R.drawable.upgrade_outline),mButtonSize);
}

Fixed version (ground truth):
@Override public void onSurfaceChanged(GL10 gl,int width,int height){
  gl.glViewport(0,0,width,height);
  Log.v(Pax.TAG,String.format("String_Node_Str",width,height));
  gl.glMatrixMode(GL10.GL_PROJECTION);
  gl.glLoadIdentity();
  mWidth=width;
  mHeight=height;
  float maxDimension=Math.max(width,height);
  mGameWidth=GAME_VIEW_SIZE * width / maxDimension;
  mGameHeight=GAME_VIEW_SIZE * height / maxDimension;
  float halfX=mGameWidth / 2;
  float halfY=mGameHeight / 2;
  GLU.gluOrtho2D(gl,-halfX,halfX,-halfY,halfY);
  gl.glMatrixMode(GL10.GL_MODELVIEW);
  gl.glLoadIdentity();
  float highlightWidth=Math.min(mGameWidth,mGameHeight) / 4;
  mButtonSize=Math.max(mGameWidth,mGameHeight) / 15;
  Resources res=mContext.getResources();
  if (Pax.BACKGROUND_IMAGE) {
    mBackgroundPainter=Painter.CreateMinSize(gl,mVBOSupport,BitmapFactory.decodeResource(res,R.drawable.background),Math.max(mGameWidth,mGameHeight));
  }
  mBuildTargetPainters=new Painter[4];
  mBuildTargetPainters[0]=Painter.CreateMinSize(gl,mVBOSupport,BitmapFactory.decodeResource(res,R.drawable.fighter_outline),mButtonSize);
  mBuildTargetPainters[1]=Painter.CreateMinSize(gl,mVBOSupport,BitmapFactory.decodeResource(res,R.drawable.bomber_outline),mButtonSize);
  mBuildTargetPainters[2]=Painter.CreateMinSize(gl,mVBOSupport,BitmapFactory.decodeResource(res,R.drawable.frigate_outline),mButtonSize);
  mBuildTargetPainters[3]=Painter.CreateMinSize(gl,mVBOSupport,BitmapFactory.decodeResource(res,R.drawable.upgrade_outline),mButtonSize);
}