-
Notifications
You must be signed in to change notification settings - Fork 62
Known limitations
This issue should be fixed. Should you encounter this error, please open a new issue.
- gooddata-java issue: DataStoreService call fails with 500
- GoodData internal issue: WA-6316
The GoodData WebDAV Server unfortunately doesn't follow the specification - section 8.2.3. After receiving the header part of the PUT request it should send either 100 - continue or final response (i.e. 401 in case of yet unauthenticated request). Instead of that it doesn't send anything, but waits to receive the request body. The body is sent by GoodData Java SDK with 3s delay implemented in HTTP Client. This has following results:
In case the PUT on WebDAV is the first request, the client is not yet authenticated. The PUT with delay causes internal error on WebDAV (status 500). Unfortunately the InputStream passed to upload method has been read. Such a case is signalized with DataStoreException and message similar to
Got 500 while uploading to https://secure.gooddata.com/uploads/path_of_the_uploaded_file.
This can be known limitation, see https://github.com/gooddata/gooddata-java/wiki/Known-limitations
If you met this, please change your code to do some other request first in order to get authenticated properly.
Since the GoodData WebDAV never sends 100 - continue response, every authenticated request suffers the 3s delay between sending header and body.
There is a possibility to configure shorter delay, which on the other hand can cause a bit more cryptic exception reporting stream closed.