diff --git a/ChangeLog.txt b/ChangeLog.txt
index 6b3d82bff6397..d64351f5a41a4 100644
--- a/ChangeLog.txt
+++ b/ChangeLog.txt
@@ -1,3 +1,6 @@
+2017.06.21 Version 5.3.1
+ * Fixed a bug in specific upload case for block blobs. This only affects uploads greater than the max put blob threshold, that have increased the streamWriteSizeInBytes beyond the 4 MB and storeBlobContentMD5 has been disabled.
+
2017.06.13 Version 5.3.0
* Fixed a bug where the transactional MD5 check would fail when downloading a range of blob or file and the recovery action is performed on a subsection of the range.
* Fixed leaking connections for table requests.
diff --git a/README.md b/README.md
index 1e9ae73786359..4f6743cfde7bb 100644
--- a/README.md
+++ b/README.md
@@ -30,7 +30,7 @@ To get the binaries of this library as distributed by Microsoft, ready for use w
com.microsoft.azure
azure-storage
- 5.3.0
+ 5.3.1
```
@@ -127,6 +127,8 @@ If you would like to become an active contributor to this project please follow
If you encounter any bugs with the library please file an issue in the [Issues](https://github.com/Azure/azure-storage-java/issues) section of the project.
+When sending pull requests, please send non-breaking PRs to the dev branch and breaking changes to the dev_breaking branch. Do not make PRs against master.
+
# Learn More
* [Azure Developer Center](http://azure.microsoft.com/en-us/develop/java/)
diff --git a/microsoft-azure-storage-samples/pom.xml b/microsoft-azure-storage-samples/pom.xml
index 11136e566f422..8f4e5c09045f7 100644
--- a/microsoft-azure-storage-samples/pom.xml
+++ b/microsoft-azure-storage-samples/pom.xml
@@ -26,7 +26,7 @@
com.microsoft.azure
azure-storage
- 5.3.0
+ 5.3.1
com.microsoft.azure
diff --git a/microsoft-azure-storage-test/src/com/microsoft/azure/storage/blob/CloudBlockBlobTests.java b/microsoft-azure-storage-test/src/com/microsoft/azure/storage/blob/CloudBlockBlobTests.java
index 5027d672b2cce..c62f29da77a4d 100644
--- a/microsoft-azure-storage-test/src/com/microsoft/azure/storage/blob/CloudBlockBlobTests.java
+++ b/microsoft-azure-storage-test/src/com/microsoft/azure/storage/blob/CloudBlockBlobTests.java
@@ -1057,8 +1057,9 @@ public void testLargeBlobUploadFromStreamAccessConditionTest() throws URISyntaxE
srcStream = BlobTestHelper.getRandomDataStream(length);
blockBlobRef.upload(srcStream, length, accessCondition, options, null);
}
- catch (StorageException ex)
+ catch (IOException e)
{
+ StorageException ex = (StorageException)e.getCause();
assertEquals(412, ex.getHttpStatusCode());
assertEquals(StorageErrorCodeStrings.CONDITION_NOT_MET, ex.getErrorCode());
}
diff --git a/microsoft-azure-storage/src/com/microsoft/azure/storage/Constants.java b/microsoft-azure-storage/src/com/microsoft/azure/storage/Constants.java
index 23302fab50ed9..911d0eed86dbc 100644
--- a/microsoft-azure-storage/src/com/microsoft/azure/storage/Constants.java
+++ b/microsoft-azure-storage/src/com/microsoft/azure/storage/Constants.java
@@ -661,7 +661,7 @@ public static class HeaderConstants {
/**
* Specifies the value to use for UserAgent header.
*/
- public static final String USER_AGENT_VERSION = "5.3.0";
+ public static final String USER_AGENT_VERSION = "5.3.1";
/**
* The default type for content-type and accept
diff --git a/microsoft-azure-storage/src/com/microsoft/azure/storage/blob/CloudBlockBlob.java b/microsoft-azure-storage/src/com/microsoft/azure/storage/blob/CloudBlockBlob.java
index 301ca433e32a2..4664bbc99bf5e 100644
--- a/microsoft-azure-storage/src/com/microsoft/azure/storage/blob/CloudBlockBlob.java
+++ b/microsoft-azure-storage/src/com/microsoft/azure/storage/blob/CloudBlockBlob.java
@@ -733,6 +733,11 @@ public byte[] getByteArray() {
|| options.getStoreBlobContentMD5()
|| descriptor.getLength() == -1;
+ // there are two known issues with the uploadFromMultiStream logic
+ // 1. The same block ids are being used for each batch of uploads.
+ // 2. When using a bufferedInputStream and the size of the stream being uploaded exceeds Integer.MAX_VALUE,
+ // a NegativeArraySizeException is thrown when attempting to skip past the 1 GB mark.
+ useOpenWrite = true;
if (useOpenWrite) {
final BlobOutputStream writeStream = this.openOutputStream(accessCondition, options, opContext);
try {
diff --git a/pom.xml b/pom.xml
index 45afc55695a79..ac91bbaf98fe8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
4.0.0
com.microsoft.azure
azure-storage
- 5.3.0
+ 5.3.1
jar
Microsoft Azure Storage Client SDK