45
45
import static org .apache .hadoop .fs .s3a .Constants .CONNECTION_ACQUISITION_TIMEOUT ;
46
46
import static org .apache .hadoop .fs .s3a .Constants .AWS_SERVICE_IDENTIFIER_S3 ;
47
47
import static org .apache .hadoop .fs .s3a .Constants .AWS_SERVICE_IDENTIFIER_STS ;
48
+ import static org .apache .hadoop .fs .s3a .Constants .CONNECTION_EXPECT_CONTINUE ;
49
+ import static org .apache .hadoop .fs .s3a .Constants .CONNECTION_EXPECT_CONTINUE_DEFAULT ;
48
50
import static org .apache .hadoop .fs .s3a .Constants .CONNECTION_IDLE_TIME ;
49
51
import static org .apache .hadoop .fs .s3a .Constants .CONNECTION_KEEPALIVE ;
50
52
import static org .apache .hadoop .fs .s3a .Constants .CONNECTION_TTL ;
@@ -149,6 +151,7 @@ public static ApacheHttpClient.Builder createHttpClientBuilder(Configuration con
149
151
.connectionMaxIdleTime (conn .getMaxIdleTime ())
150
152
.connectionTimeout (conn .getEstablishTimeout ())
151
153
.connectionTimeToLive (conn .getConnectionTTL ())
154
+ .expectContinueEnabled (conn .isExpectContinueEnabled ())
152
155
.maxConnections (conn .getMaxConnections ())
153
156
.socketTimeout (conn .getSocketTimeout ())
154
157
.tcpKeepAlive (conn .isKeepAlive ())
@@ -491,14 +494,15 @@ public String toString() {
491
494
* All the connection settings, wrapped as a class for use by
492
495
* both the sync and async client.
493
496
*/
494
- static class ConnectionSettings {
497
+ static final class ConnectionSettings {
495
498
private final int maxConnections ;
496
499
private final boolean keepAlive ;
497
500
private final Duration acquisitionTimeout ;
498
501
private final Duration connectionTTL ;
499
502
private final Duration establishTimeout ;
500
503
private final Duration maxIdleTime ;
501
504
private final Duration socketTimeout ;
505
+ private final boolean expectContinueEnabled ;
502
506
503
507
private ConnectionSettings (
504
508
final int maxConnections ,
@@ -507,14 +511,16 @@ private ConnectionSettings(
507
511
final Duration connectionTTL ,
508
512
final Duration establishTimeout ,
509
513
final Duration maxIdleTime ,
510
- final Duration socketTimeout ) {
514
+ final Duration socketTimeout ,
515
+ final boolean expectContinueEnabled ) {
511
516
this .maxConnections = maxConnections ;
512
517
this .keepAlive = keepAlive ;
513
518
this .acquisitionTimeout = acquisitionTimeout ;
514
519
this .connectionTTL = connectionTTL ;
515
520
this .establishTimeout = establishTimeout ;
516
521
this .maxIdleTime = maxIdleTime ;
517
522
this .socketTimeout = socketTimeout ;
523
+ this .expectContinueEnabled = expectContinueEnabled ;
518
524
}
519
525
520
526
int getMaxConnections () {
@@ -545,6 +551,10 @@ Duration getSocketTimeout() {
545
551
return socketTimeout ;
546
552
}
547
553
554
+ boolean isExpectContinueEnabled () {
555
+ return expectContinueEnabled ;
556
+ }
557
+
548
558
@ Override
549
559
public String toString () {
550
560
return "ConnectionSettings{" +
@@ -555,6 +565,7 @@ public String toString() {
555
565
", establishTimeout=" + establishTimeout +
556
566
", maxIdleTime=" + maxIdleTime +
557
567
", socketTimeout=" + socketTimeout +
568
+ ", expectContinueEnabled=" + expectContinueEnabled +
558
569
'}' ;
559
570
}
560
571
}
@@ -615,14 +626,18 @@ static ConnectionSettings createConnectionSettings(Configuration conf) {
615
626
DEFAULT_SOCKET_TIMEOUT_DURATION , TimeUnit .MILLISECONDS ,
616
627
minimumOperationDuration );
617
628
629
+ final boolean expectContinueEnabled = conf .getBoolean (CONNECTION_EXPECT_CONTINUE ,
630
+ CONNECTION_EXPECT_CONTINUE_DEFAULT );
631
+
618
632
return new ConnectionSettings (
619
633
maxConnections ,
620
634
keepAlive ,
621
635
acquisitionTimeout ,
622
636
connectionTTL ,
623
637
establishTimeout ,
624
638
maxIdleTime ,
625
- socketTimeout );
639
+ socketTimeout ,
640
+ expectContinueEnabled );
626
641
}
627
642
628
643
/**
0 commit comments