Remove "Bad Request" work-around
diff --git a/org.eclipse.userstorage.tests/src/org/eclipse/userstorage/tests/StorageTests.java b/org.eclipse.userstorage.tests/src/org/eclipse/userstorage/tests/StorageTests.java
index 3f36bd7..6899ba0 100644
--- a/org.eclipse.userstorage.tests/src/org/eclipse/userstorage/tests/StorageTests.java
+++ b/org.eclipse.userstorage.tests/src/org/eclipse/userstorage/tests/StorageTests.java
@@ -237,17 +237,8 @@
IStorage storage = factory.create(APPLICATION_TOKEN);
IBlob blob = storage.getBlob(KEY);
blob.setETag(WRONG_ETAG);
-
- try
- {
- blob.setContentsUTF("Text 2"); // Update attempt 1
- fail("ConflictException expected");
- }
- catch (ConflictException expected)
- {
- assertThat(expected.getETag(), isNull());
- assertThat(blob.getETag(), isNull());
- }
+ blob.setContentsUTF("Text 2"); // Update attempt 1
+ assertThat(blob.getETag(), isNotNull());
}
@Test
diff --git a/org.eclipse.userstorage.tests/src/org/eclipse/userstorage/tests/util/USSServer.java b/org.eclipse.userstorage.tests/src/org/eclipse/userstorage/tests/util/USSServer.java
index be2fe4f..6af036f 100644
--- a/org.eclipse.userstorage.tests/src/org/eclipse/userstorage/tests/util/USSServer.java
+++ b/org.eclipse.userstorage.tests/src/org/eclipse/userstorage/tests/util/USSServer.java
@@ -352,14 +352,6 @@
return;
}
}
- else
- {
- if (!StringUtil.isEmpty(ifMatch))
- {
- response.sendError(HttpServletResponse.SC_CONFLICT);
- return;
- }
- }
String etag = UUID.randomUUID().toString();
diff --git a/org.eclipse.userstorage/src/org/eclipse/userstorage/internal/Session.java b/org.eclipse.userstorage/src/org/eclipse/userstorage/internal/Session.java
index 3d9d831..9ef8932 100644
--- a/org.eclipse.userstorage/src/org/eclipse/userstorage/internal/Session.java
+++ b/org.eclipse.userstorage/src/org/eclipse/userstorage/internal/Session.java
@@ -243,35 +243,21 @@
{
String eTag = getETag(response);
- try
+ int statusCode = getStatusCode("PUT", uri, response, OK, CREATED, CONFLICT);
+
+ if (statusCode == CONFLICT)
{
- int statusCode = getStatusCode("PUT", uri, response, OK, CREATED, CONFLICT);
-
- if (statusCode == CONFLICT)
- {
- StatusLine statusLine = response.getStatusLine();
- throw new ConflictException("PUT", uri, getProtocolVersion(statusLine), statusLine.getReasonPhrase(), eTag);
- }
-
- if (eTag == null)
- {
- throw new ProtocolException("PUT", uri, getProtocolVersion(response.getStatusLine()), BAD_RESPONSE, "Bad Response : No ETag");
- }
-
- properties.put(Blob.ETAG, eTag);
- return statusCode == CREATED;
+ StatusLine statusLine = response.getStatusLine();
+ throw new ConflictException("PUT", uri, getProtocolVersion(statusLine), statusLine.getReasonPhrase(), eTag);
}
- catch (ProtocolException ex)
+
+ if (eTag == null)
{
- int xxx;
- if (ex.getStatusCode() == BAD_REQUEST && ex.getReasonPhrase().contains("The resource already exist"))
- {
- StatusLine statusLine = response.getStatusLine();
- throw new ConflictException("PUT", uri, getProtocolVersion(statusLine), "The resource already exists.", eTag);
- }
-
- throw ex;
+ throw new ProtocolException("PUT", uri, getProtocolVersion(response.getStatusLine()), BAD_RESPONSE, "Bad Response : No ETag");
}
+
+ properties.put(Blob.ETAG, eTag);
+ return statusCode == CREATED;
}
}.send(credentialsProvider);
}
@@ -333,11 +319,11 @@
if (headers != null && headers.length != 0)
{
String eTag = headers[0].getValue();
-
- // Remove the quotes.
- eTag = eTag.substring(1, eTag.length() - 1);
-
- return eTag;
+ if (!StringUtil.isEmpty(eTag))
+ {
+ // Remove the quotes.
+ return eTag.substring(1, eTag.length() - 1);
+ }
}
return null;