Skip to content

Commit c673cc4

Browse files
author
hansdude
committed
Merge pull request #29 from rpmoore/master
Fixing a 307 retry bug
2 parents 38f3c7b + 0f16e9c commit c673cc4

File tree

3 files changed

+28
-7
lines changed

3 files changed

+28
-7
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ apply plugin: 'maven'
1919
sourceCompatibility = JavaVersion.VERSION_1_7
2020

2121
jar.archiveName = 'ds3_java_sdk'
22-
version = '0.7.0-SNAPSHOT'
22+
version = '0.7.1-SNAPSHOT'
2323
group = 'com.spectralogic'
2424

2525
install.dependsOn test //make sure that the tests get ran before attempting to install
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.spectralogic.ds3client;
2+
3+
4+
import org.apache.commons.io.IOUtils;
5+
import org.apache.http.entity.ContentType;
6+
import org.apache.http.entity.InputStreamEntity;
7+
8+
import java.io.IOException;
9+
import java.io.InputStream;
10+
import java.io.OutputStream;
11+
12+
public class Ds3InputStreamEntity extends InputStreamEntity{
13+
14+
public Ds3InputStreamEntity(final InputStream inStream, final long length, final ContentType contentType) {
15+
super(inStream, length, contentType);
16+
}
17+
18+
@Override
19+
public void writeTo(final OutputStream outStream) throws IOException {
20+
IOUtils.copy(this.getContent(), outStream);
21+
}
22+
}

src/main/java/com/spectralogic/ds3client/NetworkClientImpl.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,17 +61,16 @@ public ConnectionDetails getConnectionDetails() {
6161
@Override
6262
public WebResponse getResponse(final Ds3Request request) throws IOException, SignatureException {
6363
try (final RequestExecutor requestExecutor = new RequestExecutor(request)) {
64-
boolean redirect = false;
6564
int redirectCount = 0;
6665
do {
6766
final CloseableHttpResponse response = requestExecutor.execute();
6867
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_TEMPORARY_REDIRECT) {
69-
redirect = true;
7068
redirectCount++;
71-
continue;
7269
}
73-
return new WebResponseImpl(response);
74-
} while (redirect && redirectCount < this.connectionDetails.getRetries());
70+
else {
71+
return new WebResponseImpl(response);
72+
}
73+
} while (redirectCount < this.connectionDetails.getRetries());
7574

7675
throw new TooManyRedirectsException(redirectCount);
7776
}
@@ -126,7 +125,7 @@ private HttpRequest buildHttpRequest() throws IOException {
126125
final String path = this.buildPath();
127126
if (this.content != null) {
128127
final BasicHttpEntityEnclosingRequest httpRequest = new BasicHttpEntityEnclosingRequest(verb, path);
129-
httpRequest.setEntity(new InputStreamEntity(this.content, this.ds3Request.getSize(), this.ds3Request.getContentType()));
128+
httpRequest.setEntity(new Ds3InputStreamEntity(this.content, this.ds3Request.getSize(), this.ds3Request.getContentType()));
130129
return httpRequest;
131130
} else {
132131
return new BasicHttpRequest(verb, path);

0 commit comments

Comments
 (0)