Skip to content

Commit b007e45

Browse files
Merge pull request #571 from aws/staging/47bfc295-5f66-4fda-a44d-d8bc6fbb936c
Pull request: release <- staging/47bfc295-5f66-4fda-a44d-d8bc6fbb936c
2 parents 9443912 + 1731ddd commit b007e45

File tree

232 files changed

+435
-237
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

232 files changed

+435
-237
lines changed

.changes/2.7.14.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"version": "2.7.14",
3+
"date": "2019-07-29",
4+
"entries": [
5+
{
6+
"type": "bugfix",
7+
"category": "Netty NIO Http Client",
8+
"description": "Update `HandlerRemovingChannelPool` to only remove per request handlers if the channel is open or registered to avoid the race condition when the DefaultChannelPipeline is trying to removing the handler at the same time, causing `NoSuchElementException`."
9+
},
10+
{
11+
"type": "feature",
12+
"category": "AWS CodeCommit",
13+
"description": "This release supports better exception handling for merges."
14+
}
15+
]
16+
}

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
# __2.7.14__ __2019-07-29__
2+
## __AWS CodeCommit__
3+
- ### Features
4+
- This release supports better exception handling for merges.
5+
6+
## __Netty NIO Http Client__
7+
- ### Bugfixes
8+
- Update `HandlerRemovingChannelPool` to only remove per request handlers if the channel is open or registered to avoid the race condition when the DefaultChannelPipeline is trying to removing the handler at the same time, causing `NoSuchElementException`.
9+
110
# __2.7.13__ __2019-07-26__
211
## __AWS Batch__
312
- ### Features

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ To automatically manage module versions (currently all modules have the same ver
4848
<dependency>
4949
<groupId>software.amazon.awssdk</groupId>
5050
<artifactId>bom</artifactId>
51-
<version>2.7.13</version>
51+
<version>2.7.14</version>
5252
<type>pom</type>
5353
<scope>import</scope>
5454
</dependency>
@@ -82,12 +82,12 @@ Alternatively you can add dependencies for the specific services you use only:
8282
<dependency>
8383
<groupId>software.amazon.awssdk</groupId>
8484
<artifactId>ec2</artifactId>
85-
<version>2.7.13</version>
85+
<version>2.7.14</version>
8686
</dependency>
8787
<dependency>
8888
<groupId>software.amazon.awssdk</groupId>
8989
<artifactId>s3</artifactId>
90-
<version>2.7.13</version>
90+
<version>2.7.14</version>
9191
</dependency>
9292
```
9393

@@ -99,7 +99,7 @@ You can import the whole SDK into your project (includes *ALL* services). Please
9999
<dependency>
100100
<groupId>software.amazon.awssdk</groupId>
101101
<artifactId>aws-sdk-java</artifactId>
102-
<version>2.7.13</version>
102+
<version>2.7.14</version>
103103
</dependency>
104104
```
105105

aws-sdk-java/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>software.amazon.awssdk</groupId>
66
<artifactId>aws-sdk-java-pom</artifactId>
7-
<version>2.7.13</version>
7+
<version>2.7.14</version>
88
<relativePath>../pom.xml</relativePath>
99
</parent>
1010
<artifactId>aws-sdk-java</artifactId>

bom-internal/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>aws-sdk-java-pom</artifactId>
77
<groupId>software.amazon.awssdk</groupId>
8-
<version>2.7.13</version>
8+
<version>2.7.14</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

bom/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>software.amazon.awssdk</groupId>
66
<artifactId>aws-sdk-java-pom</artifactId>
7-
<version>2.7.13</version>
7+
<version>2.7.14</version>
88
<relativePath>../pom.xml</relativePath>
99
</parent>
1010
<artifactId>bom</artifactId>

bundle/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<parent>
2222
<groupId>software.amazon.awssdk</groupId>
2323
<artifactId>aws-sdk-java-pom</artifactId>
24-
<version>2.7.13</version>
24+
<version>2.7.14</version>
2525
</parent>
2626
<artifactId>bundle</artifactId>
2727
<packaging>jar</packaging>

codegen-lite-maven-plugin/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<parent>
88
<groupId>software.amazon.awssdk</groupId>
99
<artifactId>aws-sdk-java-pom</artifactId>
10-
<version>2.7.13</version>
10+
<version>2.7.14</version>
1111
<relativePath>../pom.xml</relativePath>
1212
</parent>
1313
<artifactId>codegen-lite-maven-plugin</artifactId>

codegen-lite/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<groupId>software.amazon.awssdk</groupId>
88
<artifactId>aws-sdk-java-pom</artifactId>
9-
<version>2.7.13</version>
9+
<version>2.7.14</version>
1010
</parent>
1111
<artifactId>codegen-lite</artifactId>
1212
<name>AWS Java SDK :: Code Generator Lite</name>

codegen-maven-plugin/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<parent>
2323
<groupId>software.amazon.awssdk</groupId>
2424
<artifactId>aws-sdk-java-pom</artifactId>
25-
<version>2.7.13</version>
25+
<version>2.7.14</version>
2626
<relativePath>../pom.xml</relativePath>
2727
</parent>
2828
<artifactId>codegen-maven-plugin</artifactId>

codegen/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<parent>
2222
<groupId>software.amazon.awssdk</groupId>
2323
<artifactId>aws-sdk-java-pom</artifactId>
24-
<version>2.7.13</version>
24+
<version>2.7.14</version>
2525
</parent>
2626
<artifactId>codegen</artifactId>
2727
<name>AWS Java SDK :: Code Generator</name>

core/annotations/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>core</artifactId>
77
<groupId>software.amazon.awssdk</groupId>
8-
<version>2.7.13</version>
8+
<version>2.7.14</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

core/auth/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<parent>
88
<groupId>software.amazon.awssdk</groupId>
99
<artifactId>core</artifactId>
10-
<version>2.7.13</version>
10+
<version>2.7.14</version>
1111
</parent>
1212

1313
<artifactId>auth</artifactId>

core/aws-core/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<parent>
88
<groupId>software.amazon.awssdk</groupId>
99
<artifactId>core</artifactId>
10-
<version>2.7.13</version>
10+
<version>2.7.14</version>
1111
</parent>
1212

1313
<artifactId>aws-core</artifactId>

core/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<parent>
2222
<artifactId>aws-sdk-java-pom</artifactId>
2323
<groupId>software.amazon.awssdk</groupId>
24-
<version>2.7.13</version>
24+
<version>2.7.14</version>
2525
</parent>
2626

2727
<artifactId>core</artifactId>

core/profiles/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<parent>
2323
<groupId>software.amazon.awssdk</groupId>
2424
<artifactId>core</artifactId>
25-
<version>2.7.13</version>
25+
<version>2.7.14</version>
2626
</parent>
2727

2828
<artifactId>profiles</artifactId>

core/protocols/aws-cbor-protocol/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>protocols</artifactId>
77
<groupId>software.amazon.awssdk</groupId>
8-
<version>2.7.13</version>
8+
<version>2.7.14</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

core/protocols/aws-ion-protocol/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>protocols</artifactId>
77
<groupId>software.amazon.awssdk</groupId>
8-
<version>2.7.13</version>
8+
<version>2.7.14</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

core/protocols/aws-json-protocol/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>protocols</artifactId>
77
<groupId>software.amazon.awssdk</groupId>
8-
<version>2.7.13</version>
8+
<version>2.7.14</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

core/protocols/aws-query-protocol/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>protocols</artifactId>
77
<groupId>software.amazon.awssdk</groupId>
8-
<version>2.7.13</version>
8+
<version>2.7.14</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

core/protocols/aws-xml-protocol/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>protocols</artifactId>
77
<groupId>software.amazon.awssdk</groupId>
8-
<version>2.7.13</version>
8+
<version>2.7.14</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

core/protocols/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>core</artifactId>
77
<groupId>software.amazon.awssdk</groupId>
8-
<version>2.7.13</version>
8+
<version>2.7.14</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

core/protocols/protocol-core/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>protocols</artifactId>
77
<groupId>software.amazon.awssdk</groupId>
8-
<version>2.7.13</version>
8+
<version>2.7.14</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

core/regions/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<parent>
2323
<groupId>software.amazon.awssdk</groupId>
2424
<artifactId>core</artifactId>
25-
<version>2.7.13</version>
25+
<version>2.7.14</version>
2626
</parent>
2727

2828
<artifactId>regions</artifactId>

core/sdk-core/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<parent>
2222
<groupId>software.amazon.awssdk</groupId>
2323
<artifactId>core</artifactId>
24-
<version>2.7.13</version>
24+
<version>2.7.14</version>
2525
</parent>
2626
<artifactId>sdk-core</artifactId>
2727
<name>AWS Java SDK :: SDK Core</name>

http-client-spi/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<parent>
2323
<artifactId>aws-sdk-java-pom</artifactId>
2424
<groupId>software.amazon.awssdk</groupId>
25-
<version>2.7.13</version>
25+
<version>2.7.14</version>
2626
</parent>
2727
<artifactId>http-client-spi</artifactId>
2828
<name>AWS Java SDK :: HTTP Client Interface</name>

http-clients/apache-client/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
<parent>
2222
<artifactId>http-clients</artifactId>
2323
<groupId>software.amazon.awssdk</groupId>
24-
<version>2.7.13</version>
24+
<version>2.7.14</version>
2525
</parent>
2626

2727
<artifactId>apache-client</artifactId>

http-clients/netty-nio-client/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<parent>
2121
<artifactId>http-clients</artifactId>
2222
<groupId>software.amazon.awssdk</groupId>
23-
<version>2.7.13</version>
23+
<version>2.7.14</version>
2424
</parent>
2525
<modelVersion>4.0.0</modelVersion>
2626

http-clients/netty-nio-client/src/main/java/software/amazon/awssdk/http/nio/netty/internal/HandlerRemovingChannelPool.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,17 @@ public void close() {
7070

7171
private void removePerRequestHandlers(Channel channel) {
7272
channel.attr(IN_USE).set(false);
73-
removeIfExists(channel.pipeline(),
74-
HttpStreamsClientHandler.class,
75-
ResponseHandler.class,
76-
ReadTimeoutHandler.class,
77-
WriteTimeoutHandler.class);
73+
74+
// Only remove per request handler if the channel is registered
75+
// or open since DefaultChannelPipeline would remove handlers if
76+
// channel is closed and unregistered
77+
// See DefaultChannelPipeline.java#L1403
78+
if (channel.isOpen() || channel.isRegistered()) {
79+
removeIfExists(channel.pipeline(),
80+
HttpStreamsClientHandler.class,
81+
ResponseHandler.class,
82+
ReadTimeoutHandler.class,
83+
WriteTimeoutHandler.class);
84+
}
7885
}
7986
}

http-clients/netty-nio-client/src/main/java/software/amazon/awssdk/http/nio/netty/internal/utils/ChannelUtils.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import io.netty.channel.ChannelPipeline;
2121
import io.netty.util.Attribute;
2222
import io.netty.util.AttributeKey;
23+
import java.util.NoSuchElementException;
2324
import java.util.Optional;
2425
import software.amazon.awssdk.annotations.SdkInternalApi;
2526

@@ -37,7 +38,13 @@ private ChannelUtils() {}
3738
public static void removeIfExists(ChannelPipeline pipeline, Class<? extends ChannelHandler>... handlers) {
3839
for (Class<? extends ChannelHandler> handler : handlers) {
3940
if (pipeline.get(handler) != null) {
40-
pipeline.remove(handler);
41+
try {
42+
pipeline.remove(handler);
43+
} catch (NoSuchElementException exception) {
44+
// There could still be race condition when channel gets
45+
// closed right after removeIfExists is invoked. Ignoring
46+
// NoSuchElementException for that edge case.
47+
}
4148
}
4249
}
4350
}

0 commit comments

Comments
 (0)