Program: 87290
Project: 87290
Buggy source:
@Override public void onCreate(Bundle savedInstanceState){
  super.onCreate(savedInstanceState);
  setContentView(R.layout.file_browser);
  mListView=(ListView)findViewById(R.id.filebrowser_listview);
  mList=new ArrayList<Map<String,Object>>();
  if (mCurrentPath != null) {
    File file=new File(mCurrentPath);
    if (!file.exists())     mCurrentPath=ROOT;
  }
 else {
    mCurrentPath=ROOT;
  }
  mList=new ArrayList<Map<String,Object>>();
  mListView.setOnItemClickListener(new OnItemClickListener(){
    public void onItemClick(    AdapterView<?> parent,    View view,    int pos,    long id){
      Map<String,Object> item=(Map<String,Object>)parent.getItemAtPosition(pos);
      String mPath=(String)item.get(FILEINFO_KEY_PATH);
      File mFile=new File(mPath);
      if (!mFile.exists()) {
        return;
      }
      if (Intent.ACTION_GET_CONTENT.equalsIgnoreCase(FileBrowserActivity.this.getIntent().getAction())) {
        if (mFile.isDirectory()) {
          mCurrentPath=mPath;
          mListView.setAdapter(getFileListAdapterSorted(mCurrentPath,mSortType));
        }
 else {
          FileBrowserActivity.this.setResult(Activity.RESULT_OK,new Intent(null,Uri.fromFile(mFile)));
          FileBrowserActivity.this.finish();
        }
      }
 else {
        if (mFile.isDirectory()) {
          mCurrentPath=mPath;
          mListView.setAdapter(getFileListAdapterSorted(mCurrentPath,mSortType));
        }
 else {
          openFile(mFile);
        }
        mItemSelected=mListView.getSelectedItemPosition();
        mItemFirst=mListView.getFirstVisiblePosition();
        mItemLast=mListView.getLastVisiblePosition();
        View mView=mListView.getChildAt(mItemSelected - mItemFirst);
        if (mView != null) {
          mItemTop=mView.getTop();
        }
      }
    }
  }
);
  Button btn_home=(Button)findViewById(R.id.btn_home);
  btn_home.setOnClickListener(new OnClickListener(){
    public void onClick(    View v){
      if (mCurrentPath.equals(ROOT))       return;
      mCurrentPath=ROOT;
      DeviceScan();
    }
  }
);
  Button btn_back=(Button)findViewById(R.id.btn_back);
  btn_back.setOnClickListener(new OnClickListener(){
    public void onClick(    View v){
      if (!mCurrentPath.equals(ROOT)) {
        File file=new File(mCurrentPath);
        String parent_path=file.getParent();
        if (isDeviceFile(mCurrentPath)) {
          mCurrentPath=ROOT;
          DeviceScan();
        }
 else {
          mCurrentPath=parent_path;
          mListView.setAdapter(getFileListAdapterSorted(parent_path,mSortType));
        }
      }
    }
  }
);
  Button btn_style=(Button)findViewById(R.id.btn_style);
  btn_style.setOnClickListener(new OnClickListener(){
    public void onClick(    View v){
      Log.i(TAG,"String_Node_Str");
    }
  }
);
  Button btn_search=(Button)findViewById(R.id.btn_search);
  boolean isEnableSearch=false;
  if (!isEnableSearch)   btn_search.setVisibility(View.GONE);
  btn_search.setOnClickListener(new OnClickListener(){
    public void onClick(    View v){
      Log.i(TAG,"String_Node_Str");
    }
  }
);
  Button btn_about=(Button)findViewById(R.id.btn_about);
  btn_about.setOnClickListener(new OnClickListener(){
    public void onClick(    View v){
      Log.i(TAG,"String_Node_Str");
    }
  }
);
}

Fixed version (ground truth):
@Override public void onCreate(Bundle savedInstanceState){
  super.onCreate(savedInstanceState);
  setContentView(R.layout.file_browser);
  Log.i(TAG,"String_Node_Str");
  mListView=(ListView)findViewById(R.id.filebrowser_listview);
  if (mCurrentPath != null) {
    File file=new File(mCurrentPath);
    if (!file.exists())     mCurrentPath=ROOT;
  }
 else {
    mCurrentPath=ROOT;
  }
  mListView.setOnItemClickListener(new OnItemClickListener(){
    public void onItemClick(    AdapterView<?> parent,    View view,    int pos,    long id){
      Map<String,Object> item=(Map<String,Object>)parent.getItemAtPosition(pos);
      String mPath=(String)item.get(FILEINFO_KEY_PATH);
      File mFile=new File(mPath);
      if (!mFile.exists()) {
        return;
      }
      if (Intent.ACTION_GET_CONTENT.equalsIgnoreCase(FileBrowserActivity.this.getIntent().getAction())) {
        if (mFile.isDirectory()) {
          mCurrentPath=mPath;
          mListView.setAdapter(getFileListAdapterSorted(mCurrentPath,mSortType));
        }
 else {
          FileBrowserActivity.this.setResult(Activity.RESULT_OK,new Intent(null,Uri.fromFile(mFile)));
          FileBrowserActivity.this.finish();
        }
      }
 else {
        if (mFile.isDirectory()) {
          mCurrentPath=mPath;
          mListView.setAdapter(getFileListAdapterSorted(mCurrentPath,mSortType));
        }
 else {
          openFile(mFile);
        }
        mItemSelected=mListView.getSelectedItemPosition();
        mItemFirst=mListView.getFirstVisiblePosition();
        mItemLast=mListView.getLastVisiblePosition();
        View mView=mListView.getChildAt(mItemSelected - mItemFirst);
        if (mView != null) {
          mItemTop=mView.getTop();
        }
      }
    }
  }
);
  Button btn_home=(Button)findViewById(R.id.btn_home);
  btn_home.setOnClickListener(new OnClickListener(){
    public void onClick(    View v){
      if (mCurrentPath.equals(ROOT))       return;
      mCurrentPath=ROOT;
      DeviceScan();
    }
  }
);
  Button btn_back=(Button)findViewById(R.id.btn_back);
  btn_back.setOnClickListener(new OnClickListener(){
    public void onClick(    View v){
      if (!mCurrentPath.equals(ROOT)) {
        File file=new File(mCurrentPath);
        String parent_path=file.getParent();
        if (isDeviceFile(mCurrentPath)) {
          mCurrentPath=ROOT;
          DeviceScan();
        }
 else {
          mCurrentPath=parent_path;
          mListView.setAdapter(getFileListAdapterSorted(parent_path,mSortType));
        }
      }
    }
  }
);
  Button btn_style=(Button)findViewById(R.id.btn_style);
  btn_style.setOnClickListener(new OnClickListener(){
    public void onClick(    View v){
      Log.i(TAG,"String_Node_Str");
    }
  }
);
  Button btn_search=(Button)findViewById(R.id.btn_search);
  boolean isEnableSearch=false;
  if (!isEnableSearch)   btn_search.setVisibility(View.GONE);
  btn_search.setOnClickListener(new OnClickListener(){
    public void onClick(    View v){
      Log.i(TAG,"String_Node_Str");
    }
  }
);
  Button btn_about=(Button)findViewById(R.id.btn_about);
  btn_about.setOnClickListener(new OnClickListener(){
    public void onClick(    View v){
      Log.i(TAG,"String_Node_Str");
    }
  }
);
}