Skip to content

Commit 96dfb41

Browse files
More fixes for SDK-575 (#71)
* * Update log4j. * Fix Sdk238V4Test.testTrailingSlash() test failure. * Revise test case Sdk238V4Test.testTrailingSlash() * Refactor S3JerseyUrlConnectionV4Test and minor changes * Fix test case testMpuAbortInMiddle. Co-authored-by: xuy25 <victoria.xu@dell.com>
1 parent 676020d commit 96dfb41

File tree

6 files changed

+46
-7
lines changed

6 files changed

+46
-7
lines changed

build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ dependencies {
7777
implementation 'org.slf4j:slf4j-api:1.7.32'
7878
testImplementation 'junit:junit:4.13.2'
7979
testRuntimeOnly 'org.slf4j:jcl-over-slf4j:1.7.32'
80-
testRuntimeOnly 'org.apache.logging.log4j:log4j-slf4j-impl:2.14.1'
80+
testRuntimeOnly 'org.apache.logging.log4j:log4j-slf4j-impl:2.16.0'
8181
}
8282

8383
allprojects {

src/main/java/com/emc/object/s3/S3SignerV4.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ protected String getCanonicalRequest(String method, URI uri, Map<String, String>
140140
else {
141141
canonicalRequest.append(HASHED_EMPTY_PAYLOAD);
142142
}
143-
log.debug("CanonicalRequest: {}" + canonicalRequest);
143+
log.debug("CanonicalRequest: {}", canonicalRequest);
144144
return canonicalRequest.toString();
145145
}
146146

src/test/java/com/emc/object/s3/S3JerseyClientTest.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -2773,7 +2773,10 @@ public void run() {
27732773
future.get();
27742774
} catch (Throwable e) {
27752775
while (e.getCause() != null && e.getCause() != e) e = e.getCause();
2776-
if (e instanceof SocketException && e.getMessage().startsWith("Broken pipe")) continue;
2776+
if (e instanceof SocketException && (e.getMessage().startsWith("Broken pipe")
2777+
|| e.getMessage().startsWith("Connection reset by peer")
2778+
|| e.getMessage().startsWith("Software caused connection abort")))
2779+
continue;
27772780
if (!(e instanceof S3Exception)) throw new RuntimeException(e);
27782781
S3Exception se = (S3Exception) e;
27792782
if (!"NoSuchUpload".equals(se.getErrorCode()) && !"NoSuchKey".equals(se.getErrorCode()))

src/test/java/com/emc/object/s3/S3JerseyUrlConnectionV4Test.java

+32-1
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,17 @@
22

33
import com.emc.object.ObjectConfig;
44
import com.emc.object.s3.jersey.S3JerseyClient;
5+
import com.emc.object.s3.request.PutObjectRequest;
6+
import com.emc.util.RandomInputStream;
57
import com.sun.jersey.client.urlconnection.URLConnectionClientHandler;
8+
import org.junit.Assert;
9+
import org.junit.Ignore;
10+
import org.junit.Test;
11+
12+
import java.io.InputStream;
613
import java.net.URI;
714

8-
public class S3JerseyUrlConnectionV4Test extends S3JerseyUrlConnectionTest {
15+
public class S3JerseyUrlConnectionV4Test extends S3JerseyClientV4Test {
916
@Override
1017
protected String getTestBucketPrefix() {
1118
return "s3-url-connection-v4-test";
@@ -23,4 +30,28 @@ public S3Client createS3Client() throws Exception {
2330
}
2431
return new S3JerseyClient(config, new URLConnectionClientHandler());
2532
}
33+
34+
@Ignore // only run this test against a co-located ECS!
35+
@Test
36+
public void testVeryLargeWrite() throws Exception {
37+
String key = "very-large-object";
38+
long size = (long) Integer.MAX_VALUE + 102400;
39+
InputStream content = new RandomInputStream(size);
40+
S3ObjectMetadata metadata = new S3ObjectMetadata().withContentLength(size);
41+
PutObjectRequest request = new PutObjectRequest(getTestBucket(), key, content).withObjectMetadata(metadata);
42+
client.putObject(request);
43+
44+
Assert.assertEquals(size, client.getObjectMetadata(getTestBucket(), key).getContentLength().longValue());
45+
}
46+
47+
@Ignore // only run this test against a co-located ECS!
48+
@Test
49+
public void testVeryLargeChunkedWrite() throws Exception {
50+
String key = "very-large-chunked-object";
51+
long size = (long) Integer.MAX_VALUE + 102400;
52+
InputStream content = new RandomInputStream(size);
53+
client.putObject(getTestBucket(), key, content, null);
54+
55+
Assert.assertEquals(size, client.getObjectMetadata(getTestBucket(), key).getContentLength().longValue());
56+
}
2657
}

src/test/java/com/emc/object/s3/Sdk238V4Test.java

+7-2
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,17 @@ public class Sdk238V4Test extends Sdk238Test{
1515
@Override
1616
@Test
1717
public void testTrailingSlash() throws Exception {
18-
Sdk238V4Test.TestClient client = new Sdk238V4Test.TestClient(AbstractS3ClientTest.s3ConfigFromProperties());
18+
S3Config s3Config = AbstractS3ClientTest.s3ConfigFromProperties();
19+
Sdk238V4Test.TestClient client = new Sdk238V4Test.TestClient(s3Config);
1920

2021
String bucket = "test-trailing-slash-v4";
2122
client.createBucket(bucket);
2223
try {
23-
Assert.assertEquals("/" + bucket, client.getLastUri().getPath());
24+
if (s3Config.isUseVHost()) {
25+
Assert.assertEquals("/", client.getLastUri().getPath());
26+
} else {
27+
Assert.assertEquals("/" + bucket, client.getLastUri().getPath());
28+
}
2429
} finally {
2530
client.deleteBucket(bucket);
2631
}

src/test/java/com/emc/object/s3/bean/QueryObjectResultTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ public void testMarshalling() throws Exception {
109109

110110
result.setObjects(objects);
111111

112-
List<String> prefixGroups = new ArrayList<String>(Arrays.asList("prefix/"));
112+
List<String> prefixGroups = Arrays.asList("prefix/");
113113
result.setPrefixGroups(prefixGroups);
114114

115115
// unmarshall and compare to object

0 commit comments

Comments
 (0)