private void submitTransaction()

in service/src/main/java/org/apache/fineract/cn/stellarbridge/service/internal/horizonadapter/HorizonServerUtilities.java [262:300]


  private <T extends Exception> void submitTransaction(
      final Account transactionSubmitter,
      final Transaction.Builder transactionBuilder,
      final KeyPair signingKeyPair,
      final Supplier<T> failureHandler)
      throws T
  {
    try {
      //final Long sequenceNumberSubmitted = account.getSequenceNumber();

      //noinspection SynchronizationOnLocalVariableOrMethodParameter
      synchronized (transactionSubmitter) {
        final Transaction transaction = transactionBuilder.build();
        transaction.sign(signingKeyPair);
        final SubmitTransactionResponse transactionResponse = server.submitTransaction(transaction);
        if (!transactionResponse.isSuccess()) {
          if (transactionResponse.getExtras() != null) {
            logger.info("Stellar transaction failed, request: {}", transactionResponse.getExtras().getEnvelopeXdr());
            logger.info("Stellar transaction failed, response: {}", transactionResponse.getExtras().getResultXdr());
          }
          else
          {
            logger.info("Stellar transaction failed.  No extra information available.");
          }
          //TODO: resend transaction if you get a bad sequence.
              /*Thread.sleep(6000); //Wait for ledger to close.
              Long sequenceNumberShouldHaveBeen =
                  server.accounts().account(account.getKeypair()).getSequenceNumber();
              if (sequenceNumberSubmitted != sequenceNumberShouldHaveBeen) {
                logger.info("Sequence number submitted: {}, Sequence number should have been: {}",
                    sequenceNumberSubmitted, sequenceNumberShouldHaveBeen);
              }*/
          throw failureHandler.get();
        }
      }
    } catch (final IOException e) {
      throw InvalidConfigurationException.unreachableStellarServerAddress(stellarBridgeProperties.getHorizonAddress());
    }
  }