Syed
Syed

Reputation: 2607

List object adding only one value using java

I'm trying to add a lead id(string) to a list object.. Initially it iterates in a while loop, whichever lead id is null.. i'm adding that leadid to the list object.. after completing the iteration, that list object is handling only last leadid which got failed.. infact it should have other strings too.

Here is my code .

 while(iterLeadIds.hasNext()) {
        String leadId = (String) iterLeadIds.next();
        BankBridgeServiceRequest bankBridgeServiceRequest = new BankBridgeServiceRequest();
        bankBridgeServiceRequest.setLeadId(leadId);
        bankBridgeServiceRequest.setType(BankBridgeMethodType.webservice_Create_Lead);
        LOG.info("Sending to web service Rev Lead ID = " + bankBridgeServiceRequest.getLeadId());
        bankBridgeServiceResponse = bankBridgeService.run(bankBridgeServiceRequest);
        String responseString = bankBridgeServiceResponse.getResponseString();
        List<String> list = new ArrayList<String>();
        if(responseString == null) {
            bankBridgeUtilResponse.setStatus(false);
            list.add(leadId);
            bankBridgeUtilResponse.setFailedLeadIds(list);
            LOG.info("webservice Rev got null response from Lead ID ::"+leadId);

The "list" object should have many lead ids which got failed.

Any changes to be made?

Thanks,

Upvotes: 1

Views: 145

Answers (1)

Eran
Eran

Reputation: 393841

Your problem is that you create the list inside the loop, so the list only contains the last element you added.

Move this :

List<String> list = new ArrayList<String>();

to be before the loop:

List<String> list = new ArrayList<String>();
while(iterLeadIds.hasNext()) {
        String leadId = (String) iterLeadIds.next();
        BankBridgeServiceRequest bankBridgeServiceRequest = new BankBridgeServiceRequest();
        bankBridgeServiceRequest.setLeadId(leadId);
        bankBridgeServiceRequest.setType(BankBridgeMethodType.webservice_Create_Lead);
        LOG.info("Sending to web service Rev Lead ID = " + bankBridgeServiceRequest.getLeadId());
        bankBridgeServiceResponse = bankBridgeService.run(bankBridgeServiceRequest);
        String responseString = bankBridgeServiceResponse.getResponseString();
        if(responseString == null) {
            bankBridgeUtilResponse.setStatus(false);
            list.add(leadId);
            bankBridgeUtilResponse.setFailedLeadIds(list);
            LOG.info("webservice Rev got null response from Lead ID ::"+leadId);

Upvotes: 1

Related Questions