[ https://issues.apache.org/jira/browse/CLOUDSTACK-9570?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15797820#comment-15797820 ]
ASF GitHub Bot commented on CLOUDSTACK-9570: -------------------------------------------- Github user anshul1886 commented on a diff in the pull request: https://github.com/apache/cloudstack/pull/1735#discussion_r94554986 --- Diff: api/src/org/apache/cloudstack/api/command/user/snapshot/ListSnapshotsCmd.java --- @@ -115,8 +115,10 @@ public void execute() { List<SnapshotResponse> snapshotResponses = new ArrayList<SnapshotResponse>(); for (Snapshot snapshot : result.first()) { SnapshotResponse snapshotResponse = _responseGenerator.createSnapshotResponse(snapshot); - snapshotResponse.setObjectName("snapshot"); - snapshotResponses.add(snapshotResponse); + if (snapshotResponse != null) { + snapshotResponse.setObjectName("snapshot"); --- End diff -- What is the use case for null case when that can happen? > Bug in listSnapshots for snapshots with deleted data stores > ----------------------------------------------------------- > > Key: CLOUDSTACK-9570 > URL: https://issues.apache.org/jira/browse/CLOUDSTACK-9570 > Project: CloudStack > Issue Type: Bug > Security Level: Public(Anyone can view this level - this is the > default.) > Components: API > Reporter: Nicolas Vazquez > Assignee: Nicolas Vazquez > > h3. Actual behaviour > If there is snapshot on a data store that is removed, {{listSnapshots}} still > tries to enumerate it and gives error (in this example data store 2 has been > removed): > {code:xml|title=/client/api?command=listSnapshots&isrecursive=true&listall=true|borderStyle=solid} > <listsnapshotsresponse cloud-stack-version="4.9.1.0-SNAPSHOT"> > <errorcode>530</errorcode> > <cserrorcode>4250</cserrorcode> > <errortext>Unable to locate datastore with id 2</errortext> > </listsnapshotsresponse> > {code} > h3. Reproduce error > This steps can be followed to reproduce issue: > * Take a snapshot of a volume (this creates a references for primary storage > and secondary storage in snapshot_store_ref table > * Simulate retiring primary data storage where snapshot is cached (in this > example X is a fake data store and Y is snapshot id): > {{UPDATE `cloud`.`snapshot_store_ref` SET `store_id`='X', `state`="Destroyed" > WHERE `id`='Y';}} > * List snapshots > {{/client/api?command=listSnapshots&isrecursive=true&listall=true}} -- This message was sent by Atlassian JIRA (v6.3.4#6332)