diff --git a/Lib/ClassLibraryCommon/Blob/CloudBlobClient.cs b/Lib/ClassLibraryCommon/Blob/CloudBlobClient.cs
index b9700809a..396ec4313 100644
--- a/Lib/ClassLibraryCommon/Blob/CloudBlobClient.cs
+++ b/Lib/ClassLibraryCommon/Blob/CloudBlobClient.cs
@@ -211,7 +211,7 @@ public ICancellableAsyncResult BeginListContainersSegmented(string prefix, BlobC
/// in the result segment, up to the per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000.
/// A continuation token returned by a previous listing operation.
/// A object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// An object that represents the context for the current operation.
/// The callback delegate that will receive notification when the asynchronous operation completes.
/// A user-defined object that will be passed to the callback delegate.
/// An that references the asynchronous operation.
@@ -296,7 +296,7 @@ public Task ListContainersSegmentedAsync(string prefix,
/// in the result segment, up to the per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000.
/// A continuation token returned by a previous listing operation.
/// A object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// An object that represents the context for the current operation.
/// A object that represents the current operation.
[DoesServiceRequest]
public Task ListContainersSegmentedAsync(string prefix, ContainerListingDetails detailsIncluded, int? maxResults, BlobContinuationToken continuationToken, BlobRequestOptions options, OperationContext operationContext)
@@ -313,7 +313,7 @@ public Task ListContainersSegmentedAsync(string prefix,
/// in the result segment, up to the per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000.
/// A continuation token returned by a previous listing operation.
/// A object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// An object that represents the context for the current operation.
/// A to observe while waiting for a task to complete.
/// A object that represents the current operation.
[DoesServiceRequest]
diff --git a/Lib/ClassLibraryCommon/Blob/CloudBlobDirectory.cs b/Lib/ClassLibraryCommon/Blob/CloudBlobDirectory.cs
index e55307e3d..14c302a0a 100644
--- a/Lib/ClassLibraryCommon/Blob/CloudBlobDirectory.cs
+++ b/Lib/ClassLibraryCommon/Blob/CloudBlobDirectory.cs
@@ -35,7 +35,7 @@ public sealed partial class CloudBlobDirectory
///
/// Specifies whether to list blobs in a flat listing, or whether to list blobs hierarchically, by virtual directory.
/// A enumeration describing which items to include in the listing.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// An enumerable collection of objects that implement and are retrieved lazily.
[DoesServiceRequest]
@@ -65,7 +65,7 @@ public BlobResultSegment ListBlobsSegmented(BlobContinuationToken currentToken)
/// A non-negative integer value that indicates the maximum number of results to be returned at a time, up to the
/// per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000.
/// A continuation token returned by a previous listing operation.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// A result segment containing objects that implement .
[DoesServiceRequest]
@@ -98,7 +98,7 @@ public ICancellableAsyncResult BeginListBlobsSegmented(BlobContinuationToken cur
/// A non-negative integer value that indicates the maximum number of results to be returned at a time, up to the
/// per-operation limit of 5000. If this value is null, the maximum possible number of results will be returned, up to 5000.
/// A continuation token returned by a previous listing operation.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// The callback delegate that will receive notification when the asynchronous operation completes.
/// A user-defined object that will be passed to the callback delegate.
diff --git a/Lib/ClassLibraryCommon/Blob/ICloudBlob.cs b/Lib/ClassLibraryCommon/Blob/ICloudBlob.cs
index eee746902..2805be8a4 100644
--- a/Lib/ClassLibraryCommon/Blob/ICloudBlob.cs
+++ b/Lib/ClassLibraryCommon/Blob/ICloudBlob.cs
@@ -106,7 +106,7 @@ public partial interface ICloudBlob : IListBlobItem
///
/// The stream providing the blob content. Use a seek-able stream for optimal performance.
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
void UploadFromStream(Stream source, AccessCondition accessCondition = null, BlobRequestOptions options = null, OperationContext operationContext = null);
@@ -135,7 +135,7 @@ public partial interface ICloudBlob : IListBlobItem
///
/// The stream providing the blob content.
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// The callback delegate that will receive notification when the asynchronous operation completes.
/// A user-defined object that will be passed to the callback delegate.
@@ -192,7 +192,7 @@ public partial interface ICloudBlob : IListBlobItem
///
/// The stream providing the blob content.
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// A object that represents the current operation.
Task UploadFromStreamAsync(Stream source, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext);
@@ -202,7 +202,7 @@ public partial interface ICloudBlob : IListBlobItem
///
/// The stream providing the blob content.
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// A to observe while waiting for a task to complete.
/// A object that represents the current operation.
@@ -256,7 +256,7 @@ public partial interface ICloudBlob : IListBlobItem
/// The file providing the blob content.
/// A constant that determines how to open the file.
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
void UploadFromFile(string path, FileMode mode, AccessCondition accessCondition = null, BlobRequestOptions options = null, OperationContext operationContext = null);
#endif
@@ -277,7 +277,7 @@ public partial interface ICloudBlob : IListBlobItem
/// The file providing the blob content.
/// A constant that determines how to open the file.
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// The callback delegate that will receive notification when the asynchronous operation completes.
/// A user-defined object that will be passed to the callback delegate.
@@ -314,7 +314,7 @@ public partial interface ICloudBlob : IListBlobItem
/// The file providing the blob content.
/// A constant that determines how to open the file.
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// A object that represents the current operation.
Task UploadFromFileAsync(string path, FileMode mode, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext);
@@ -325,7 +325,7 @@ public partial interface ICloudBlob : IListBlobItem
/// The file providing the blob content.
/// A constant that determines how to open the file.
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// A to observe while waiting for a task to complete.
/// A object that represents the current operation.
@@ -428,7 +428,7 @@ public partial interface ICloudBlob : IListBlobItem
///
/// The target stream.
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
void DownloadToStream(Stream target, AccessCondition accessCondition = null, BlobRequestOptions options = null, OperationContext operationContext = null);
#endif
@@ -447,7 +447,7 @@ public partial interface ICloudBlob : IListBlobItem
///
/// The target stream.
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// The callback delegate that will receive notification when the asynchronous operation completes.
/// A user-defined object that will be passed to the callback delegate.
@@ -481,7 +481,7 @@ public partial interface ICloudBlob : IListBlobItem
///
/// The target stream.
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// A object that represents the current operation.
Task DownloadToStreamAsync(Stream target, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext);
@@ -491,7 +491,7 @@ public partial interface ICloudBlob : IListBlobItem
///
/// The target stream.
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// A to observe while waiting for a task to complete.
/// A object that represents the current operation.
@@ -505,7 +505,7 @@ public partial interface ICloudBlob : IListBlobItem
/// The target file.
/// A constant that determines how to open or create the file.
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
void DownloadToFile(string path, FileMode mode, AccessCondition accessCondition = null, BlobRequestOptions options = null, OperationContext operationContext = null);
#endif
@@ -526,7 +526,7 @@ public partial interface ICloudBlob : IListBlobItem
/// The target file.
/// A constant that determines how to open or create the file.
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// The callback delegate that will receive notification when the asynchronous operation completes.
/// A user-defined object that will be passed to the callback delegate.
@@ -563,7 +563,7 @@ public partial interface ICloudBlob : IListBlobItem
/// The target file.
/// A constant that determines how to open or create the file.
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// A object that represents the current operation.
Task DownloadToFileAsync(string path, FileMode mode, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext);
@@ -574,7 +574,7 @@ public partial interface ICloudBlob : IListBlobItem
/// The target file.
/// A constant that determines how to open or create the file.
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// A to observe while waiting for a task to complete.
/// A object that represents the current operation.
@@ -674,7 +674,7 @@ public partial interface ICloudBlob : IListBlobItem
/// The starting offset of the data range, in bytes.
/// The length of the data range, in bytes.
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
void DownloadRangeToStream(Stream target, long? offset, long? length, AccessCondition accessCondition = null, BlobRequestOptions options = null, OperationContext operationContext = null);
#endif
@@ -697,7 +697,7 @@ public partial interface ICloudBlob : IListBlobItem
/// The starting offset of the data range, in bytes.
/// The length of the data range, in bytes.
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// The callback delegate that will receive notification when the asynchronous operation completes.
/// A user-defined object that will be passed to the callback delegate.
@@ -737,7 +737,7 @@ public partial interface ICloudBlob : IListBlobItem
/// The starting offset of the data range, in bytes.
/// The length of the data range, in bytes.
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// A object that represents the current operation.
Task DownloadRangeToStreamAsync(Stream target, long? offset, long? length, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext);
@@ -749,7 +749,7 @@ public partial interface ICloudBlob : IListBlobItem
/// The starting offset of the data range, in bytes.
/// The length of the data range, in bytes.
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// A to observe while waiting for a task to complete.
/// A object that represents the current operation.
@@ -859,8 +859,8 @@ public partial interface ICloudBlob : IListBlobItem
///
/// Checks existence of the blob.
///
- /// An object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// true if the blob exists.
bool Exists(BlobRequestOptions options = null, OperationContext operationContext = null);
#endif
@@ -876,8 +876,8 @@ public partial interface ICloudBlob : IListBlobItem
///
/// Begins an asynchronous request to check existence of the blob.
///
- /// An object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// The callback delegate that will receive notification when the asynchronous operation completes.
/// A user-defined object that will be passed to the callback delegate.
/// An that references the asynchronous operation.
@@ -907,16 +907,16 @@ public partial interface ICloudBlob : IListBlobItem
///
/// Returns a task that performs an asynchronous request to check existence of the blob.
///
- /// An object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// A object that represents the current operation.
Task ExistsAsync(BlobRequestOptions options, OperationContext operationContext);
///
/// Returns a task that performs an asynchronous request to check existence of the blob.
///
- /// An object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// A to observe while waiting for a task to complete.
/// A object that represents the current operation.
Task ExistsAsync(BlobRequestOptions options, OperationContext operationContext, CancellationToken cancellationToken);
@@ -927,8 +927,8 @@ public partial interface ICloudBlob : IListBlobItem
/// Populates a blob's properties and metadata.
///
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
void FetchAttributes(AccessCondition accessCondition = null, BlobRequestOptions options = null, OperationContext operationContext = null);
#endif
@@ -944,8 +944,8 @@ public partial interface ICloudBlob : IListBlobItem
/// Begins an asynchronous operation to populate the blob's properties and metadata.
///
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// The callback delegate that will receive notification when the asynchronous operation completes.
/// A user-defined object that will be passed to the callback delegate.
/// An that references the asynchronous operation.
@@ -975,8 +975,8 @@ public partial interface ICloudBlob : IListBlobItem
/// Returns a task that performs an asynchronous operation to populate the blob's properties and metadata.
///
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// A object that represents the current operation.
Task FetchAttributesAsync(AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext);
@@ -984,8 +984,8 @@ public partial interface ICloudBlob : IListBlobItem
/// Returns a task that performs an asynchronous operation to populate the blob's properties and metadata.
///
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// A to observe while waiting for a task to complete.
/// A object that represents the current operation.
Task FetchAttributesAsync(AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext, CancellationToken cancellationToken);
@@ -996,8 +996,8 @@ public partial interface ICloudBlob : IListBlobItem
/// Updates the blob's metadata.
///
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
void SetMetadata(AccessCondition accessCondition = null, BlobRequestOptions options = null, OperationContext operationContext = null);
#endif
@@ -1013,8 +1013,8 @@ public partial interface ICloudBlob : IListBlobItem
/// Begins an asynchronous operation to update the blob's metadata.
///
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// The callback delegate that will receive notification when the asynchronous operation completes.
/// A user-defined object that will be passed to the callback delegate.
/// An that references the asynchronous operation.
@@ -1044,8 +1044,8 @@ public partial interface ICloudBlob : IListBlobItem
/// Returns a task that performs an asynchronous operation to update the blob's metadata.
///
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// A object that represents the current operation.
Task SetMetadataAsync(AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext);
@@ -1053,8 +1053,8 @@ public partial interface ICloudBlob : IListBlobItem
/// Returns a task that performs an asynchronous operation to update the blob's metadata.
///
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// A to observe while waiting for a task to complete.
/// A object that represents the current operation.
Task SetMetadataAsync(AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext, CancellationToken cancellationToken);
@@ -1065,8 +1065,8 @@ public partial interface ICloudBlob : IListBlobItem
/// Updates the blob's properties.
///
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
void SetProperties(AccessCondition accessCondition = null, BlobRequestOptions options = null, OperationContext operationContext = null);
#endif
@@ -1082,8 +1082,8 @@ public partial interface ICloudBlob : IListBlobItem
/// Begins an asynchronous operation to update the blob's properties.
///
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// The callback delegate that will receive notification when the asynchronous operation completes.
/// A user-defined object that will be passed to the callback delegate.
/// An that references the asynchronous operation.
@@ -1113,8 +1113,8 @@ public partial interface ICloudBlob : IListBlobItem
/// Returns a task that performs an asynchronous operation to update the blob's properties.
///
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// A object that represents the current operation.
Task SetPropertiesAsync(AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext);
@@ -1122,8 +1122,8 @@ public partial interface ICloudBlob : IListBlobItem
/// Returns a task that performs an asynchronous operation to update the blob's properties.
///
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// A to observe while waiting for a task to complete.
/// A object that represents the current operation.
Task SetPropertiesAsync(AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext, CancellationToken cancellationToken);
@@ -1135,8 +1135,8 @@ public partial interface ICloudBlob : IListBlobItem
///
/// Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots.
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
void Delete(DeleteSnapshotsOption deleteSnapshotsOption = DeleteSnapshotsOption.None, AccessCondition accessCondition = null, BlobRequestOptions options = null, OperationContext operationContext = null);
#endif
@@ -1153,8 +1153,8 @@ public partial interface ICloudBlob : IListBlobItem
///
/// Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots.
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// The callback delegate that will receive notification when the asynchronous operation completes.
/// A user-defined object that will be passed to the callback delegate.
/// An that references the asynchronous operation.
@@ -1185,8 +1185,8 @@ public partial interface ICloudBlob : IListBlobItem
///
/// Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots.
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// A object that represents the current operation.
Task DeleteAsync(DeleteSnapshotsOption deleteSnapshotsOption, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext);
@@ -1195,8 +1195,8 @@ public partial interface ICloudBlob : IListBlobItem
///
/// Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots.
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// A to observe while waiting for a task to complete.
/// A object that represents the current operation.
Task DeleteAsync(DeleteSnapshotsOption deleteSnapshotsOption, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext, CancellationToken cancellationToken);
@@ -1208,7 +1208,7 @@ public partial interface ICloudBlob : IListBlobItem
///
/// Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots.
/// An object that represents the access conditions for the container.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// true if the blob did not already exist and was created; otherwise false.
bool DeleteIfExists(DeleteSnapshotsOption deleteSnapshotsOption = DeleteSnapshotsOption.None, AccessCondition accessCondition = null, BlobRequestOptions options = null, OperationContext operationContext = null);
@@ -1227,7 +1227,7 @@ public partial interface ICloudBlob : IListBlobItem
///
/// Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots.
/// An object that represents the access conditions for the container.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// The callback delegate that will receive notification when the asynchronous operation completes.
/// A user-defined object that will be passed to the callback delegate.
@@ -1260,7 +1260,7 @@ public partial interface ICloudBlob : IListBlobItem
///
/// Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots.
/// An object that represents the access conditions for the container.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// A object that represents the current operation.
Task DeleteIfExistsAsync(DeleteSnapshotsOption deleteSnapshotsOption, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext);
@@ -1270,7 +1270,7 @@ public partial interface ICloudBlob : IListBlobItem
///
/// Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots.
/// An object that represents the access conditions for the container.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// A to observe while waiting for a task to complete.
/// A object that represents the current operation.
@@ -1285,8 +1285,8 @@ public partial interface ICloudBlob : IListBlobItem
/// which will be rounded down to seconds.
/// A string representing the proposed lease ID for the new lease.
/// An object that represents the access conditions for the blob.
- /// The options for this operation.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// The ID of the acquired lease.
string AcquireLease(TimeSpan? leaseTime, string proposedLeaseId, AccessCondition accessCondition = null, BlobRequestOptions options = null, OperationContext operationContext = null);
#endif
@@ -1309,8 +1309,8 @@ public partial interface ICloudBlob : IListBlobItem
/// which will be rounded down to seconds.
/// A string representing the proposed lease ID for the new lease.
/// An object that represents the access conditions for the blob.
- /// The options for this operation.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// An optional callback delegate that will receive notification when the asynchronous operation completes.
/// A user-defined object that will be passed to the callback delegate.
/// An that references the asynchronous operation.
@@ -1350,8 +1350,8 @@ public partial interface ICloudBlob : IListBlobItem
/// which will be rounded down to seconds.
/// A string representing the proposed lease ID for the new lease.
/// An object that represents the access conditions for the blob.
- /// The options for this operation.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// A object that represents the current operation.
Task AcquireLeaseAsync(TimeSpan? leaseTime, string proposedLeaseId, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext);
@@ -1362,8 +1362,8 @@ public partial interface ICloudBlob : IListBlobItem
/// which will be rounded down to seconds.
/// A string representing the proposed lease ID for the new lease.
/// An object that represents the access conditions for the blob.
- /// The options for this operation.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// A to observe while waiting for a task to complete.
/// A object that represents the current operation.
Task AcquireLeaseAsync(TimeSpan? leaseTime, string proposedLeaseId, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext, CancellationToken cancellationToken);
@@ -1374,8 +1374,8 @@ public partial interface ICloudBlob : IListBlobItem
/// Renews a lease on this blob.
///
/// An object that represents the access conditions for the blob, including a required lease ID.
- /// The options for this operation.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
void RenewLease(AccessCondition accessCondition, BlobRequestOptions options = null, OperationContext operationContext = null);
#endif
@@ -1392,8 +1392,8 @@ public partial interface ICloudBlob : IListBlobItem
/// Begins an asynchronous operation to renew a lease on this blob.
///
/// An object that represents the access conditions for the blob, including a required lease ID.
- /// The options for this operation.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// An optional callback delegate that will receive notification when the asynchronous operation completes.
/// A user-defined object that will be passed to the callback delegate.
/// An that references the asynchronous operation.
@@ -1425,8 +1425,8 @@ public partial interface ICloudBlob : IListBlobItem
/// Returns a task that performs an asynchronous operation to renew a lease on this blob.
///
/// An object that represents the access conditions for the blob, including a required lease ID.
- /// The options for this operation.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// A object that represents the current operation.
Task RenewLeaseAsync(AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext);
@@ -1434,8 +1434,8 @@ public partial interface ICloudBlob : IListBlobItem
/// Returns a task that performs an asynchronous operation to renew a lease on this blob.
///
/// An object that represents the access conditions for the blob, including a required lease ID.
- /// The options for this operation.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// A to observe while waiting for a task to complete.
/// A object that represents the current operation.
Task RenewLeaseAsync(AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext, CancellationToken cancellationToken);
@@ -1447,8 +1447,8 @@ public partial interface ICloudBlob : IListBlobItem
///
/// A string representing the proposed lease ID for the new lease.
/// An object that represents the access conditions for the blob, including a required lease ID.
- /// The options for this operation.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// The new lease ID.
string ChangeLease(string proposedLeaseId, AccessCondition accessCondition, BlobRequestOptions options = null, OperationContext operationContext = null);
#endif
@@ -1468,8 +1468,8 @@ public partial interface ICloudBlob : IListBlobItem
///
/// A string representing the proposed lease ID for the new lease.
/// An object that represents the access conditions for the blob, including a required lease ID.
- /// The options for this operation.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// An optional callback delegate that will receive notification when the asynchronous operation completes.
/// A user-defined object that will be passed to the callback delegate.
/// An that references the asynchronous operation.
@@ -1505,8 +1505,8 @@ public partial interface ICloudBlob : IListBlobItem
///
/// A string representing the proposed lease ID for the new lease.
/// An object that represents the access conditions for the blob, including a required lease ID.
- /// The options for this operation.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// A object that represents the current operation.
Task ChangeLeaseAsync(string proposedLeaseId, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext);
@@ -1515,8 +1515,8 @@ public partial interface ICloudBlob : IListBlobItem
///
/// A string representing the proposed lease ID for the new lease.
/// An object that represents the access conditions for the blob, including a required lease ID.
- /// The options for this operation.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// A to observe while waiting for a task to complete.
/// A object that represents the current operation.
Task ChangeLeaseAsync(string proposedLeaseId, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext, CancellationToken cancellationToken);
@@ -1527,8 +1527,8 @@ public partial interface ICloudBlob : IListBlobItem
/// Releases the lease on this blob.
///
/// An object that represents the access conditions for the blob, including a required lease ID.
- /// The options for this operation.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
void ReleaseLease(AccessCondition accessCondition, BlobRequestOptions options = null, OperationContext operationContext = null);
#endif
@@ -1545,8 +1545,8 @@ public partial interface ICloudBlob : IListBlobItem
/// Begins an asynchronous operation to release the lease on this blob.
///
/// An object that represents the access conditions for the blob, including a required lease ID.
- /// The options for this operation.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// An optional callback delegate that will receive notification when the asynchronous operation completes.
/// A user-defined object that will be passed to the callback delegate.
/// An that references the asynchronous operation.
@@ -1578,8 +1578,8 @@ public partial interface ICloudBlob : IListBlobItem
/// Returns a task that performs an asynchronous operation to release the lease on this blob.
///
/// An object that represents the access conditions for the blob, including a required lease ID.
- /// The options for this operation.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// A object that represents the current operation.
Task ReleaseLeaseAsync(AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext);
@@ -1587,8 +1587,8 @@ public partial interface ICloudBlob : IListBlobItem
/// Returns a task that performs an asynchronous operation to release the lease on this blob.
///
/// An object that represents the access conditions for the blob, including a required lease ID.
- /// The options for this operation.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// A to observe while waiting for a task to complete.
/// A object that represents the current operation.
Task ReleaseLeaseAsync(AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext, CancellationToken cancellationToken);
@@ -1601,8 +1601,8 @@ public partial interface ICloudBlob : IListBlobItem
/// A representing the amount of time to allow the lease to remain,
/// which will be rounded down to seconds.
/// An object that represents the access conditions for the blob.
- /// The options for this operation.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// A representing the amount of time before the lease ends, to the second.
TimeSpan BreakLease(TimeSpan? breakPeriod = null, AccessCondition accessCondition = null, BlobRequestOptions options = null, OperationContext operationContext = null);
#endif
@@ -1623,8 +1623,8 @@ public partial interface ICloudBlob : IListBlobItem
/// A representing the amount of time to allow the lease to remain,
/// which will be rounded down to seconds.
/// An object that represents the access conditions for the blob.
- /// The options for this operation.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// An optional callback delegate that will receive notification when the asynchronous operation completes.
/// A user-defined object that will be passed to the callback delegate.
/// An that references the asynchronous operation.
@@ -1661,8 +1661,8 @@ public partial interface ICloudBlob : IListBlobItem
/// A representing the amount of time to allow the lease to remain,
/// which will be rounded down to seconds.
/// An object that represents the access conditions for the blob.
- /// The options for this operation.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// A object that represents the current operation.
Task BreakLeaseAsync(TimeSpan? breakPeriod, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext);
@@ -1672,8 +1672,8 @@ public partial interface ICloudBlob : IListBlobItem
/// A representing the amount of time to allow the lease to remain,
/// which will be rounded down to seconds.
/// An object that represents the access conditions for the blob.
- /// The options for this operation.
- /// An object that represents the context for the current operation.
+ /// A object that specifies additional options for the request.
+ /// An object that represents the context for the current operation.
/// A to observe while waiting for a task to complete.
/// A object that represents the current operation.
Task BreakLeaseAsync(TimeSpan? breakPeriod, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext, CancellationToken cancellationToken);
@@ -1684,9 +1684,9 @@ public partial interface ICloudBlob : IListBlobItem
/// Requests that the service start to copy a blob's contents, properties, and metadata to a new blob.
///
/// The URI of a source blob.
- /// An object that represents the access conditions for the source blob.
- /// An object that represents the access conditions for the destination blob.
- /// An object that specifies additional options for the request.
+ /// An object that represents the access conditions for the source blob.
+ /// An object that represents the access conditions for the destination blob.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// The copy ID associated with the copy operation.
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "dest", Justification = "Reviewed")]
@@ -1707,9 +1707,9 @@ public partial interface ICloudBlob : IListBlobItem
/// to the blob referenced by this object.
///
/// The URI of a source blob.
- /// An object that represents the access conditions for the source blob.
- /// An object that represents the access conditions for the destination blob.
- /// An object that specifies additional options for the request.
+ /// An object that represents the access conditions for the source blob.
+ /// An object that represents the access conditions for the destination blob.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// The callback delegate that will receive notification when the asynchronous operation completes.
/// A user-defined object that will be passed to the callback delegate.
@@ -1747,9 +1747,9 @@ public partial interface ICloudBlob : IListBlobItem
/// to the blob referenced by this object.
///
/// The URI of a source blob.
- /// An object that represents the access conditions for the source blob.
- /// An object that represents the access conditions for the destination blob.
- /// An object that specifies additional options for the request.
+ /// An object that represents the access conditions for the source blob.
+ /// An object that represents the access conditions for the destination blob.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// A object that represents the current operation.
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "dest", Justification = "Reviewed")]
@@ -1760,9 +1760,9 @@ public partial interface ICloudBlob : IListBlobItem
/// to the blob referenced by this object.
///
/// The URI of a source blob.
- /// An object that represents the access conditions for the source blob.
- /// An object that represents the access conditions for the destination blob.
- /// An object that specifies additional options for the request.
+ /// An object that represents the access conditions for the source blob.
+ /// An object that represents the access conditions for the destination blob.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// A to observe while waiting for a task to complete.
/// A object that represents the current operation.
@@ -1776,7 +1776,7 @@ public partial interface ICloudBlob : IListBlobItem
///
/// A string identifying the copy operation.
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
void AbortCopy(string copyId, AccessCondition accessCondition = null, BlobRequestOptions options = null, OperationContext operationContext = null);
#endif
@@ -1795,7 +1795,7 @@ public partial interface ICloudBlob : IListBlobItem
///
/// A string identifying the copy operation.
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// The callback delegate that will receive notification when the asynchronous operation completes.
/// A user-defined object that will be passed to the callback delegate.
@@ -1829,7 +1829,7 @@ public partial interface ICloudBlob : IListBlobItem
///
/// A string identifying the copy operation.
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// A object that represents the current operation.
Task AbortCopyAsync(string copyId, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext);
@@ -1839,7 +1839,7 @@ public partial interface ICloudBlob : IListBlobItem
///
/// A string identifying the copy operation.
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// A to observe while waiting for a task to complete.
/// A object that represents the current operation.
diff --git a/Lib/ClassLibraryCommon/Queue/CloudQueue.cs b/Lib/ClassLibraryCommon/Queue/CloudQueue.cs
index e5d039b31..3a27b690f 100644
--- a/Lib/ClassLibraryCommon/Queue/CloudQueue.cs
+++ b/Lib/ClassLibraryCommon/Queue/CloudQueue.cs
@@ -640,7 +640,7 @@ public ICancellableAsyncResult BeginDelete(AsyncCallback callback, object state)
/// Begins an asynchronous operation to delete a queue.
///
/// A object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// An object that represents the context for the current operation.
/// The callback delegate that will receive notification when the asynchronous operation completes.
/// A user-defined object that will be passed to the callback delegate.
/// An that references the asynchronous operation.
@@ -1311,7 +1311,7 @@ public Task FetchAttributesAsync(QueueRequestOptions options, OperationContext o
/// The length of time from now during which the message will be invisible.
/// If null then the message will be visible immediately.
/// A object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// An object that represents the context for the current operation.
[DoesServiceRequest]
public void AddMessage(CloudQueueMessage message, TimeSpan? timeToLive = null, TimeSpan? initialVisibilityDelay = null, QueueRequestOptions options = null, OperationContext operationContext = null)
{
@@ -1348,7 +1348,7 @@ public ICancellableAsyncResult BeginAddMessage(CloudQueueMessage message, AsyncC
/// The length of time from now during which the message will be invisible.
/// If null then the message will be visible immediately.
/// A object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// An object that represents the context for the current operation.
/// The callback delegate that will receive notification when the asynchronous operation completes.
/// A user-defined object that will be passed to the callback delegate.
/// An that references the asynchronous operation.
@@ -1443,7 +1443,7 @@ public Task AddMessageAsync(CloudQueueMessage message, TimeSpan? timeToLive, Tim
/// The visibility timeout interval.
/// Flags of values that specifies which parts of the message are to be updated.
/// A object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// An object that represents the context for the current operation.
[DoesServiceRequest]
public void UpdateMessage(CloudQueueMessage message, TimeSpan visibilityTimeout, MessageUpdateFields updateFields, QueueRequestOptions options = null, OperationContext operationContext = null)
{
@@ -1479,7 +1479,7 @@ public ICancellableAsyncResult BeginUpdateMessage(CloudQueueMessage message, Tim
/// The visibility timeout interval.
/// An EnumSet of values that specifies which parts of the message are to be updated.
/// A object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// An object that represents the context for the current operation.
/// The callback delegate that will receive notification when the asynchronous operation completes.
/// A user-defined object that will be passed to the callback delegate.
/// An that references the asynchronous operation.
diff --git a/Lib/ClassLibraryCommon/Table/Protocol/TableUtilities.cs b/Lib/ClassLibraryCommon/Table/Protocol/TableUtilities.cs
index 9618c1737..08d009795 100644
--- a/Lib/ClassLibraryCommon/Table/Protocol/TableUtilities.cs
+++ b/Lib/ClassLibraryCommon/Table/Protocol/TableUtilities.cs
@@ -39,70 +39,80 @@ internal static class TableUtilities
///
internal static StorageException TranslateDataServiceException(Exception e, RequestResult reqResult, Func, StorageExtendedErrorInformation> parseError)
{
- // The exception thrown is based on whether it is a change/query operation.
- DataServiceRequestException dsre = FindInnerExceptionOfType(e);
-
- DataServiceQueryException dsqe = FindInnerExceptionOfType(e);
-
- if (dsre == null && dsqe == null)
+ try
{
- InvalidOperationException ioe = TableUtilities.FindInnerExceptionOfType(e);
+ // The exception thrown is based on whether it is a change/query operation.
+ DataServiceRequestException dsre = FindInnerExceptionOfType(e);
- if (ioe != null && !(ioe is WebException) && string.CompareOrdinal(ioe.Source, "Microsoft.Data.Services.Client") == 0 && ioe.Message.Contains("type is not compatible with the expected"))
+ DataServiceQueryException dsqe = FindInnerExceptionOfType(e);
+
+ if (dsre == null && dsqe == null)
{
- return new StorageException(reqResult, e.Message, e) { IsRetryable = false };
- }
+ InvalidOperationException ioe = TableUtilities.FindInnerExceptionOfType(e);
- return null;
- }
- else if (dsre != null)
- {
- DataServiceResponse response = dsre.Response;
+ if (ioe != null && !(ioe is WebException) && string.CompareOrdinal(ioe.Source, "Microsoft.Data.Services.Client") == 0 && ioe.Message.Contains("type is not compatible with the expected"))
+ {
+ return new StorageException(reqResult, e.Message, e) { IsRetryable = false };
+ }
- IDictionary headers;
- foreach (OperationResponse operationResponse in response)
+ return null;
+ }
+ else if (dsre != null)
{
- reqResult.HttpStatusCode = operationResponse.StatusCode;
+ DataServiceResponse response = dsre.Response;
- // The exception thrown will contain the first error in the group of requests.
- if (reqResult.HttpStatusCode >= 300)
- {
- headers = operationResponse.Headers;
+ // Get the batch status code first in case batch does not contain any responses.
+ reqResult.HttpStatusCode = response.BatchStatusCode;
- // Strip off the extra exception type at the beginning.
- string innerException = dsre.InnerException.ToString().Replace("System.Data.Services.Client.DataServiceClientException: ", string.Empty);
+ IDictionary headers;
+ foreach (OperationResponse operationResponse in response)
+ {
+ reqResult.HttpStatusCode = operationResponse.StatusCode;
- using (Stream stream = new MemoryStream(Encoding.UTF8.GetBytes(innerException)))
+ // The exception thrown will contain the first error in the group of requests.
+ if (reqResult.HttpStatusCode >= 300)
{
- reqResult.ExtendedErrorInformation = parseError(stream, headers);
- }
+ headers = operationResponse.Headers;
- break;
+ // Strip off the extra exception type at the beginning.
+ string innerException = dsre.InnerException.ToString().Replace("System.Data.Services.Client.DataServiceClientException: ", string.Empty);
+
+ using (Stream stream = new MemoryStream(Encoding.UTF8.GetBytes(innerException)))
+ {
+ reqResult.ExtendedErrorInformation = parseError(stream, headers);
+ }
+
+ break;
+ }
}
+
+ return new StorageException(
+ reqResult,
+ reqResult.ExtendedErrorInformation != null ? reqResult.ExtendedErrorInformation.ErrorCode : dsre.Message,
+ dsre);
}
+ else
+ {
+ QueryOperationResponse response = dsqe.Response;
- return new StorageException(
- reqResult,
- reqResult.ExtendedErrorInformation != null ? reqResult.ExtendedErrorInformation.ErrorCode : dsre.Message,
- dsre);
- }
- else
- {
- QueryOperationResponse response = dsqe.Response;
+ reqResult.HttpStatusCode = response.StatusCode;
- reqResult.HttpStatusCode = response.StatusCode;
+ string innerException = dsqe.InnerException.Message;
- string innerException = dsqe.InnerException.Message;
+ using (Stream stream = new MemoryStream(Encoding.UTF8.GetBytes(innerException)))
+ {
+ reqResult.ExtendedErrorInformation = parseError(stream, response.Headers);
+ }
- using (Stream stream = new MemoryStream(Encoding.UTF8.GetBytes(innerException)))
- {
- reqResult.ExtendedErrorInformation = parseError(stream, response.Headers);
+ return new StorageException(
+ reqResult,
+ reqResult.ExtendedErrorInformation != null ? reqResult.ExtendedErrorInformation.ErrorCode : dsqe.Message,
+ dsqe);
}
-
- return new StorageException(
- reqResult,
- reqResult.ExtendedErrorInformation != null ? reqResult.ExtendedErrorInformation.ErrorCode : dsqe.Message,
- dsqe);
+ }
+ catch (Exception)
+ {
+ return new StorageException(reqResult, e.Message, e);
}
}
diff --git a/Lib/ClassLibraryCommon/Table/TableOperation.cs b/Lib/ClassLibraryCommon/Table/TableOperation.cs
index d663a2749..1a2faad9b 100644
--- a/Lib/ClassLibraryCommon/Table/TableOperation.cs
+++ b/Lib/ClassLibraryCommon/Table/TableOperation.cs
@@ -32,7 +32,7 @@ namespace Microsoft.WindowsAzure.Storage.Table
public sealed partial class TableOperation
{
///
- /// Creates a new table operation that replaces the contents of
+ /// Creates a new table operation that retrieves the contents of
/// the given entity in a table.
///
/// The class of type for the entity to retrieve.
@@ -66,7 +66,7 @@ public static TableOperation Retrieve(string partitionKey, string rowk
}
///
- /// Creates a new table operation that replaces the contents of
+ /// Creates a new table operation that retrieves the contents of
/// the given entity in a table.
///
/// The return type which the specified will resolve the given entity to.
diff --git a/Lib/Common/Blob/CloudBlobClient.Common.cs b/Lib/Common/Blob/CloudBlobClient.Common.cs
index 0618ac78c..e273ac5e3 100644
--- a/Lib/Common/Blob/CloudBlobClient.Common.cs
+++ b/Lib/Common/Blob/CloudBlobClient.Common.cs
@@ -245,7 +245,7 @@ public int ParallelOperationThreadCount
set
{
- CommonUtility.AssertInBounds("UploadParallelActiveTasks", value, 1, Constants.MaxParallelOperationThreadCount);
+ CommonUtility.AssertInBounds("ParallelOperationThreadCount", value, 1, Constants.MaxParallelOperationThreadCount);
this.parallelOperationThreadCount = value;
}
}
diff --git a/Lib/Common/Core/Util/CommonUtility.cs b/Lib/Common/Core/Util/CommonUtility.cs
index 948915ab6..3185a6e22 100644
--- a/Lib/Common/Core/Util/CommonUtility.cs
+++ b/Lib/Common/Core/Util/CommonUtility.cs
@@ -157,6 +157,9 @@ internal static void ArgumentOutOfRange(string paramName, object value)
/// The value of the parameter.
/// The minimum value for the parameter.
/// The maximum value for the parameter.
+#if WINDOWS_PHONE
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
+#endif
internal static void AssertInBounds(string paramName, T val, T min, T max)
where T : IComparable
{
@@ -178,6 +181,9 @@ internal static void AssertInBounds(string paramName, T val, T min, T max)
/// The name of the parameter.
/// The value of the parameter.
/// The minimum value for the parameter.
+#if WINDOWS_PHONE
+ [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
+#endif
internal static void AssertInBounds(string paramName, T val, T min)
where T : IComparable
{
diff --git a/Lib/Common/Shared/Protocol/Constants.cs b/Lib/Common/Shared/Protocol/Constants.cs
index d4f7a4cd9..98424824e 100644
--- a/Lib/Common/Shared/Protocol/Constants.cs
+++ b/Lib/Common/Shared/Protocol/Constants.cs
@@ -709,7 +709,7 @@ static HeaderConstants()
///
/// Specifies the value to use for UserAgent header.
///
- public const string UserAgentProductVersion = "3.0.1";
+ public const string UserAgentProductVersion = "3.0.2";
///
/// Master Windows Azure Storage header prefix.
diff --git a/Lib/Common/Shared/Protocol/HttpResponseParsers.Common.cs b/Lib/Common/Shared/Protocol/HttpResponseParsers.Common.cs
index 8e71b4a33..5ade3d2de 100644
--- a/Lib/Common/Shared/Protocol/HttpResponseParsers.Common.cs
+++ b/Lib/Common/Shared/Protocol/HttpResponseParsers.Common.cs
@@ -23,6 +23,7 @@ namespace Microsoft.WindowsAzure.Storage.Shared.Protocol
using System.Collections.Generic;
using System.Globalization;
using System.IO;
+ using System.Linq;
using System.Net;
using System.Text;
using System.Xml;
@@ -65,23 +66,10 @@ internal static T ProcessExpectedStatusCodeNoException(HttpStatusCode[] expec
throw ex;
}
- bool foundExpectedStatusCode = false;
- StringBuilder expectedStatusCodeString = null;
- foreach (HttpStatusCode expectedStatusCode in expectedStatusCodes)
+ if (!expectedStatusCodes.Contains(actualStatusCode))
{
- if (actualStatusCode == expectedStatusCode)
- {
- foundExpectedStatusCode = true;
- break;
- }
-
- expectedStatusCodeString.Append(expectedStatusCode);
- expectedStatusCodeString.Append(",");
- }
-
- if (!foundExpectedStatusCode)
- {
- throw new StorageException(cmd.CurrentResult, string.Format(CultureInfo.InvariantCulture, SR.UnexpectedResponseCode, expectedStatusCodeString.ToString().TrimEnd(','), actualStatusCode.ToString()), null);
+ string expectedStatusCodeString = string.Join(",", expectedStatusCodes);
+ throw new StorageException(cmd.CurrentResult, string.Format(CultureInfo.InvariantCulture, SR.UnexpectedResponseCode, expectedStatusCodeString, actualStatusCode.ToString()), null);
}
return retVal;
diff --git a/Lib/Common/Table/TableRequestOptions.cs b/Lib/Common/Table/TableRequestOptions.cs
index 46ee23122..22498512a 100644
--- a/Lib/Common/Table/TableRequestOptions.cs
+++ b/Lib/Common/Table/TableRequestOptions.cs
@@ -159,7 +159,7 @@ public TablePayloadFormat? PayloadFormat
if (value.HasValue)
{
#if WINDOWS_RT
- if (value.Value == TablePayloadFormat.Json || value.Value == TablePayloadFormat.JsonNoMetadata)
+ if (value.Value == TablePayloadFormat.Json || value.Value == TablePayloadFormat.JsonNoMetadata || value.Value == TablePayloadFormat.JsonFullMetadata)
{
throw new ArgumentException(SR.JsonNotSupportedOnRT, "value");
}
diff --git a/Lib/WindowsAzure.Storage-Preview.nuspec b/Lib/WindowsAzure.Storage-Preview.nuspec
index 2d09b6579..5ba7db5a3 100644
--- a/Lib/WindowsAzure.Storage-Preview.nuspec
+++ b/Lib/WindowsAzure.Storage-Preview.nuspec
@@ -2,7 +2,7 @@
WindowsAzure.Storage-Preview
- 3.0.1.0-preview
+ 3.0.2.0-preview
Windows Azure Storage
Microsoft
Microsoft
diff --git a/Lib/WindowsDesktop/Properties/AssemblyInfo.cs b/Lib/WindowsDesktop/Properties/AssemblyInfo.cs
index 1f589e49a..cf4fe495d 100644
--- a/Lib/WindowsDesktop/Properties/AssemblyInfo.cs
+++ b/Lib/WindowsDesktop/Properties/AssemblyInfo.cs
@@ -34,8 +34,8 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("3.0.1.0")]
-[assembly: AssemblyFileVersion("3.0.1.0")]
+[assembly: AssemblyVersion("3.0.2.0")]
+[assembly: AssemblyFileVersion("3.0.2.0")]
#if SIGN
[assembly: InternalsVisibleTo(
diff --git a/Lib/WindowsDesktop/WindowsAzure.Storage.nuspec b/Lib/WindowsDesktop/WindowsAzure.Storage.nuspec
index 575bd51fa..c1a123946 100644
--- a/Lib/WindowsDesktop/WindowsAzure.Storage.nuspec
+++ b/Lib/WindowsDesktop/WindowsAzure.Storage.nuspec
@@ -2,7 +2,7 @@
WindowsAzure.Storage
- 3.0.1.0
+ 3.0.2.0
Windows Azure Storage
Microsoft
Microsoft
diff --git a/Lib/WindowsPhone/Properties/AssemblyInfo.cs b/Lib/WindowsPhone/Properties/AssemblyInfo.cs
index 3bf20a0ff..7a22fda23 100644
--- a/Lib/WindowsPhone/Properties/AssemblyInfo.cs
+++ b/Lib/WindowsPhone/Properties/AssemblyInfo.cs
@@ -32,8 +32,8 @@
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
-[assembly: AssemblyVersion("3.0.1.0")]
-[assembly: AssemblyFileVersion("3.0.1.0")]
+[assembly: AssemblyVersion("3.0.2.0")]
+[assembly: AssemblyFileVersion("3.0.2.0")]
[assembly: NeutralResourcesLanguageAttribute("en-US")]
#if SIGN
diff --git a/Lib/WindowsRuntime/Blob/CloudBlockBlob.cs b/Lib/WindowsRuntime/Blob/CloudBlockBlob.cs
index af1d40268..b286ce261 100644
--- a/Lib/WindowsRuntime/Blob/CloudBlockBlob.cs
+++ b/Lib/WindowsRuntime/Blob/CloudBlockBlob.cs
@@ -333,7 +333,7 @@ public IAsyncAction UploadTextAsync(string content)
///
/// The text to upload, encoded as a UTF-8 string.
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// An that represents an asynchronous action.
[DoesServiceRequest]
@@ -457,7 +457,7 @@ public IAsyncOperation DownloadTextAsync()
/// Downloads the blob's contents as a string.
///
/// An object that represents the access conditions for the blob.
- /// An object that specifies additional options for the request.
+ /// A object that specifies additional options for the request.
/// An object that represents the context for the current operation.
/// The contents of the blob, as a string.
public IAsyncOperation DownloadTextAsync(AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext)
@@ -591,7 +591,7 @@ public IAsyncAction FetchAttributesAsync()
///
/// An object that represents the access conditions for the blob. If null, no condition is used.
/// A object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// An object that represents the context for the current operation.
/// An that represents an asynchronous action.
[DoesServiceRequest]
public IAsyncAction FetchAttributesAsync(AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext)
@@ -619,7 +619,7 @@ public IAsyncAction SetMetadataAsync()
///
/// An object that represents the access conditions for the blob. If null, no condition is used.
/// A object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// An object that represents the context for the current operation.
/// An that represents an asynchronous action.
[DoesServiceRequest]
public IAsyncAction SetMetadataAsync(AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext)
@@ -648,7 +648,7 @@ public IAsyncAction SetPropertiesAsync()
///
/// An object that represents the access conditions for the blob. If null, no condition is used.
/// A object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// An object that represents the context for the current operation.
/// An that represents an asynchronous action.
[DoesServiceRequest]
public IAsyncAction SetPropertiesAsync(AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext)
@@ -678,7 +678,7 @@ public IAsyncAction DeleteAsync()
/// Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots.
/// An object that represents the access conditions for the blob. If null, no condition is used.
/// A object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// An object that represents the context for the current operation.
/// An that represents an asynchronous action.
[DoesServiceRequest]
public IAsyncAction DeleteAsync(DeleteSnapshotsOption deleteSnapshotsOption, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext)
@@ -768,7 +768,7 @@ public IAsyncOperation CreateSnapshotAsync()
/// A collection of name-value pairs defining the metadata of the snapshot.
/// An object that represents the access conditions for the blob. If null, no condition is used.
/// An object that specifies additional options for the request, or null.
- /// An object that represents the context for the current operation.
+ /// An object that represents the context for the current operation.
/// A blob snapshot.
[DoesServiceRequest]
public IAsyncOperation CreateSnapshotAsync(IDictionary metadata, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext)
@@ -964,7 +964,7 @@ public IAsyncAction PutBlockAsync(string blockId, IInputStream blockData, string
/// on the blob. May be null or an empty string.
/// An object that represents the access conditions for the blob. If null, no condition is used.
/// A object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// An object that represents the context for the current operation.
/// An that represents an asynchronous action.
[DoesServiceRequest]
public IAsyncAction PutBlockAsync(string blockId, IInputStream blockData, string contentMD5, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext)
@@ -1027,7 +1027,7 @@ public IAsyncAction PutBlockListAsync(IEnumerable blockList)
/// An enumerable collection of block IDs, as base64-encoded strings.
/// An object that represents the access conditions for the blob. If null, no condition is used.
/// A object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// An object that represents the context for the current operation.
/// An that represents an asynchronous action.
[DoesServiceRequest]
public IAsyncAction PutBlockListAsync(IEnumerable blockList, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext)
@@ -1058,7 +1058,7 @@ public IAsyncOperation> DownloadBlockListAsync()
/// committed blocks, uncommitted blocks, or both.
/// An object that represents the access conditions for the blob. If null, no condition is used.
/// A object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// An object that represents the context for the current operation.
/// An enumerable collection of objects implementing .
[DoesServiceRequest]
public IAsyncOperation> DownloadBlockListAsync(BlockListingFilter blockListingFilter, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext)
diff --git a/Lib/WindowsRuntime/Blob/CloudPageBlob.cs b/Lib/WindowsRuntime/Blob/CloudPageBlob.cs
index ebb77622b..2c7eda006 100644
--- a/Lib/WindowsRuntime/Blob/CloudPageBlob.cs
+++ b/Lib/WindowsRuntime/Blob/CloudPageBlob.cs
@@ -469,7 +469,7 @@ public IAsyncAction CreateAsync(long size)
/// The maximum size of the page blob, in bytes.
/// An object that represents the access conditions for the blob. If null, no condition is used.
/// A object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// An object that represents the context for the current operation.
/// An that represents an asynchronous action.
[DoesServiceRequest]
public IAsyncAction CreateAsync(long size, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext)
@@ -499,7 +499,7 @@ public IAsyncAction ResizeAsync(long size)
/// The maximum size of the page blob, in bytes.
/// An object that represents the access conditions for the blob. If null, no condition is used.
/// A object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// An object that represents the context for the current operation.
/// An that represents an asynchronous action.
[DoesServiceRequest]
public IAsyncAction ResizeAsync(long size, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext)
@@ -531,7 +531,7 @@ public IAsyncAction SetSequenceNumberAsync(SequenceNumberAction sequenceNumberAc
/// The sequence number. Set this parameter to null if is equal to .
/// An object that represents the access conditions for the blob. If null, no condition is used.
/// A object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// An object that represents the context for the current operation.
/// An that represents an asynchronous action.
[DoesServiceRequest]
public IAsyncAction SetSequenceNumberAsync(SequenceNumberAction sequenceNumberAction, long? sequenceNumber, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext)
@@ -598,7 +598,7 @@ public IAsyncAction FetchAttributesAsync()
///
/// An object that represents the access conditions for the blob. If null, no condition is used.
/// A object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// An object that represents the context for the current operation.
/// An that represents an asynchronous action.
[DoesServiceRequest]
public IAsyncAction FetchAttributesAsync(AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext)
@@ -656,7 +656,7 @@ public IAsyncAction SetMetadataAsync()
///
/// An object that represents the access conditions for the blob. If null, no condition is used.
/// A object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// An object that represents the context for the current operation.
/// An that represents an asynchronous action.
[DoesServiceRequest]
public IAsyncAction SetMetadataAsync(AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext)
@@ -685,7 +685,7 @@ public IAsyncAction SetPropertiesAsync()
///
/// An object that represents the access conditions for the blob. If null, no condition is used.
/// A object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// An object that represents the context for the current operation.
/// An that represents an asynchronous action.
[DoesServiceRequest]
public IAsyncAction SetPropertiesAsync(AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext)
@@ -715,7 +715,7 @@ public IAsyncAction DeleteAsync()
/// Whether to only delete the blob, to delete the blob and all snapshots, or to only delete the snapshots.
/// An object that represents the access conditions for the blob. If null, no condition is used.
/// A object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// An object that represents the context for the current operation.
/// An that represents an asynchronous action.
[DoesServiceRequest]
public IAsyncAction DeleteAsync(DeleteSnapshotsOption deleteSnapshotsOption, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext)
@@ -805,7 +805,7 @@ public IAsyncOperation CreateSnapshotAsync()
/// A collection of name-value pairs defining the metadata of the snapshot.
/// An object that represents the access conditions for the blob. If null, no condition is used.
/// A object that specifies additional options for the request, or null.
- /// An object that represents the context for the current operation.
+ /// An object that represents the context for the current operation.
/// A blob snapshot.
[DoesServiceRequest]
public IAsyncOperation CreateSnapshotAsync(IDictionary metadata, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext)
@@ -1001,7 +1001,7 @@ public IAsyncAction WritePagesAsync(IInputStream pageData, long startOffset, str
/// on the blob. May be null or an empty string.
/// An object that represents the access conditions for the blob. If null, no condition is used.
/// A object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// An object that represents the context for the current operation.
/// An that represents an asynchronous action.
[DoesServiceRequest]
public IAsyncAction WritePagesAsync(IInputStream pageData, long startOffset, string contentMD5, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext)
@@ -1066,7 +1066,7 @@ public IAsyncAction ClearPagesAsync(long startOffset, long length)
/// The length of the data range to be cleared, in bytes. The length must be a multiple of 512.
/// An object that represents the access conditions for the blob. If null, no condition is used.
/// A object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// An object that represents the context for the current operation.
/// An that represents an asynchronous action.
[DoesServiceRequest]
public IAsyncAction ClearPagesAsync(long startOffset, long length, AccessCondition accessCondition, BlobRequestOptions options, OperationContext operationContext)
diff --git a/Lib/WindowsRuntime/Properties/AssemblyInfo.cs b/Lib/WindowsRuntime/Properties/AssemblyInfo.cs
index dfd156f42..7a5c03f44 100644
--- a/Lib/WindowsRuntime/Properties/AssemblyInfo.cs
+++ b/Lib/WindowsRuntime/Properties/AssemblyInfo.cs
@@ -25,8 +25,8 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("3.0.1.0")]
-[assembly: AssemblyFileVersion("3.0.1.0")]
+[assembly: AssemblyVersion("3.0.2.0")]
+[assembly: AssemblyFileVersion("3.0.2.0")]
[assembly: ComVisible(false)]
#if SIGN
diff --git a/Lib/WindowsRuntime/Queue/CloudQueue.cs b/Lib/WindowsRuntime/Queue/CloudQueue.cs
index ee184b89b..308c9ed39 100644
--- a/Lib/WindowsRuntime/Queue/CloudQueue.cs
+++ b/Lib/WindowsRuntime/Queue/CloudQueue.cs
@@ -398,7 +398,7 @@ public IAsyncAction AddMessageAsync(CloudQueueMessage message)
/// The length of time from now during which the message will be invisible.
/// If null then the message will be visible immediately.
/// A object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// An object that represents the context for the current operation.
/// An that represents an asynchronous action.
[DoesServiceRequest]
public IAsyncAction AddMessageAsync(CloudQueueMessage message, TimeSpan? timeToLive, TimeSpan? initialVisibilityDelay, QueueRequestOptions options, OperationContext operationContext)
@@ -433,7 +433,7 @@ public IAsyncAction UpdateMessageAsync(CloudQueueMessage message, TimeSpan visib
/// The visibility timeout interval.
/// The message update fields.
/// A object that specifies additional options for the request.
- /// An object that represents the context for the current operation.
+ /// An object that represents the context for the current operation.
/// An that represents an asynchronous action.
[DoesServiceRequest]
public IAsyncAction UpdateMessageAsync(CloudQueueMessage message, TimeSpan visibilityTimeout, MessageUpdateFields updateFields, QueueRequestOptions options, OperationContext operationContext)
diff --git a/Lib/WindowsRuntimeTable/Properties/AssemblyInfo.cs b/Lib/WindowsRuntimeTable/Properties/AssemblyInfo.cs
index dbab32ae6..fbb79a5c2 100644
--- a/Lib/WindowsRuntimeTable/Properties/AssemblyInfo.cs
+++ b/Lib/WindowsRuntimeTable/Properties/AssemblyInfo.cs
@@ -25,8 +25,8 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("3.0.1.0")]
-[assembly: AssemblyFileVersion("3.0.1.0")]
+[assembly: AssemblyVersion("3.0.2.0")]
+[assembly: AssemblyFileVersion("3.0.2.0")]
[assembly: ComVisible(false)]
#if SIGN
diff --git a/Lib/WindowsRuntimeTable/WindowsAzure.Storage.Table-Preview.nuspec b/Lib/WindowsRuntimeTable/WindowsAzure.Storage.Table-Preview.nuspec
index ace605332..c2bb15fc5 100644
--- a/Lib/WindowsRuntimeTable/WindowsAzure.Storage.Table-Preview.nuspec
+++ b/Lib/WindowsRuntimeTable/WindowsAzure.Storage.Table-Preview.nuspec
@@ -2,7 +2,7 @@
WindowsAzure.Storage.Table-Preview
- 3.0.1.0-preview
+ 3.0.2.0-preview
Windows Azure Storage Tables Extension for Windows Runtime
Microsoft
Microsoft
@@ -16,7 +16,7 @@ Windows Azure Storage team's blog - http://blogs.msdn.com/b/windowsazurestorage/
A table extension library for Windows Runtime for working with Windows Azure Storage tables.
Microsoft, Azure, Storage, Table, Scalable, winrt, windowsazureofficial
-
+
diff --git a/Test/ClassLibraryCommon/Queue/CloudQueueTest.cs b/Test/ClassLibraryCommon/Queue/CloudQueueTest.cs
index 6ff336508..724df8e21 100644
--- a/Test/ClassLibraryCommon/Queue/CloudQueueTest.cs
+++ b/Test/ClassLibraryCommon/Queue/CloudQueueTest.cs
@@ -68,6 +68,7 @@ public void CloudQueueCreateAndDelete()
CloudQueueClient client = GenerateCloudQueueClient();
CloudQueue queue = client.GetQueueReference(name);
queue.Create();
+ queue.Create();
queue.Delete();
}
@@ -89,6 +90,10 @@ public void CloudQueueCreateAndDeleteAPM()
waitHandle.WaitOne();
queue.EndCreate(result);
+ result = queue.BeginCreate(ar => waitHandle.Set(), null);
+ waitHandle.WaitOne();
+ queue.EndCreate(result);
+
result = queue.BeginExists(ar => waitHandle.Set(), null);
waitHandle.WaitOne();
Assert.IsTrue(queue.EndExists(result));
@@ -112,7 +117,8 @@ public void CloudQueueCreateAndDeleteTask()
CloudQueueClient client = GenerateCloudQueueClient();
CloudQueue queue = client.GetQueueReference(name);
queue.CreateAsync().Wait();
- queue.ExistsAsync().Wait();
+ queue.CreateAsync().Wait();
+ Assert.IsTrue(queue.ExistsAsync().Result);
queue.DeleteAsync().Wait();
}
#endif
diff --git a/Test/ClassLibraryCommon/Table/TableBatchOperationTest.cs b/Test/ClassLibraryCommon/Table/TableBatchOperationTest.cs
index 18a73810d..2e305a872 100644
--- a/Test/ClassLibraryCommon/Table/TableBatchOperationTest.cs
+++ b/Test/ClassLibraryCommon/Table/TableBatchOperationTest.cs
@@ -2836,7 +2836,7 @@ private void DoTableBatchOperationWithRetryHasCorrectNumberOfResults(TablePayloa
TableBatchOperation batch = new TableBatchOperation();
for (int i = 0; i < 100; i++)
{
- DynamicTableEntity insertEntity = new DynamicTableEntity("retry test", i.ToString());
+ DynamicTableEntity insertEntity = new DynamicTableEntity("retry test", format.ToString() + i.ToString());
insertEntity.Properties.Add("prop", new EntityProperty(new byte[20 * 1024]));
batch.Insert(insertEntity);
}
@@ -2872,6 +2872,8 @@ private void DoTableBatchOperationWithRetryHasCorrectNumberOfResults(TablePayloa
[TestCategory(TenantTypeCategory.DevStore), TestCategory(TenantTypeCategory.DevFabric), TestCategory(TenantTypeCategory.Cloud)]
public void TableBatchOnSecondary()
{
+ AssertSecondaryEndpoint();
+
CloudTable table = GenerateCloudTableClient().GetTableReference(GenerateRandomTableName());
TableRequestOptions options = new TableRequestOptions()
diff --git a/Test/ClassLibraryCommon/TestHelper.cs b/Test/ClassLibraryCommon/TestHelper.cs
index e036091f1..76892b454 100644
--- a/Test/ClassLibraryCommon/TestHelper.cs
+++ b/Test/ClassLibraryCommon/TestHelper.cs
@@ -174,26 +174,24 @@ internal static void ExecuteAPMMethodWithCancellation(int cancellationDelayIn
Assert.AreEqual("Unused", storageException.RequestInformation.HttpStatusMessage);
}
- internal static void ExecuteAPMMethodWithRetry(int ExpectedAttempts,
- ProxyBehavior[] behaviors,
- Func begin,
- Func end)
+ internal static void ExecuteAPMMethodWithRetry(int expectedAttempts,
+ ProxyBehavior[] behaviors,
+ Func begin,
+ Func end)
{
string failMessage = null;
OperationContext opContext = new OperationContext();
using (HttpMangler proxy = new HttpMangler(false, behaviors))
{
- Debug.WriteLine("Begin");
using (ManualResetEvent completedEvent = new ManualResetEvent(false))
{
- ICancellableAsyncResult saveResult = begin(null
- , opContext,
+ ICancellableAsyncResult saveResult = begin(null,
+ opContext,
(resp) =>
{
try
{
- Debug.WriteLine("End");
end(resp);
}
catch (Exception badEx)
@@ -205,10 +203,10 @@ internal static void ExecuteAPMMethodWithRetry(int ExpectedAttempts,
completedEvent.Set();
}
},
- null);
+ null);
completedEvent.WaitOne();
- TestHelper.AssertNAttempts(opContext, ExpectedAttempts);
+ TestHelper.AssertNAttempts(opContext, expectedAttempts);
}
}
@@ -217,36 +215,36 @@ internal static void ExecuteAPMMethodWithRetry(int ExpectedAttempts,
}
#if TASK
- internal static void ExecuteTaskMethodWithRetry(int ExpectedAttempts,
- ProxyBehavior[] behaviors,
- Func> method)
+ internal static void ExecuteTaskMethodWithRetry(int expectedAttempts,
+ ProxyBehavior[] behaviors,
+ Func> method)
{
OperationContext opContext = new OperationContext();
using (HttpMangler proxy = new HttpMangler(false, behaviors))
{
method(null, opContext).Wait();
- TestHelper.AssertNAttempts(opContext, ExpectedAttempts);
+ TestHelper.AssertNAttempts(opContext, expectedAttempts);
}
}
#endif
- internal static void ExecuteMethodWithRetry(int ExpectedAttempts,
- ProxyBehavior[] behaviors,
- Func method)
+ internal static void ExecuteMethodWithRetry(int expectedAttempts,
+ ProxyBehavior[] behaviors,
+ Func method)
{
OperationContext opContext = new OperationContext();
using (HttpMangler proxy = new HttpMangler(false, behaviors))
{
method(null, opContext);
- TestHelper.AssertNAttempts(opContext, ExpectedAttempts);
+ TestHelper.AssertNAttempts(opContext, expectedAttempts);
}
}
- internal static void ExecuteMethodWithRetryInTryFinally(int ExpectedAttempts,
- ProxyBehavior[] behaviors,
- Func method)
+ internal static void ExecuteMethodWithRetryInTryFinally(int expectedAttempts,
+ ProxyBehavior[] behaviors,
+ Func method)
{
OperationContext opContext = new OperationContext();
@@ -258,7 +256,7 @@ internal static void ExecuteMethodWithRetryInTryFinally(int ExpectedAttempts,
}
finally
{
- TestHelper.AssertNAttempts(opContext, ExpectedAttempts);
+ TestHelper.AssertNAttempts(opContext, expectedAttempts);
}
}
}
diff --git a/Test/WindowsDesktop/Properties/AssemblyInfo.cs b/Test/WindowsDesktop/Properties/AssemblyInfo.cs
index 816b43805..5b6996442 100644
--- a/Test/WindowsDesktop/Properties/AssemblyInfo.cs
+++ b/Test/WindowsDesktop/Properties/AssemblyInfo.cs
@@ -31,5 +31,5 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("3.0.1.0")]
-[assembly: AssemblyFileVersion("3.0.1.0")]
+[assembly: AssemblyVersion("3.0.2.0")]
+[assembly: AssemblyFileVersion("3.0.2.0")]
diff --git a/Test/WindowsPhone/Properties/AssemblyInfo.cs b/Test/WindowsPhone/Properties/AssemblyInfo.cs
index 92bacb117..a8b534885 100644
--- a/Test/WindowsPhone/Properties/AssemblyInfo.cs
+++ b/Test/WindowsPhone/Properties/AssemblyInfo.cs
@@ -32,6 +32,6 @@
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
-[assembly: AssemblyVersion("3.0.1.0")]
-[assembly: AssemblyFileVersion("3.0.1.0")]
+[assembly: AssemblyVersion("3.0.2.0")]
+[assembly: AssemblyFileVersion("3.0.2.0")]
[assembly: NeutralResourcesLanguageAttribute("en-US")]
diff --git a/Test/WindowsPhone/Queue/CloudQueueTest.cs b/Test/WindowsPhone/Queue/CloudQueueTest.cs
index 41ec86f2e..031631b15 100644
--- a/Test/WindowsPhone/Queue/CloudQueueTest.cs
+++ b/Test/WindowsPhone/Queue/CloudQueueTest.cs
@@ -61,7 +61,8 @@ public async Task CloudQueueCreateAndDeleteAsync()
string name = GenerateNewQueueName();
CloudQueueClient client = GenerateCloudQueueClient();
CloudQueue queue = client.GetQueueReference(name);
-
+
+ await queue.CreateAsync();
await queue.CreateAsync();
await queue.DeleteAsync();
}
diff --git a/Test/WindowsPhone/Table/TableBatchOperationTaskTest.cs b/Test/WindowsPhone/Table/TableBatchOperationTaskTest.cs
index 06f5049e9..418cb11c3 100644
--- a/Test/WindowsPhone/Table/TableBatchOperationTaskTest.cs
+++ b/Test/WindowsPhone/Table/TableBatchOperationTaskTest.cs
@@ -1145,6 +1145,8 @@ private async Task InsertOrMergeBatchWithNEntities(int n, TablePayloadFormat for
[TestCategory(TenantTypeCategory.DevStore), TestCategory(TenantTypeCategory.DevFabric), TestCategory(TenantTypeCategory.Cloud)]
public async Task TableBatchOnSecondaryAsync()
{
+ AssertSecondaryEndpoint();
+
CloudTable table = GenerateCloudTableClient().GetTableReference(GenerateRandomTableName());
TableRequestOptions options = new TableRequestOptions()
diff --git a/Test/WindowsRuntime/Properties/AssemblyInfo.cs b/Test/WindowsRuntime/Properties/AssemblyInfo.cs
index cf7d48208..f3be4b1dc 100644
--- a/Test/WindowsRuntime/Properties/AssemblyInfo.cs
+++ b/Test/WindowsRuntime/Properties/AssemblyInfo.cs
@@ -22,5 +22,5 @@
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("3.0.1.0")]
-[assembly: AssemblyFileVersion("3.0.1.0")]
+[assembly: AssemblyVersion("3.0.2.0")]
+[assembly: AssemblyFileVersion("3.0.2.0")]
diff --git a/Test/WindowsRuntime/Queue/CloudQueueTest.cs b/Test/WindowsRuntime/Queue/CloudQueueTest.cs
index 395ac9a99..8851f6483 100644
--- a/Test/WindowsRuntime/Queue/CloudQueueTest.cs
+++ b/Test/WindowsRuntime/Queue/CloudQueueTest.cs
@@ -60,7 +60,8 @@ public async Task CloudQueueCreateAndDeleteAsync()
string name = GenerateNewQueueName();
CloudQueueClient client = GenerateCloudQueueClient();
CloudQueue queue = client.GetQueueReference(name);
-
+
+ await queue.CreateAsync();
await queue.CreateAsync();
await queue.DeleteAsync();
}
diff --git a/Test/WindowsRuntime/Table/TableBatchOperationTest.cs b/Test/WindowsRuntime/Table/TableBatchOperationTest.cs
index 7efc25ac7..c51786865 100644
--- a/Test/WindowsRuntime/Table/TableBatchOperationTest.cs
+++ b/Test/WindowsRuntime/Table/TableBatchOperationTest.cs
@@ -1001,6 +1001,8 @@ private async Task InsertOrMergeBatchWithNEntities(int n)
[TestCategory(TenantTypeCategory.DevStore), TestCategory(TenantTypeCategory.DevFabric), TestCategory(TenantTypeCategory.Cloud)]
public async Task TableBatchOnSecondaryAsync()
{
+ AssertSecondaryEndpoint();
+
CloudTable table = GenerateCloudTableClient().GetTableReference(GenerateRandomTableName());
TableRequestOptions options = new TableRequestOptions()
diff --git a/Test/WindowsRuntime/Table/TableOperationUnitTests.cs b/Test/WindowsRuntime/Table/TableOperationUnitTests.cs
index 5ef9f2559..98486061b 100644
--- a/Test/WindowsRuntime/Table/TableOperationUnitTests.cs
+++ b/Test/WindowsRuntime/Table/TableOperationUnitTests.cs
@@ -918,7 +918,7 @@ public async Task TableOperationInsertOver1MBAsync()
}
catch (Exception)
{
- TestHelper.ValidateResponse(opContext, 1, (int)HttpStatusCode.BadRequest, new string[] { "EntityTooLarge" }, "The entity is larger than allowed by the Table Service.");
+ TestHelper.ValidateResponse(opContext, 1, (int)HttpStatusCode.BadRequest, new string[] { "EntityTooLarge" }, "The entity is larger than the maximum allowed size (1MB).");
}
}
#endregion
diff --git a/changelog.txt b/changelog.txt
index a3b353063..cb7e1276a 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -180,3 +180,10 @@ Issues fixed in 3.0.1.0 :
- Tables: Added an explicit reference to Microsoft.Data.Services.Client in the Nuget package.
- Tables: Fixed an issue caused by a Json .NET bug that resulted in an error being thrown while parsing a table query response. More details on the bug can be found here: http://james.newtonking.com/archive/2013/11/29/fixing-jarray-getenumerator-method-not-found-bug
- Tables (RT): Fixed continuation tokens for queries and listing operations.
+
+Issues fixed in 3.0.2.0 :
+
+ - All (WP): Fixed an issue causing ArgumentOutOfRangeException in many APIs.
+ - Queues: Fixed an issue causing NullReferenceException when trying to re-create an existing queue.
+ - Tables: Fixed an issue with TableServiceContext causing NullReferenceException when the error response cannot be parsed.
+ - Tables (RT): Do not allow users to set JsonFullMetadata format on RequestOptions in RT, because JSON is not supported on the RT library yet.