CLOUDSTACK-3748: AddS3Cmd NPE.
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/a2f1d233 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/a2f1d233 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/a2f1d233 Branch: refs/heads/master Commit: a2f1d233787b9182a1ef4ae45eee3bfc0f4d6eb5 Parents: 7a2aaf9 Author: Min Chen <[email protected]> Authored: Thu Aug 1 18:02:42 2013 -0700 Committer: Min Chen <[email protected]> Committed: Fri Aug 2 13:53:43 2013 -0700 ---------------------------------------------------------------------- .../api/command/admin/storage/AddS3Cmd.java | 28 +++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a2f1d233/api/src/org/apache/cloudstack/api/command/admin/storage/AddS3Cmd.java ---------------------------------------------------------------------- diff --git a/api/src/org/apache/cloudstack/api/command/admin/storage/AddS3Cmd.java b/api/src/org/apache/cloudstack/api/command/admin/storage/AddS3Cmd.java index 3ad84fd..70cde78 100644 --- a/api/src/org/apache/cloudstack/api/command/admin/storage/AddS3Cmd.java +++ b/api/src/org/apache/cloudstack/api/command/admin/storage/AddS3Cmd.java @@ -91,8 +91,8 @@ public final class AddS3Cmd extends BaseCmd { @Override public void execute() throws ResourceUnavailableException, InsufficientCapacityException, - ServerApiException, ConcurrentOperationException, ResourceAllocationException, - NetworkRuleConflictException { + ServerApiException, ConcurrentOperationException, ResourceAllocationException, + NetworkRuleConflictException { AddImageStoreCmd cmd = new AddImageStoreCmd(); cmd.setProviderName("S3"); @@ -101,19 +101,27 @@ public final class AddS3Cmd extends BaseCmd { details.put(ApiConstants.S3_SECRET_KEY, this.getSecretKey()); details.put(ApiConstants.S3_END_POINT, this.getEndPoint()); details.put(ApiConstants.S3_BUCKET_NAME, this.getBucketName()); - details.put(ApiConstants.S3_HTTPS_FLAG, this.getHttpsFlag().toString()); - details.put(ApiConstants.S3_CONNECTION_TIMEOUT, this.getConnectionTimeout().toString()); - details.put(ApiConstants.S3_MAX_ERROR_RETRY, this.getMaxErrorRetry().toString()); - details.put(ApiConstants.S3_SOCKET_TIMEOUT, this.getSocketTimeout().toString()); + if (this.getHttpsFlag() != null) { + details.put(ApiConstants.S3_HTTPS_FLAG, this.getHttpsFlag().toString()); + } + if (this.getConnectionTimeout() != null) { + details.put(ApiConstants.S3_CONNECTION_TIMEOUT, this.getConnectionTimeout().toString()); + } + if (this.getMaxErrorRetry() != null) { + details.put(ApiConstants.S3_MAX_ERROR_RETRY, this.getMaxErrorRetry().toString()); + } + if (this.getSocketTimeout() != null) { + details.put(ApiConstants.S3_SOCKET_TIMEOUT, this.getSocketTimeout().toString()); + } try{ ImageStore result = _storageService.discoverImageStore(cmd); ImageStoreResponse storeResponse = null; if (result != null ) { - storeResponse = _responseGenerator.createImageStoreResponse(result); - storeResponse.setResponseName(getCommandName()); - storeResponse.setObjectName("secondarystorage"); - this.setResponseObject(storeResponse); + storeResponse = _responseGenerator.createImageStoreResponse(result); + storeResponse.setResponseName(getCommandName()); + storeResponse.setObjectName("secondarystorage"); + this.setResponseObject(storeResponse); } else { throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to add secondary storage"); }
