Program: 43077
Project: 43077
Buggy source:
private void playSoundEffect(int effectType,int volume){
synchronized (mSoundEffectsLock) {
    if (mSoundPool == null) {
      return;
    }
    if (SOUND_EFFECT_FILES_MAP[effectType][1] > 0) {
      float v=(float)volume / 1000.0f;
      mSoundPool.play(SOUND_EFFECT_FILES_MAP[effectType][1],v,v,0,0,1.0f);
    }
 else {
      MediaPlayer mediaPlayer=new MediaPlayer();
      if (mediaPlayer != null) {
        try {
          String filePath=Environment.getRootDirectory() + SOUND_EFFECTS_PATH + SOUND_EFFECT_FILES[SOUND_EFFECT_FILES_MAP[effectType][0]];
          mediaPlayer.setDataSource(filePath);
          mediaPlayer.setAudioStreamType(AudioSystem.STREAM_SYSTEM);
          mediaPlayer.prepare();
          mediaPlayer.setOnCompletionListener(new OnCompletionListener(){
            public void onCompletion(            MediaPlayer mp){
              cleanupPlayer(mp);
            }
          }
);
          mediaPlayer.setOnErrorListener(new OnErrorListener(){
            public boolean onError(            MediaPlayer mp,            int what,            int extra){
              cleanupPlayer(mp);
              return true;
            }
          }
);
          mediaPlayer.start();
        }
 catch (        IOException ex) {
          Log.w(TAG,"String_Node_Str" + ex);
        }
catch (        IllegalArgumentException ex) {
          Log.w(TAG,"String_Node_Str" + ex);
        }
catch (        IllegalStateException ex) {
          Log.w(TAG,"String_Node_Str" + ex);
        }
      }
    }
  }
}

Fixed version (ground truth):
private void playSoundEffect(int effectType,int volume){
synchronized (mSoundEffectsLock) {
    if (mSoundPool == null) {
      return;
    }
    float volFloat;
    if (volume < 0) {
      float dBPerStep=(float)((0.5 * 100) / MAX_STREAM_VOLUME[AudioSystem.STREAM_MUSIC]);
      int musicVolIndex=(mStreamStates[AudioSystem.STREAM_MUSIC].mIndex + 5) / 10;
      float musicVoldB=dBPerStep * (musicVolIndex - MAX_STREAM_VOLUME[AudioSystem.STREAM_MUSIC]);
      volFloat=(float)Math.pow(10,(musicVoldB - 3) / 20);
    }
 else {
      volFloat=(float)volume / 1000.0f;
    }
    if (SOUND_EFFECT_FILES_MAP[effectType][1] > 0) {
      mSoundPool.play(SOUND_EFFECT_FILES_MAP[effectType][1],volFloat,volFloat,0,0,1.0f);
    }
 else {
      MediaPlayer mediaPlayer=new MediaPlayer();
      if (mediaPlayer != null) {
        try {
          String filePath=Environment.getRootDirectory() + SOUND_EFFECTS_PATH + SOUND_EFFECT_FILES[SOUND_EFFECT_FILES_MAP[effectType][0]];
          mediaPlayer.setDataSource(filePath);
          mediaPlayer.setAudioStreamType(AudioSystem.STREAM_SYSTEM);
          mediaPlayer.prepare();
          mediaPlayer.setVolume(volFloat,volFloat);
          mediaPlayer.setOnCompletionListener(new OnCompletionListener(){
            public void onCompletion(            MediaPlayer mp){
              cleanupPlayer(mp);
            }
          }
);
          mediaPlayer.setOnErrorListener(new OnErrorListener(){
            public boolean onError(            MediaPlayer mp,            int what,            int extra){
              cleanupPlayer(mp);
              return true;
            }
          }
);
          mediaPlayer.start();
        }
 catch (        IOException ex) {
          Log.w(TAG,"String_Node_Str" + ex);
        }
catch (        IllegalArgumentException ex) {
          Log.w(TAG,"String_Node_Str" + ex);
        }
catch (        IllegalStateException ex) {
          Log.w(TAG,"String_Node_Str" + ex);
        }
      }
    }
  }
}