1
Vote

Cannot update table entity using retrieved Microsoft_WindowsAzure_Storage_DynamicTableEntity

description

The problem is that when I call this:
 
$entity = $storage -> retrieveEntities($tableName);
$entity -> Name = "New name;"
$storage -> updateEntity($tableName,$entity);
 
it fails giving me Microsoft_WindowsAzure_Exception Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.
 
The problem is that the result of retrieveEntities is Microsoft_WindowsAzure_Storage_DynamicTableEntity and then updateEntity calls on it getAzureValues and both $this->_dynamicProperties and parent::getAzureValues() return timestamp which leads to an array with two timestamps which leads to the error
 
hot fix I made was adding this code:
if(isset($this->_dynamicProperties["timestamp"]))unset($this->_dynamicProperties["timestamp"]);
on the line before return in getAzureValues in Microsoft_WindowsAzure_Storage_DynamicTableEntity
and then it works as a magic :]
 
this error is both in the old SDK and in the latest SDK from trun, please fix it

comments