Program: 10953
Project: 10953
Buggy source:
@Test public void testCreateHDAddress(){
  try {
    ConnectHttps.trustAllCerts();
    TestImplAbstractApp appAndroid=new TestImplAbstractApp();
    appAndroid.construct();
    ECKey ecKey=new DumpedPrivateKey("String_Node_Str").getKey();
    String address=ecKey.toAddress();
    GetHDMBIdRandomApi getHDMBIdRandomApi=new GetHDMBIdRandomApi(address);
    getHDMBIdRandomApi.handleHttpGet();
    long randomKey=getHDMBIdRandomApi.getResult();
    byte[] decryptedPassword=new byte[32];
    for (int i=0; i < decryptedPassword.length; i++) {
      decryptedPassword[i]=0;
    }
    String message=Utils.format(HDMBId.BITID_STRING,address,Utils.bytesToHexString(decryptedPassword),randomKey);
    byte[] hash=Utils.getPreSignMessage(message);
    byte[] signBytes=ecKey.signHash(hash,null);
    UploadHDMBidApi uploadHDMBidApi=new UploadHDMBidApi(address,address,signBytes,decryptedPassword);
    uploadHDMBidApi.handleHttpPost();
    String str=uploadHDMBidApi.getResult();
    HDMAddress.Pubs pubs=new HDMAddress.Pubs(ecKey.getPubKey(),ecKey.getPubKey(),null,0);
    List<HDMAddress.Pubs> pubsList=new ArrayList<HDMAddress.Pubs>();
    pubsList.add(pubs);
    CreateHDMAddressApi createHDMAddressApi=new CreateHDMAddressApi(address,pubsList,decryptedPassword);
    createHDMAddressApi.handleHttpPost();
    List<byte[]> pubList=createHDMAddressApi.getResult();
    for (    byte[] bytes : pubList) {
      log.info(Utils.bytesToHexString(bytes));
    }
    List<byte[]> unsigns=new ArrayList<byte[]>();
    unsigns.add(Utils.doubleDigest(decryptedPassword));
    SignatureHDMApi signatureHDMApi=new SignatureHDMApi(address,0,decryptedPassword,unsigns);
    signatureHDMApi.handleHttpPost();
    List<byte[]> bytesList=signatureHDMApi.getResult();
    for (    byte[] bytes : bytesList) {
      log.info(Utils.bytesToHexString(bytes));
    }
  }
 catch (  Exception e) {
    e.printStackTrace();
  }
}

Fixed version (ground truth):
@Test public void testCreateHDAddress(){
  try {
    ConnectHttps.trustAllCerts();
    TestImplAbstractApp appAndroid=new TestImplAbstractApp();
    appAndroid.construct();
    ECKey ecKey=new DumpedPrivateKey("String_Node_Str").getKey();
    String address=ecKey.toAddress();
    GetHDMBIdRandomApi getHDMBIdRandomApi=new GetHDMBIdRandomApi(address);
    getHDMBIdRandomApi.handleHttpGet();
    long randomKey=getHDMBIdRandomApi.getResult();
    byte[] decryptedPassword=new byte[32];
    for (int i=0; i < decryptedPassword.length; i++) {
      decryptedPassword[i]=0;
    }
    String message=Utils.format(HDMBId.BITID_STRING,address,Utils.bytesToHexString(decryptedPassword),randomKey);
    byte[] hash=Utils.getPreSignMessage(message);
    byte[] signBytes=ecKey.signHash(hash,null);
    UploadHDMBidApi uploadHDMBidApi=new UploadHDMBidApi(address,address,signBytes,decryptedPassword);
    uploadHDMBidApi.handleHttpPost();
    boolean str=uploadHDMBidApi.getResult();
    HDMAddress.Pubs pubs=new HDMAddress.Pubs(ecKey.getPubKey(),ecKey.getPubKey(),null,0);
    List<HDMAddress.Pubs> pubsList=new ArrayList<HDMAddress.Pubs>();
    pubsList.add(pubs);
    CreateHDMAddressApi createHDMAddressApi=new CreateHDMAddressApi(address,pubsList,decryptedPassword);
    createHDMAddressApi.handleHttpPost();
    List<byte[]> pubList=createHDMAddressApi.getResult();
    for (    byte[] bytes : pubList) {
      log.info(Utils.bytesToHexString(bytes));
    }
    List<byte[]> unsigns=new ArrayList<byte[]>();
    unsigns.add(Utils.doubleDigest(decryptedPassword));
    SignatureHDMApi signatureHDMApi=new SignatureHDMApi(address,0,decryptedPassword,unsigns);
    signatureHDMApi.handleHttpPost();
    List<byte[]> bytesList=signatureHDMApi.getResult();
    for (    byte[] bytes : bytesList) {
      log.info(Utils.bytesToHexString(bytes));
    }
  }
 catch (  Exception e) {
    e.printStackTrace();
  }
}