Cael Jacobs created JCLOUDS-644:
-----------------------------------

             Summary: Error parsing JSON returned from SoftLayer API causes 
exception
                 Key: JCLOUDS-644
                 URL: https://issues.apache.org/jira/browse/JCLOUDS-644
             Project: jclouds
          Issue Type: Bug
          Components: jclouds-compute
    Affects Versions: 1.7.3
         Environment: Windows 7 and Linux (Ubuntu 12.04 and 14.04), JRE 7.  
Running against the Softlayer v3 API.
            Reporter: Cael Jacobs


When provisioning a server in Softlayer, using 
computeService.createNodesInGroup(), I receive 
java.util.concurrent.ExecutionException: java.lang.IndexOutOfBoundsException: 
position (0) must be less than the number of elements that remained (0)

The root cause appears to be in at SoftLayerComputeServiceAdapter.java, line 
128:
VirtualGuest result = 
get(productOrderReceipt.getOrderDetails().getVirtualGuests(), 0);

The Set returned by .getVirtualGuests() is empty, so attempting to get() item 0 
fails and throws the exception.

An examination of the JSON returned by the Softlayer API shows that the 
VirtualGuests JSON element is populated (heavily trimmed JSON to show just the 
relevant structure):
{
        "orderDate": "2014-07-31T10:08:09-05:00",
        "orderDetails": {
                "virtualGuests": [
                        {
                                "accountId": 355296,
                                "createDate": "2014-07-31T10:08:09-05:00",
                                "dedicatedAccountHostOnlyFlag": false,
                                "domain": "jclouds.org",
                                "fullyQualifiedDomainName": 
"fn-svr-1406819297254.jclouds.org",
                                "hostname": "fn-svr-1406819297254",
                                "id": 5654874,
                                "lastPowerStateId": null,
                                "lastVerifiedDate": null,
                                "maxCpu": 1,
                                "maxCpuUnits": "CORE",
                                "maxMemory": 1024,
                                "metricPollDate": null,
                                "modifyDate": null,
                                "startCpus": 1,
                                "statusId": 1001
                        }
                ]
        }
}

It appears to me that there is something going wrong in the parsing of the JSON 
returned by the SoftLayer API



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to