Program: 50849
Project: 50849
Buggy source:
private void loadWalletFromProtobuf(){
  if (walletFile.exists()) {
    final long start=System.currentTimeMillis();
    FileInputStream walletStream=null;
    try {
      walletStream=new FileInputStream(walletFile);
      final WalletProtobufSerializer walletSerializer=new WalletProtobufSerializer();
      final File blockChainFile=new File(getDir("String_Node_Str",Context.MODE_WORLD_READABLE | Context.MODE_WORLD_WRITEABLE),Constants.BLOCKCHAIN_FILENAME);
      if (blockChainFile.exists()) {
        try {
          final BlockStore blockStore=new BoundedOverheadBlockStore(Constants.NETWORK_PARAMETERS,blockChainFile);
          walletSerializer.setChainHeight(blockStore.getChainHead().getHeight());
          blockStore.close();
        }
 catch (        final BlockStoreException x) {
          x.printStackTrace();
        }
      }
      wallet=walletSerializer.readWallet(walletStream);
    }
 catch (    final IOException x) {
      x.printStackTrace();
      Toast.makeText(WalletApplication.this,x.getClass().getName(),Toast.LENGTH_LONG).show();
      wallet=restoreWalletFromBackup();
    }
catch (    final IllegalStateException x) {
      x.printStackTrace();
      Toast.makeText(WalletApplication.this,x.getClass().getName(),Toast.LENGTH_LONG).show();
      wallet=restoreWalletFromBackup();
    }
 finally {
      if (walletStream != null) {
        try {
          walletStream.close();
        }
 catch (        final IOException x) {
          x.printStackTrace();
        }
      }
    }
    if (!wallet.isConsistent()) {
      Toast.makeText(this,"String_Node_Str" + walletFile,Toast.LENGTH_LONG).show();
      wallet=restoreWalletFromBackup();
    }
    if (!wallet.getParams().equals(Constants.NETWORK_PARAMETERS))     throw new Error("String_Node_Str" + wallet.getParams().getId());
    System.out.println("String_Node_Str" + walletFile + "String_Node_Str"+ (System.currentTimeMillis() - start)+ "String_Node_Str");
  }
 else {
    try {
      wallet=restoreWalletFromSnapshot();
    }
 catch (    final FileNotFoundException x) {
      wallet=new Wallet(Constants.NETWORK_PARAMETERS);
      wallet.addKey(new ECKey());
      try {
        protobufSerializeWallet(wallet);
        System.out.println("String_Node_Str" + walletFile + "String_Node_Str");
      }
 catch (      final IOException x2) {
        throw new Error("String_Node_Str",x2);
      }
    }
  }
}

Fixed version (ground truth):
private void loadWalletFromProtobuf(){
  if (walletFile.exists()) {
    final long start=System.currentTimeMillis();
    FileInputStream walletStream=null;
    try {
      walletStream=new FileInputStream(walletFile);
      final WalletProtobufSerializer walletSerializer=new WalletProtobufSerializer();
      final File blockChainFile=new File(getDir("String_Node_Str",Context.MODE_WORLD_READABLE | Context.MODE_WORLD_WRITEABLE),Constants.BLOCKCHAIN_FILENAME);
      if (blockChainFile.exists()) {
        try {
          final BlockStore blockStore=new BoundedOverheadBlockStore(Constants.NETWORK_PARAMETERS,blockChainFile);
          walletSerializer.setChainHeight(blockStore.getChainHead().getHeight());
          blockStore.close();
        }
 catch (        final BlockStoreException x) {
          x.printStackTrace();
        }
      }
      wallet=walletSerializer.readWallet(walletStream);
      System.out.println("String_Node_Str" + walletFile + "String_Node_Str"+ (System.currentTimeMillis() - start)+ "String_Node_Str");
    }
 catch (    final IOException x) {
      x.printStackTrace();
      Toast.makeText(WalletApplication.this,x.getClass().getName(),Toast.LENGTH_LONG).show();
      wallet=restoreWalletFromBackup();
    }
catch (    final IllegalStateException x) {
      x.printStackTrace();
      Toast.makeText(WalletApplication.this,x.getClass().getName(),Toast.LENGTH_LONG).show();
      wallet=restoreWalletFromBackup();
    }
 finally {
      if (walletStream != null) {
        try {
          walletStream.close();
        }
 catch (        final IOException x) {
          x.printStackTrace();
        }
      }
    }
    if (!wallet.isConsistent()) {
      Toast.makeText(this,"String_Node_Str" + walletFile,Toast.LENGTH_LONG).show();
      wallet=restoreWalletFromBackup();
    }
    if (!wallet.getParams().equals(Constants.NETWORK_PARAMETERS))     throw new Error("String_Node_Str" + wallet.getParams().getId());
  }
 else {
    try {
      wallet=restoreWalletFromSnapshot();
    }
 catch (    final FileNotFoundException x) {
      wallet=new Wallet(Constants.NETWORK_PARAMETERS);
      wallet.addKey(new ECKey());
      try {
        protobufSerializeWallet(wallet);
        System.out.println("String_Node_Str" + walletFile + "String_Node_Str");
      }
 catch (      final IOException x2) {
        throw new Error("String_Node_Str",x2);
      }
    }
  }
}