You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by gg...@apache.org on 2023/01/11 15:23:53 UTC

[httpcomponents-core] branch master updated: Do not duplicate the HttpMessage instance variable slot in subclasses of AbstractMessageWrapper.

This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/httpcomponents-core.git


The following commit(s) were added to refs/heads/master by this push:
     new 193df62b8 Do not duplicate the HttpMessage instance variable slot in subclasses of AbstractMessageWrapper.
193df62b8 is described below

commit 193df62b88fb3516ef4d45b8fd6ae8e13e3dcc19
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Wed Jan 11 10:23:48 2023 -0500

    Do not duplicate the HttpMessage instance variable slot in subclasses of
    AbstractMessageWrapper.
---
 RELEASE_NOTES.txt                                  | 13 +++++++++++
 .../core5/http/message/AbstractMessageWrapper.java | 12 +++++++---
 .../hc/core5/http/message/HttpRequestWrapper.java  | 27 +++++++++++-----------
 .../hc/core5/http/message/HttpResponseWrapper.java | 19 ++++++++-------
 4 files changed, 44 insertions(+), 27 deletions(-)

diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt
index 8560411b8..8168f3be6 100644
--- a/RELEASE_NOTES.txt
+++ b/RELEASE_NOTES.txt
@@ -1,3 +1,16 @@
+Release 5.2.2
+------------------
+
+This is a maintenance release that corrects several minor defects discovered since release 5.2.1.
+
+
+Change Log
+-------------------
+
+* Do not duplicate the HttpMessage instance variable slot in subclasses of AbstractMessageWrapper.
+  Contributed by Gary Gregory <ggregory at apache.org>
+
+
 Release 5.2.1
 ------------------
 
diff --git a/httpcore5/src/main/java/org/apache/hc/core5/http/message/AbstractMessageWrapper.java b/httpcore5/src/main/java/org/apache/hc/core5/http/message/AbstractMessageWrapper.java
index 16604d8c7..665a87268 100644
--- a/httpcore5/src/main/java/org/apache/hc/core5/http/message/AbstractMessageWrapper.java
+++ b/httpcore5/src/main/java/org/apache/hc/core5/http/message/AbstractMessageWrapper.java
@@ -37,12 +37,14 @@ import org.apache.hc.core5.util.Args;
 
 /**
  * Abstract {@link HttpMessage} wrapper.
+ *
+ * @param <T> A {@link HttpMessage} type.
  */
-public abstract class AbstractMessageWrapper implements HttpMessage {
+public abstract class AbstractMessageWrapper<T extends HttpMessage> implements HttpMessage {
 
-    private final HttpMessage message;
+    private final T message;
 
-    public AbstractMessageWrapper(final HttpMessage message) {
+    public AbstractMessageWrapper(final T message) {
         this.message = Args.notNull(message, "Message");
     }
 
@@ -121,6 +123,10 @@ public abstract class AbstractMessageWrapper implements HttpMessage {
         return message.getLastHeader(name);
     }
 
+    T getMessage() {
+        return message;
+    }
+
     @Override
     public Header[] getHeaders() {
         return message.getHeaders();
diff --git a/httpcore5/src/main/java/org/apache/hc/core5/http/message/HttpRequestWrapper.java b/httpcore5/src/main/java/org/apache/hc/core5/http/message/HttpRequestWrapper.java
index 75a6af893..4535422bb 100644
--- a/httpcore5/src/main/java/org/apache/hc/core5/http/message/HttpRequestWrapper.java
+++ b/httpcore5/src/main/java/org/apache/hc/core5/http/message/HttpRequestWrapper.java
@@ -34,65 +34,64 @@ import org.apache.hc.core5.http.HttpRequest;
 import org.apache.hc.core5.net.URIAuthority;
 
 /**
+ * Wraps an {@link HttpRequest}.
+ *
  * {@link HttpRequest} wrapper.
  */
-public class HttpRequestWrapper extends AbstractMessageWrapper implements HttpRequest {
-
-    private final HttpRequest message;
+public class HttpRequestWrapper extends AbstractMessageWrapper<HttpRequest> implements HttpRequest {
 
     public HttpRequestWrapper(final HttpRequest message) {
         super(message);
-        this.message = message;
     }
 
     @Override
     public String getMethod() {
-        return message.getMethod();
+        return getMessage().getMethod();
     }
 
     @Override
     public String getPath() {
-        return message.getPath();
+        return getMessage().getPath();
     }
 
     @Override
     public void setPath(final String path) {
-        message.setPath(path);
+        getMessage().setPath(path);
     }
 
     @Override
     public String getScheme() {
-        return message.getScheme();
+        return getMessage().getScheme();
     }
 
     @Override
     public void setScheme(final String scheme) {
-        message.setScheme(scheme);
+        getMessage().setScheme(scheme);
     }
 
     @Override
     public URIAuthority getAuthority() {
-        return message.getAuthority();
+        return getMessage().getAuthority();
     }
 
     @Override
     public void setAuthority(final URIAuthority authority) {
-        message.setAuthority(authority);
+        getMessage().setAuthority(authority);
     }
 
     @Override
     public String getRequestUri() {
-        return message.getRequestUri();
+        return getMessage().getRequestUri();
     }
 
     @Override
     public URI getUri() throws URISyntaxException {
-        return message.getUri();
+        return getMessage().getUri();
     }
 
     @Override
     public void setUri(final URI requestUri) {
-        message.setUri(requestUri);
+        getMessage().setUri(requestUri);
     }
 
 }
diff --git a/httpcore5/src/main/java/org/apache/hc/core5/http/message/HttpResponseWrapper.java b/httpcore5/src/main/java/org/apache/hc/core5/http/message/HttpResponseWrapper.java
index 01ee2e8ba..6826ce000 100644
--- a/httpcore5/src/main/java/org/apache/hc/core5/http/message/HttpResponseWrapper.java
+++ b/httpcore5/src/main/java/org/apache/hc/core5/http/message/HttpResponseWrapper.java
@@ -32,45 +32,44 @@ import java.util.Locale;
 import org.apache.hc.core5.http.HttpResponse;
 
 /**
+ * Wraps an {@link HttpResponse}.
+ *
  * {@link HttpResponse} wrapper.
  */
-public class HttpResponseWrapper extends AbstractMessageWrapper implements HttpResponse {
-
-    private final HttpResponse message;
+public class HttpResponseWrapper extends AbstractMessageWrapper<HttpResponse> implements HttpResponse {
 
     public HttpResponseWrapper(final HttpResponse message) {
         super(message);
-        this.message = message;
     }
 
     @Override
     public int getCode() {
-        return message.getCode();
+        return getMessage().getCode();
     }
 
     @Override
     public void setCode(final int code) {
-        message.setCode(code);
+        getMessage().setCode(code);
     }
 
     @Override
     public String getReasonPhrase() {
-        return message.getReasonPhrase();
+        return getMessage().getReasonPhrase();
     }
 
     @Override
     public void setReasonPhrase(final String reason) {
-        message.setReasonPhrase(reason);
+        getMessage().setReasonPhrase(reason);
     }
 
     @Override
     public Locale getLocale() {
-        return message.getLocale();
+        return getMessage().getLocale();
     }
 
     @Override
     public void setLocale(final Locale loc) {
-        message.setLocale(loc);
+        getMessage().setLocale(loc);
     }
 
 }