Don't miss calls to TeeInputStream.reachedEndOfFile()
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 9ef8932..18569a2 100644
--- a/org.eclipse.userstorage/src/org/eclipse/userstorage/internal/Session.java
+++ b/org.eclipse.userstorage/src/org/eclipse/userstorage/internal/Session.java
@@ -167,6 +167,12 @@
if (useETag)
{
String eTag = properties.get(Blob.ETAG);
+
+ if (DEBUG)
+ {
+ System.out.println("Retrieving etag = " + eTag);
+ }
+
if (!StringUtil.isEmpty(eTag))
{
request.setHeader(IF_NONE_MATCH, "\"" + eTag + "\"");
@@ -184,6 +190,11 @@
String eTag = getETag(response);
if (eTag != null)
{
+ if (DEBUG)
+ {
+ System.out.println("Retrieved etag = " + eTag);
+ }
+
properties.put(Blob.ETAG, eTag);
}
@@ -228,6 +239,12 @@
Request request = configureRequest(Request.Put(uri), uri);
String eTag = properties.get(Blob.ETAG);
+
+ if (DEBUG)
+ {
+ System.out.println("Updating etag = " + eTag);
+ }
+
if (!StringUtil.isEmpty(eTag))
{
request.setHeader(IF_MATCH, "\"" + eTag + "\"");
@@ -256,6 +273,11 @@
throw new ProtocolException("PUT", uri, getProtocolVersion(response.getStatusLine()), BAD_RESPONSE, "Bad Response : No ETag");
}
+ if (DEBUG)
+ {
+ System.out.println("Updated etag = " + eTag);
+ }
+
properties.put(Blob.ETAG, eTag);
return statusCode == CREATED;
}
diff --git a/org.eclipse.userstorage/src/org/eclipse/userstorage/internal/util/IOUtil.java b/org.eclipse.userstorage/src/org/eclipse/userstorage/internal/util/IOUtil.java
index c32aa5e..4a21e26 100644
--- a/org.eclipse.userstorage/src/org/eclipse/userstorage/internal/util/IOUtil.java
+++ b/org.eclipse.userstorage/src/org/eclipse/userstorage/internal/util/IOUtil.java
@@ -327,7 +327,8 @@
{
out.write(b, off, n);
}
- else
+
+ if (n < len)
{
reachedEndOfFile();
}