Skip to content

Commit 1c5cec0

Browse files
authored
Remove http status code maps (#31350)
Currently we maintain a compatibility map of http status codes in both the netty4 and nio modules. These maps convert a RestStatus to a netty HttpResponseStatus. However, as these fundamentally represent integers, we can just use the netty valueOf method to convert a RestStatus to a HttpResponseStatus.
1 parent 87a676e commit 1c5cec0

File tree

2 files changed

+2
-123
lines changed

2 files changed

+2
-123
lines changed

modules/transport-netty4/src/main/java/org/elasticsearch/http/netty4/Netty4HttpResponse.java

+1-62
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,13 @@
2727
import org.elasticsearch.rest.RestStatus;
2828
import org.elasticsearch.transport.netty4.Netty4Utils;
2929

30-
import java.util.Collections;
31-
import java.util.EnumMap;
32-
import java.util.Map;
33-
3430
public class Netty4HttpResponse extends DefaultFullHttpResponse implements HttpResponse, HttpPipelinedMessage {
3531

3632
private final int sequence;
3733
private final Netty4HttpRequest request;
3834

3935
Netty4HttpResponse(Netty4HttpRequest request, RestStatus status, BytesReference content) {
40-
super(request.nettyRequest().protocolVersion(), getStatus(status), Netty4Utils.toByteBuf(content));
36+
super(request.nettyRequest().protocolVersion(), HttpResponseStatus.valueOf(status.getStatus()), Netty4Utils.toByteBuf(content));
4137
this.sequence = request.sequence();
4238
this.request = request;
4339
}
@@ -60,62 +56,5 @@ public int getSequence() {
6056
public Netty4HttpRequest getRequest() {
6157
return request;
6258
}
63-
64-
private static Map<RestStatus, HttpResponseStatus> MAP;
65-
66-
static {
67-
EnumMap<RestStatus, HttpResponseStatus> map = new EnumMap<>(RestStatus.class);
68-
map.put(RestStatus.CONTINUE, HttpResponseStatus.CONTINUE);
69-
map.put(RestStatus.SWITCHING_PROTOCOLS, HttpResponseStatus.SWITCHING_PROTOCOLS);
70-
map.put(RestStatus.OK, HttpResponseStatus.OK);
71-
map.put(RestStatus.CREATED, HttpResponseStatus.CREATED);
72-
map.put(RestStatus.ACCEPTED, HttpResponseStatus.ACCEPTED);
73-
map.put(RestStatus.NON_AUTHORITATIVE_INFORMATION, HttpResponseStatus.NON_AUTHORITATIVE_INFORMATION);
74-
map.put(RestStatus.NO_CONTENT, HttpResponseStatus.NO_CONTENT);
75-
map.put(RestStatus.RESET_CONTENT, HttpResponseStatus.RESET_CONTENT);
76-
map.put(RestStatus.PARTIAL_CONTENT, HttpResponseStatus.PARTIAL_CONTENT);
77-
map.put(RestStatus.MULTI_STATUS, HttpResponseStatus.INTERNAL_SERVER_ERROR); // no status for this??
78-
map.put(RestStatus.MULTIPLE_CHOICES, HttpResponseStatus.MULTIPLE_CHOICES);
79-
map.put(RestStatus.MOVED_PERMANENTLY, HttpResponseStatus.MOVED_PERMANENTLY);
80-
map.put(RestStatus.FOUND, HttpResponseStatus.FOUND);
81-
map.put(RestStatus.SEE_OTHER, HttpResponseStatus.SEE_OTHER);
82-
map.put(RestStatus.NOT_MODIFIED, HttpResponseStatus.NOT_MODIFIED);
83-
map.put(RestStatus.USE_PROXY, HttpResponseStatus.USE_PROXY);
84-
map.put(RestStatus.TEMPORARY_REDIRECT, HttpResponseStatus.TEMPORARY_REDIRECT);
85-
map.put(RestStatus.BAD_REQUEST, HttpResponseStatus.BAD_REQUEST);
86-
map.put(RestStatus.UNAUTHORIZED, HttpResponseStatus.UNAUTHORIZED);
87-
map.put(RestStatus.PAYMENT_REQUIRED, HttpResponseStatus.PAYMENT_REQUIRED);
88-
map.put(RestStatus.FORBIDDEN, HttpResponseStatus.FORBIDDEN);
89-
map.put(RestStatus.NOT_FOUND, HttpResponseStatus.NOT_FOUND);
90-
map.put(RestStatus.METHOD_NOT_ALLOWED, HttpResponseStatus.METHOD_NOT_ALLOWED);
91-
map.put(RestStatus.NOT_ACCEPTABLE, HttpResponseStatus.NOT_ACCEPTABLE);
92-
map.put(RestStatus.PROXY_AUTHENTICATION, HttpResponseStatus.PROXY_AUTHENTICATION_REQUIRED);
93-
map.put(RestStatus.REQUEST_TIMEOUT, HttpResponseStatus.REQUEST_TIMEOUT);
94-
map.put(RestStatus.CONFLICT, HttpResponseStatus.CONFLICT);
95-
map.put(RestStatus.GONE, HttpResponseStatus.GONE);
96-
map.put(RestStatus.LENGTH_REQUIRED, HttpResponseStatus.LENGTH_REQUIRED);
97-
map.put(RestStatus.PRECONDITION_FAILED, HttpResponseStatus.PRECONDITION_FAILED);
98-
map.put(RestStatus.REQUEST_ENTITY_TOO_LARGE, HttpResponseStatus.REQUEST_ENTITY_TOO_LARGE);
99-
map.put(RestStatus.REQUEST_URI_TOO_LONG, HttpResponseStatus.REQUEST_URI_TOO_LONG);
100-
map.put(RestStatus.UNSUPPORTED_MEDIA_TYPE, HttpResponseStatus.UNSUPPORTED_MEDIA_TYPE);
101-
map.put(RestStatus.REQUESTED_RANGE_NOT_SATISFIED, HttpResponseStatus.REQUESTED_RANGE_NOT_SATISFIABLE);
102-
map.put(RestStatus.EXPECTATION_FAILED, HttpResponseStatus.EXPECTATION_FAILED);
103-
map.put(RestStatus.UNPROCESSABLE_ENTITY, HttpResponseStatus.BAD_REQUEST);
104-
map.put(RestStatus.LOCKED, HttpResponseStatus.BAD_REQUEST);
105-
map.put(RestStatus.FAILED_DEPENDENCY, HttpResponseStatus.BAD_REQUEST);
106-
map.put(RestStatus.TOO_MANY_REQUESTS, HttpResponseStatus.TOO_MANY_REQUESTS);
107-
map.put(RestStatus.INTERNAL_SERVER_ERROR, HttpResponseStatus.INTERNAL_SERVER_ERROR);
108-
map.put(RestStatus.NOT_IMPLEMENTED, HttpResponseStatus.NOT_IMPLEMENTED);
109-
map.put(RestStatus.BAD_GATEWAY, HttpResponseStatus.BAD_GATEWAY);
110-
map.put(RestStatus.SERVICE_UNAVAILABLE, HttpResponseStatus.SERVICE_UNAVAILABLE);
111-
map.put(RestStatus.GATEWAY_TIMEOUT, HttpResponseStatus.GATEWAY_TIMEOUT);
112-
map.put(RestStatus.HTTP_VERSION_NOT_SUPPORTED, HttpResponseStatus.HTTP_VERSION_NOT_SUPPORTED);
113-
MAP = Collections.unmodifiableMap(map);
114-
}
115-
116-
private static HttpResponseStatus getStatus(RestStatus status) {
117-
return MAP.getOrDefault(status, HttpResponseStatus.INTERNAL_SERVER_ERROR);
118-
}
119-
12059
}
12160

plugins/transport-nio/src/main/java/org/elasticsearch/http/nio/NioHttpResponse.java

+1-61
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,13 @@
2626
import org.elasticsearch.http.HttpResponse;
2727
import org.elasticsearch.rest.RestStatus;
2828

29-
import java.util.Collections;
30-
import java.util.EnumMap;
31-
import java.util.Map;
32-
3329
public class NioHttpResponse extends DefaultFullHttpResponse implements HttpResponse, HttpPipelinedMessage {
3430

3531
private final int sequence;
3632
private final NioHttpRequest request;
3733

3834
NioHttpResponse(NioHttpRequest request, RestStatus status, BytesReference content) {
39-
super(request.nettyRequest().protocolVersion(), getStatus(status), ByteBufUtils.toByteBuf(content));
35+
super(request.nettyRequest().protocolVersion(), HttpResponseStatus.valueOf(status.getStatus()), ByteBufUtils.toByteBuf(content));
4036
this.sequence = request.sequence();
4137
this.request = request;
4238
}
@@ -56,63 +52,7 @@ public int getSequence() {
5652
return sequence;
5753
}
5854

59-
private static Map<RestStatus, HttpResponseStatus> MAP;
60-
6155
public NioHttpRequest getRequest() {
6256
return request;
6357
}
64-
65-
static {
66-
EnumMap<RestStatus, HttpResponseStatus> map = new EnumMap<>(RestStatus.class);
67-
map.put(RestStatus.CONTINUE, HttpResponseStatus.CONTINUE);
68-
map.put(RestStatus.SWITCHING_PROTOCOLS, HttpResponseStatus.SWITCHING_PROTOCOLS);
69-
map.put(RestStatus.OK, HttpResponseStatus.OK);
70-
map.put(RestStatus.CREATED, HttpResponseStatus.CREATED);
71-
map.put(RestStatus.ACCEPTED, HttpResponseStatus.ACCEPTED);
72-
map.put(RestStatus.NON_AUTHORITATIVE_INFORMATION, HttpResponseStatus.NON_AUTHORITATIVE_INFORMATION);
73-
map.put(RestStatus.NO_CONTENT, HttpResponseStatus.NO_CONTENT);
74-
map.put(RestStatus.RESET_CONTENT, HttpResponseStatus.RESET_CONTENT);
75-
map.put(RestStatus.PARTIAL_CONTENT, HttpResponseStatus.PARTIAL_CONTENT);
76-
map.put(RestStatus.MULTI_STATUS, HttpResponseStatus.INTERNAL_SERVER_ERROR); // no status for this??
77-
map.put(RestStatus.MULTIPLE_CHOICES, HttpResponseStatus.MULTIPLE_CHOICES);
78-
map.put(RestStatus.MOVED_PERMANENTLY, HttpResponseStatus.MOVED_PERMANENTLY);
79-
map.put(RestStatus.FOUND, HttpResponseStatus.FOUND);
80-
map.put(RestStatus.SEE_OTHER, HttpResponseStatus.SEE_OTHER);
81-
map.put(RestStatus.NOT_MODIFIED, HttpResponseStatus.NOT_MODIFIED);
82-
map.put(RestStatus.USE_PROXY, HttpResponseStatus.USE_PROXY);
83-
map.put(RestStatus.TEMPORARY_REDIRECT, HttpResponseStatus.TEMPORARY_REDIRECT);
84-
map.put(RestStatus.BAD_REQUEST, HttpResponseStatus.BAD_REQUEST);
85-
map.put(RestStatus.UNAUTHORIZED, HttpResponseStatus.UNAUTHORIZED);
86-
map.put(RestStatus.PAYMENT_REQUIRED, HttpResponseStatus.PAYMENT_REQUIRED);
87-
map.put(RestStatus.FORBIDDEN, HttpResponseStatus.FORBIDDEN);
88-
map.put(RestStatus.NOT_FOUND, HttpResponseStatus.NOT_FOUND);
89-
map.put(RestStatus.METHOD_NOT_ALLOWED, HttpResponseStatus.METHOD_NOT_ALLOWED);
90-
map.put(RestStatus.NOT_ACCEPTABLE, HttpResponseStatus.NOT_ACCEPTABLE);
91-
map.put(RestStatus.PROXY_AUTHENTICATION, HttpResponseStatus.PROXY_AUTHENTICATION_REQUIRED);
92-
map.put(RestStatus.REQUEST_TIMEOUT, HttpResponseStatus.REQUEST_TIMEOUT);
93-
map.put(RestStatus.CONFLICT, HttpResponseStatus.CONFLICT);
94-
map.put(RestStatus.GONE, HttpResponseStatus.GONE);
95-
map.put(RestStatus.LENGTH_REQUIRED, HttpResponseStatus.LENGTH_REQUIRED);
96-
map.put(RestStatus.PRECONDITION_FAILED, HttpResponseStatus.PRECONDITION_FAILED);
97-
map.put(RestStatus.REQUEST_ENTITY_TOO_LARGE, HttpResponseStatus.REQUEST_ENTITY_TOO_LARGE);
98-
map.put(RestStatus.REQUEST_URI_TOO_LONG, HttpResponseStatus.REQUEST_URI_TOO_LONG);
99-
map.put(RestStatus.UNSUPPORTED_MEDIA_TYPE, HttpResponseStatus.UNSUPPORTED_MEDIA_TYPE);
100-
map.put(RestStatus.REQUESTED_RANGE_NOT_SATISFIED, HttpResponseStatus.REQUESTED_RANGE_NOT_SATISFIABLE);
101-
map.put(RestStatus.EXPECTATION_FAILED, HttpResponseStatus.EXPECTATION_FAILED);
102-
map.put(RestStatus.UNPROCESSABLE_ENTITY, HttpResponseStatus.BAD_REQUEST);
103-
map.put(RestStatus.LOCKED, HttpResponseStatus.BAD_REQUEST);
104-
map.put(RestStatus.FAILED_DEPENDENCY, HttpResponseStatus.BAD_REQUEST);
105-
map.put(RestStatus.TOO_MANY_REQUESTS, HttpResponseStatus.TOO_MANY_REQUESTS);
106-
map.put(RestStatus.INTERNAL_SERVER_ERROR, HttpResponseStatus.INTERNAL_SERVER_ERROR);
107-
map.put(RestStatus.NOT_IMPLEMENTED, HttpResponseStatus.NOT_IMPLEMENTED);
108-
map.put(RestStatus.BAD_GATEWAY, HttpResponseStatus.BAD_GATEWAY);
109-
map.put(RestStatus.SERVICE_UNAVAILABLE, HttpResponseStatus.SERVICE_UNAVAILABLE);
110-
map.put(RestStatus.GATEWAY_TIMEOUT, HttpResponseStatus.GATEWAY_TIMEOUT);
111-
map.put(RestStatus.HTTP_VERSION_NOT_SUPPORTED, HttpResponseStatus.HTTP_VERSION_NOT_SUPPORTED);
112-
MAP = Collections.unmodifiableMap(map);
113-
}
114-
115-
private static HttpResponseStatus getStatus(RestStatus status) {
116-
return MAP.getOrDefault(status, HttpResponseStatus.INTERNAL_SERVER_ERROR);
117-
}
11858
}

0 commit comments

Comments
 (0)