Skip to content

Commit b41a097

Browse files
committed
fix 2.2.3 bugs
1 parent 54a9d41 commit b41a097

File tree

7 files changed

+48
-12
lines changed

7 files changed

+48
-12
lines changed

src/main/java/com/aliyun/oss/OSSClient.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1408,7 +1408,10 @@ public String generateRtmpUri(GenerateRtmpUriRequest generatePushflowUrlRequest)
14081408

14091409
@Override
14101410
public void shutdown() {
1411-
serviceClient.shutdown();
1411+
try {
1412+
serviceClient.shutdown();
1413+
} catch(Exception e) {
1414+
}
14121415
}
14131416

14141417
}

src/main/java/com/aliyun/oss/common/comm/DefaultServiceClient.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
import org.apache.http.conn.ssl.NoopHostnameVerifier;
4747
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
4848
import org.apache.http.conn.ssl.TrustStrategy;
49+
import org.apache.http.impl.client.BasicCredentialsProvider;
4950
import org.apache.http.impl.client.CloseableHttpClient;
5051
import org.apache.http.impl.client.HttpClients;
5152
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
@@ -93,6 +94,7 @@ public DefaultServiceClient(ClientConfiguration config) {
9394
String proxyDomain = config.getProxyDomain();
9495
String proxyWorkstation = config.getProxyWorkstation();
9596
if (proxyUsername != null && proxyPassword != null){
97+
this.credentialsProvider = new BasicCredentialsProvider();
9698
this.credentialsProvider.setCredentials(new AuthScope(proxyHost, proxyPort),
9799
new NTCredentials(proxyUsername, proxyPassword, proxyWorkstation, proxyDomain));
98100
}

src/main/java/com/aliyun/oss/internal/OSSBucketOperation.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,11 +245,15 @@ public void setBucketAcl(SetBucketAclRequest setBucketAclRequest)
245245
Map<String, String> headers = new HashMap<String, String>();
246246
addOptionalACLHeader(headers, setBucketAclRequest.getCannedACL());
247247

248+
Map<String, String> params = new HashMap<String, String>();
249+
params.put(SUBRESOURCE_ACL, null);
250+
248251
RequestMessage request = new OSSRequestMessageBuilder(getInnerClient())
249252
.setEndpoint(getEndpoint())
250253
.setMethod(HttpMethod.PUT)
251254
.setBucket(bucketName)
252255
.setHeaders(headers)
256+
.setParameters(params)
253257
.setOriginalRequest(setBucketAclRequest)
254258
.build();
255259

src/main/java/com/aliyun/oss/internal/OSSMultipartOperation.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@
4949
import java.io.IOException;
5050
import java.io.InputStream;
5151
import java.util.ArrayList;
52+
import java.util.Collections;
53+
import java.util.Comparator;
5254
import java.util.HashMap;
5355
import java.util.LinkedHashMap;
5456
import java.util.List;
@@ -156,6 +158,14 @@ public CompleteMultipartUploadResult completeMultipartUpload(
156158
Map<String, String> parameters = new HashMap<String, String>();
157159
parameters.put(UPLOAD_ID, uploadId);
158160

161+
List<PartETag> partETags = completeMultipartUploadRequest.getPartETags();
162+
Collections.sort(partETags, new Comparator<PartETag>() {
163+
@Override
164+
public int compare(PartETag p1, PartETag p2) {
165+
return p1.getPartNumber() - p2.getPartNumber();
166+
}
167+
});
168+
159169
RequestMessage request = new OSSRequestMessageBuilder(getInnerClient())
160170
.setEndpoint(getEndpoint())
161171
.setMethod(HttpMethod.POST)

src/test/java/com/aliyun/oss/OSSClientRequestTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -561,13 +561,15 @@ public void run() throws Exception{
561561
public void testCompleteMultipartUploadRequest(){
562562
String uploadId = "upload123";
563563
List<PartETag> partETags = new LinkedList<PartETag>();
564-
partETags.add(new PartETag(1, "PART1ABCD"));
565564
partETags.add(new PartETag(2, "PART2ABCD"));
565+
partETags.add(new PartETag(1, "PART1ABCD"));
566+
partETags.add(new PartETag(3, "PART3ABCD"));
566567
final CompleteMultipartUploadRequest request =
567568
new CompleteMultipartUploadRequest(bucketName, objectKey, uploadId, partETags);
568569
String requestXml = "<CompleteMultipartUpload>"
569570
+ "<Part><PartNumber>1</PartNumber><ETag>&quot;PART1ABCD&quot;</ETag></Part>"
570571
+ "<Part><PartNumber>2</PartNumber><ETag>&quot;PART2ABCD&quot;</ETag></Part>"
572+
+ "<Part><PartNumber>3</PartNumber><ETag>&quot;PART3ABCD&quot;</ETag></Part>"
571573
+ "</CompleteMultipartUpload>";
572574

573575
TestAction test1 = new TestAction(){

src/test/java/com/aliyun/oss/common/comm/OSSClientTest.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929

3030
import org.junit.Test;
3131

32+
import com.aliyun.oss.ClientConfiguration;
3233
import com.aliyun.oss.OSSClient;
3334
import com.aliyun.oss.model.GeneratePresignedUrlRequest;
3435

@@ -64,5 +65,21 @@ public void testGeneratePresignedUrl() throws IOException {
6465
url = client.generatePresignedUrl(request);
6566
assertTrue(!url.getQuery().equals("Expires=1422720000&OSSAccessKeyId=id&Signature=XA8ThdVKdJQ4vlkoggdzCs5s1RY%3D"));
6667
}
68+
69+
@Test
70+
public void testProxyHost() {
71+
String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
72+
String accessKeyId = "accessKeyId";
73+
String accessKeySecret = "accessKeySecret";
74+
75+
ClientConfiguration conf = new ClientConfiguration();
76+
conf.setProxyHost(endpoint);
77+
conf.setProxyPort(80);
78+
conf.setProxyUsername("user");
79+
conf.setProxyPassword("passwd");
80+
81+
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret, conf);
82+
ossClient.shutdown();
83+
}
6784
}
6885

src/test/java/com/aliyun/oss/integrationtests/BucketAclTest.java

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -79,19 +79,16 @@ public void testNormalSetBucketAcl() {
7979

8080
@Test
8181
public void testUnormalSetBucketAcl() {
82-
final String bucketName = "unormal-set-bucket-acl";
82+
final String nonexistentBucket = "unormal-set-bucket-acl";
8383

84-
try {
85-
ossClient.createBucket(bucketName);
86-
87-
// Set non-existent bucket
88-
final String nonexistentBucket = "unormal-set-bucket-acl";
84+
try {
85+
// set non-existent bucket
8986
try {
9087
ossClient.setBucketAcl(nonexistentBucket, CannedAccessControlList.Private);
91-
// TODO: Why not failed with NO_SUCK_BUCKET error code ?
9288
//Assert.fail("Set bucket acl should not be successful");
93-
} catch (Exception e) {
94-
Assert.fail(e.getMessage());
89+
} catch (OSSException e) {
90+
Assert.assertEquals(OSSErrorCode.NO_SUCH_BUCKET, e.getErrorCode());
91+
Assert.assertTrue(e.getMessage().startsWith(NO_SUCH_BUCKET_ERR));
9592
}
9693

9794
// Set bucket without ownership
@@ -115,7 +112,7 @@ public void testUnormalSetBucketAcl() {
115112
} catch (Exception e) {
116113
Assert.fail(e.getMessage());
117114
} finally {
118-
ossClient.deleteBucket(bucketName);
115+
ossClient.deleteBucket(nonexistentBucket);
119116
}
120117
}
121118

@@ -155,4 +152,5 @@ public void testUnormalGetBucketAcl() {
155152
ossClient.deleteBucket(bucketUsingDefaultAcl);
156153
}
157154
}
155+
158156
}

0 commit comments

Comments
 (0)