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

jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git


The following commit(s) were added to refs/heads/master by this push:
     new 198786856 Simplify BasicStatusLine
198786856 is described below

commit 198786856f5210726f7ca047801ae15aacb9eb3a
Author: JamesBognar <[email protected]>
AuthorDate: Sat Sep 3 12:06:22 2022 -0400

    Simplify BasicStatusLine
---
 .../org/apache/juneau/http/BasicStatusLine.java    | 259 +++++++++------------
 .../org/apache/juneau/http/response/Accepted.java  |   4 +-
 .../juneau/http/response/AlreadyReported.java      |   4 +-
 .../apache/juneau/http/response/BadRequest.java    |   4 +-
 .../juneau/http/response/BasicHttpException.java   |  41 +---
 .../juneau/http/response/BasicHttpResponse.java    |  41 +---
 .../org/apache/juneau/http/response/Conflict.java  |   4 +-
 .../org/apache/juneau/http/response/Continue.java  |   4 +-
 .../org/apache/juneau/http/response/Created.java   |   4 +-
 .../apache/juneau/http/response/EarlyHints.java    |   4 +-
 .../juneau/http/response/ExpectationFailed.java    |   4 +-
 .../juneau/http/response/FailedDependency.java     |   4 +-
 .../org/apache/juneau/http/response/Forbidden.java |   4 +-
 .../org/apache/juneau/http/response/Found.java     |   4 +-
 .../java/org/apache/juneau/http/response/Gone.java |   4 +-
 .../juneau/http/response/HttpExceptionBuilder.java |  29 +--
 .../juneau/http/response/HttpResponseBuilder.java  |  31 +--
 .../http/response/HttpVersionNotSupported.java     |   4 +-
 .../org/apache/juneau/http/response/IMUsed.java    |   4 +-
 .../juneau/http/response/InsufficientStorage.java  |   4 +-
 .../juneau/http/response/InternalServerError.java  |   4 +-
 .../juneau/http/response/LengthRequired.java       |   4 +-
 .../org/apache/juneau/http/response/Locked.java    |   4 +-
 .../apache/juneau/http/response/LoopDetected.java  |   4 +-
 .../juneau/http/response/MethodNotAllowed.java     |   4 +-
 .../juneau/http/response/MisdirectedRequest.java   |   4 +-
 .../juneau/http/response/MovedPermanently.java     |   4 +-
 .../apache/juneau/http/response/MultiStatus.java   |   4 +-
 .../juneau/http/response/MultipleChoices.java      |   4 +-
 .../response/NetworkAuthenticationRequired.java    |   4 +-
 .../org/apache/juneau/http/response/NoContent.java |   4 +-
 .../http/response/NonAuthoritiveInformation.java   |   4 +-
 .../apache/juneau/http/response/NotAcceptable.java |   4 +-
 .../apache/juneau/http/response/NotExtended.java   |   4 +-
 .../org/apache/juneau/http/response/NotFound.java  |   4 +-
 .../juneau/http/response/NotImplemented.java       |   4 +-
 .../apache/juneau/http/response/NotModified.java   |   4 +-
 .../java/org/apache/juneau/http/response/Ok.java   |   4 +-
 .../juneau/http/response/PartialContent.java       |   4 +-
 .../juneau/http/response/PayloadTooLarge.java      |   4 +-
 .../juneau/http/response/PermanentRedirect.java    |   4 +-
 .../juneau/http/response/PreconditionFailed.java   |   4 +-
 .../juneau/http/response/PreconditionRequired.java |   4 +-
 .../apache/juneau/http/response/Processing.java    |   4 +-
 .../juneau/http/response/RangeNotSatisfiable.java  |   4 +-
 .../http/response/RequestHeaderFieldsTooLarge.java |   4 +-
 .../apache/juneau/http/response/ResetContent.java  |   4 +-
 .../org/apache/juneau/http/response/SeeOther.java  |   4 +-
 .../juneau/http/response/ServiceUnavailable.java   |   4 +-
 .../juneau/http/response/SwitchingProtocols.java   |   4 +-
 .../juneau/http/response/TemporaryRedirect.java    |   4 +-
 .../juneau/http/response/TooManyRequests.java      |   4 +-
 .../apache/juneau/http/response/Unauthorized.java  |   4 +-
 .../http/response/UnavailableForLegalReasons.java  |   4 +-
 .../juneau/http/response/UnprocessableEntity.java  |   4 +-
 .../juneau/http/response/UnsupportedMediaType.java |   4 +-
 .../juneau/http/response/UpgradeRequired.java      |   4 +-
 .../apache/juneau/http/response/UriTooLong.java    |   4 +-
 .../org/apache/juneau/http/response/UseProxy.java  |   4 +-
 .../http/response/VariantAlsoNegotiates.java       |   4 +-
 60 files changed, 265 insertions(+), 356 deletions(-)

diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/BasicStatusLine.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/BasicStatusLine.java
index ed9291338..bde6cc589 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/BasicStatusLine.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/BasicStatusLine.java
@@ -37,135 +37,23 @@ public class BasicStatusLine implements StatusLine {
        
//-----------------------------------------------------------------------------------------------------------------
 
        /**
-        * Instantiates a new builder for this bean.
+        * Instantiates a new instance of this bean.
         *
-        * @return A new builder.
+        * @return A new bean.
         */
-       public static Builder create() {
-               return new Builder();
+       public static BasicStatusLine create() {
+               return new BasicStatusLine();
        }
 
-       
//-----------------------------------------------------------------------------------------------------------------
-       // Builder
-       
//-----------------------------------------------------------------------------------------------------------------
-
        /**
-        * Builder class.
+        * Instantiates a new instance of this bean.
+        *
+        * @param statusCode The initial status code.
+        * @param reasonPhrase The initial reason phrase.
+        * @return A new bean.
         */
-       @FluentSetters
-       public static class Builder {
-
-               ProtocolVersion protocolVersion;
-               Integer statusCode;
-               String reasonPhrase;
-               Locale locale;
-               ReasonPhraseCatalog reasonPhraseCatalog;
-
-               /**
-                * Constructor.
-                */
-               protected Builder() {}
-
-               /**
-                * Copy constructor.
-                *
-                * @param copyFrom The bean to copy.
-                */
-               protected Builder(BasicStatusLine copyFrom) {
-                       protocolVersion = copyFrom.protocolVersion;
-                       statusCode = copyFrom.statusCode;
-                       reasonPhrase = copyFrom.reasonPhrase;
-                       locale = copyFrom.locale;
-               }
-
-               /**
-                * Creates a new {@link BasicStatusLine} bean based on the 
contents of this builder.
-                *
-                * @return A new {@link BasicStatusLine} bean.
-                */
-               public BasicStatusLine build() {
-                       return new BasicStatusLine(this);
-               }
-
-               /**
-                * Sets the protocol version on the status line.
-                *
-                * <p>
-                * If not specified, <js>"HTTP/1.1"</js> will be used.
-                *
-                * @param value The new value.
-                * @return This object.
-                */
-               @FluentSetter
-               public Builder protocolVersion(ProtocolVersion value) {
-                       this.protocolVersion = value;
-                       return this;
-               }
-
-               /**
-                * Sets the status code on the status line.
-                *
-                * <p>
-                * If not specified, <c>0</c> will be used.
-                *
-                * @param value The new value.
-                * @return This object.
-                */
-               @FluentSetter
-               public Builder statusCode(int value) {
-                       this.statusCode = value;
-                       return this;
-               }
-
-               /**
-                * Sets the reason phrase on the status line.
-                *
-                * <p>
-                * If not specified, the reason phrase will be retrieved from 
the reason phrase catalog
-                * using the locale on this builder.
-                *
-                * @param value The new value.
-                * @return This object.
-                */
-               @FluentSetter
-               public Builder reasonPhrase(String value) {
-                       this.reasonPhrase = value;
-                       return this;
-               }
-
-               /**
-                * Sets the reason phrase catalog used to retrieve reason 
phrases.
-                *
-                * <p>
-                * If not specified, uses {@link EnglishReasonPhraseCatalog}.
-                *
-                * @param value The new value.
-                * @return This object.
-                */
-               @FluentSetter
-               public Builder reasonPhraseCatalog(ReasonPhraseCatalog value) {
-                       this.reasonPhraseCatalog = value;
-                       return this;
-               }
-
-               /**
-                * Sets the locale used to retrieve reason phrases.
-                *
-                * <p>
-                * If not specified, uses {@link Locale#getDefault()}.
-                *
-                * @param value The new value.
-                * @return This object.
-                */
-               @FluentSetter
-               public Builder locale(Locale value) {
-                       this.locale = value;
-                       return this;
-               }
-
-               // <FluentSetters>
-
-               // </FluentSetters>
+       public static BasicStatusLine create(int statusCode, String 
reasonPhrase) {
+               return new 
BasicStatusLine().setStatusCode(statusCode).setReasonPhrase(reasonPhrase);
        }
 
        
//-----------------------------------------------------------------------------------------------------------------
@@ -174,53 +62,123 @@ public class BasicStatusLine implements StatusLine {
 
        private ProtocolVersion DEFAULT_PROTOCOL_VERSION = new 
ProtocolVersion("HTTP", 1, 1);
 
-       final ProtocolVersion protocolVersion;
-       final int statusCode;
-       final String reasonPhrase;
-       final Locale locale;
+       private ProtocolVersion protocolVersion = DEFAULT_PROTOCOL_VERSION;
+       private int statusCode = 0;
+       private String reasonPhrase;
+       private ReasonPhraseCatalog reasonPhraseCatalog;
+       private Locale locale = Locale.getDefault();
 
        /**
         * Constructor.
-        *
-        * @param builder The builder containing the settings for this bean.
         */
-       public BasicStatusLine(Builder builder) {
-               this.protocolVersion = firstNonNull(builder.protocolVersion, 
DEFAULT_PROTOCOL_VERSION);
-               this.statusCode = firstNonNull(builder.statusCode, 0);
-               this.locale = firstNonNull(builder.locale, Locale.getDefault());
+       public BasicStatusLine() {
+       }
 
-               String reasonPhrase = builder.reasonPhrase;
-               if (reasonPhrase == null) {
-                       ReasonPhraseCatalog rfc = 
firstNonNull(builder.reasonPhraseCatalog, EnglishReasonPhraseCatalog.INSTANCE);
-                       reasonPhrase = rfc.getReason(statusCode, locale);
-               }
-               this.reasonPhrase = reasonPhrase;
+       /**
+        * Copy constructor.
+        *
+        * @param copyFrom The status line being copied.
+        */
+       protected BasicStatusLine(BasicStatusLine copyFrom) {
+               this.protocolVersion = copyFrom.protocolVersion;
+               this.statusCode = copyFrom.statusCode;
+               this.reasonPhrase = copyFrom.reasonPhrase;
+               this.locale = copyFrom.locale;
        }
 
        /**
-        * Returns a builder initialized with the contents of this bean.
+        * Returns a copy of this bean.
         *
-        * @return A new builder object.
+        * @return A copy of this bean.
         */
-       public Builder copy() {
-               return new Builder(this);
+       public BasicStatusLine copy() {
+               return new BasicStatusLine(this);
        }
 
+       
//-----------------------------------------------------------------------------------------------------------------
+       // Properties
+       
//-----------------------------------------------------------------------------------------------------------------
+
        @Override /* StatusLine */
        public ProtocolVersion getProtocolVersion() {
                return protocolVersion;
        }
 
+       /**
+        * Sets the protocol version on the status line.
+        *
+        * <p>
+        * If not specified, <js>"HTTP/1.1"</js> will be used.
+        *
+        * @param value The new value.
+        * @return This object.
+        */
+       @FluentSetter
+       public BasicStatusLine setProtocolVersion(ProtocolVersion value) {
+               this.protocolVersion = value;
+               return this;
+       }
+
        @Override /* StatusLine */
        public int getStatusCode() {
                return statusCode;
        }
 
+       /**
+        * Sets the status code on the status line.
+        *
+        * <p>
+        * If not specified, <c>0</c> will be used.
+        *
+        * @param value The new value.
+        * @return This object.
+        */
+       @FluentSetter
+       public BasicStatusLine setStatusCode(int value) {
+               this.statusCode = value;
+               return this;
+       }
+
        @Override /* StatusLine */
        public String getReasonPhrase() {
+               if (reasonPhrase == null) {
+                       ReasonPhraseCatalog rfc = 
firstNonNull(reasonPhraseCatalog, EnglishReasonPhraseCatalog.INSTANCE);
+                       return rfc.getReason(statusCode, locale);
+               }
                return reasonPhrase;
        }
 
+       /**
+        * Sets the reason phrase on the status line.
+        *
+        * <p>
+        * If not specified, the reason phrase will be retrieved from the 
reason phrase catalog
+        * using the locale on this bean.
+        *
+        * @param value The new value.
+        * @return This object.
+        */
+       @FluentSetter
+       public BasicStatusLine setReasonPhrase(String value) {
+               this.reasonPhrase = value;
+               return this;
+       }
+
+       /**
+        * Sets the reason phrase catalog used to retrieve reason phrases.
+        *
+        * <p>
+        * If not specified, uses {@link EnglishReasonPhraseCatalog}.
+        *
+        * @param value The new value.
+        * @return This object.
+        */
+       @FluentSetter
+       public BasicStatusLine setReasonPhraseCatalog(ReasonPhraseCatalog 
value) {
+               this.reasonPhraseCatalog = value;
+               return this;
+       }
+
        /**
         * Returns the locale of this status line.
         *
@@ -230,6 +188,21 @@ public class BasicStatusLine implements StatusLine {
                return locale;
        }
 
+       /**
+        * Sets the locale used to retrieve reason phrases.
+        *
+        * <p>
+        * If not specified, uses {@link Locale#getDefault()}.
+        *
+        * @param value The new value.
+        * @return This object.
+        */
+       @FluentSetter
+       public BasicStatusLine setLocale(Locale value) {
+               this.locale = value;
+               return this;
+       }
+
        @Override /* Object */
        public String toString() {
                return BasicLineFormatter.INSTANCE.formatStatusLine(null, 
this).toString();
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Accepted.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Accepted.java
index 1efaf623a..82b7dd429 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Accepted.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Accepted.java
@@ -43,7 +43,7 @@ public class Accepted extends BasicHttpResponse {
        public static final String REASON_PHRASE = "Accepted";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Default unmodifiable instance */
        public static final Accepted INSTANCE = create().unmodifiable().build();
@@ -54,7 +54,7 @@ public class Accepted extends BasicHttpResponse {
         * @return A new builder bean.
         */
        public static HttpResponseBuilder<Accepted> create() {
-               return new 
HttpResponseBuilder<>(Accepted.class).statusLine(STATUS_LINE);
+               return new 
HttpResponseBuilder<>(Accepted.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/AlreadyReported.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/AlreadyReported.java
index 6a106e153..7adbf7b26 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/AlreadyReported.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/AlreadyReported.java
@@ -42,7 +42,7 @@ public class AlreadyReported extends BasicHttpResponse {
        public static final String REASON_PHRASE = "Already Reported";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final AlreadyReported INSTANCE = 
create().unmodifiable().build();
@@ -53,7 +53,7 @@ public class AlreadyReported extends BasicHttpResponse {
         * @return A new builder bean.
         */
        public static HttpResponseBuilder<AlreadyReported> create() {
-               return new 
HttpResponseBuilder<>(AlreadyReported.class).statusLine(STATUS_LINE);
+               return new 
HttpResponseBuilder<>(AlreadyReported.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/BadRequest.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/BadRequest.java
index 560ffa36b..e73294336 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/BadRequest.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/BadRequest.java
@@ -47,7 +47,7 @@ public class BadRequest extends BasicHttpException {
        public static final String REASON_PHRASE = "Bad Request";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final BadRequest INSTANCE = 
create().unmodifiable().build();
@@ -58,7 +58,7 @@ public class BadRequest extends BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<BadRequest> create() {
-               return new 
HttpExceptionBuilder<>(BadRequest.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(BadRequest.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/BasicHttpException.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/BasicHttpException.java
index 26a0639d9..0e254f289 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/BasicHttpException.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/BasicHttpException.java
@@ -56,9 +56,7 @@ public class BasicHttpException extends BasicRuntimeException 
implements HttpRes
        private static final long serialVersionUID = 1L;
 
        HeaderList headers;
-       BasicStatusLine statusLine;
-       BasicStatusLine.Builder statusLineBuilder;
-       private int TODO;
+       BasicStatusLine statusLine = new BasicStatusLine();
        HttpEntity content;
 
        /**
@@ -80,7 +78,7 @@ public class BasicHttpException extends BasicRuntimeException 
implements HttpRes
        public BasicHttpException(HttpExceptionBuilder<?> builder) {
                super(builder);
                headers = builder.headers;
-               statusLine = builder.buildStatusLine();
+               statusLine = builder.statusLine.copy();
                content = builder.content;
        }
 
@@ -222,7 +220,7 @@ public class BasicHttpException extends 
BasicRuntimeException implements HttpRes
                if (m == null && getCause() != null)
                        m = getCause().getMessage();
                if (m == null)
-                       m = statusLine().getReasonPhrase();
+                       m = statusLine.getReasonPhrase();
                return m;
        }
 
@@ -245,7 +243,7 @@ public class BasicHttpException extends 
BasicRuntimeException implements HttpRes
 
        @Override /* HttpMessage */
        public ProtocolVersion getProtocolVersion() {
-               return statusLine().getProtocolVersion();
+               return statusLine.getProtocolVersion();
        }
 
        @Override /* HttpMessage */
@@ -331,7 +329,7 @@ public class BasicHttpException extends 
BasicRuntimeException implements HttpRes
 
        @Override /* HttpMessage */
        public StatusLine getStatusLine() {
-               return statusLine();
+               return statusLine;
        }
 
        @Override /* HttpMessage */
@@ -341,22 +339,22 @@ public class BasicHttpException extends 
BasicRuntimeException implements HttpRes
 
        @Override /* HttpMessage */
        public void setStatusLine(ProtocolVersion ver, int code) {
-               
statusLineBuilder().protocolVersion(ver).statusCode(code).build();
+               statusLine.setProtocolVersion(ver).setStatusCode(code);
        }
 
        @Override /* HttpMessage */
        public void setStatusLine(ProtocolVersion ver, int code, String reason) 
{
-               
statusLineBuilder().protocolVersion(ver).reasonPhrase(reason).statusCode(code).build();
+               
statusLine.setProtocolVersion(ver).setReasonPhrase(reason).setStatusCode(code);
        }
 
        @Override /* HttpMessage */
        public void setStatusCode(int code) throws IllegalStateException {
-               statusLineBuilder().statusCode(code).build();
+               statusLine.setStatusCode(code);
        }
 
        @Override /* HttpMessage */
        public void setReasonPhrase(String reason) throws IllegalStateException 
{
-               statusLineBuilder().reasonPhrase(reason).build();
+               statusLine.setReasonPhrase(reason);
        }
 
        @Override /* HttpMessage */
@@ -375,28 +373,11 @@ public class BasicHttpException extends 
BasicRuntimeException implements HttpRes
 
        @Override /* HttpMessage */
        public Locale getLocale() {
-               return statusLine().getLocale();
+               return statusLine.getLocale();
        }
 
        @Override /* HttpMessage */
        public void setLocale(Locale loc) {
-               statusLineBuilder().locale(loc).build();
-       }
-
-       private BasicStatusLine statusLine() {
-               if (statusLine == null) {
-                       statusLine = statusLineBuilder.build();
-                       statusLineBuilder = null;
-               }
-               return statusLine;
-       }
-
-       private BasicStatusLine.Builder statusLineBuilder() {
-               assertModifiable();
-               if (statusLineBuilder == null) {
-                       statusLineBuilder = statusLine.copy();
-                       statusLine = null;
-               }
-               return statusLineBuilder;
+               statusLine.setLocale(loc);
        }
 }
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/BasicHttpResponse.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/BasicHttpResponse.java
index f398ec003..866031c9a 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/BasicHttpResponse.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/BasicHttpResponse.java
@@ -47,9 +47,7 @@ import org.apache.juneau.http.header.*;
 public class BasicHttpResponse implements HttpResponse {
 
        HeaderList headers;
-       BasicStatusLine statusLine;
-       BasicStatusLine.Builder statusLineBuilder;
-       private int TODO;
+       BasicStatusLine statusLine = new BasicStatusLine();
        HttpEntity content;
        final boolean unmodifiable;
 
@@ -71,7 +69,7 @@ public class BasicHttpResponse implements HttpResponse {
         */
        public BasicHttpResponse(HttpResponseBuilder<?> builder) {
                headers = builder.headers;
-               statusLine = builder.buildStatusLine();
+               statusLine = builder.statusLine.copy();
                content = builder.content;
                unmodifiable = builder.unmodifiable;
        }
@@ -112,7 +110,7 @@ public class BasicHttpResponse implements HttpResponse {
 
        @Override /* Object */
        public String toString() {
-               StringBuilder sb = new 
StringBuilder().append(statusLine()).append(' ').append(headers);
+               StringBuilder sb = new 
StringBuilder().append(statusLine).append(' ').append(headers);
                if (content != null)
                        sb.append(' ').append(content);
                return sb.toString();
@@ -120,7 +118,7 @@ public class BasicHttpResponse implements HttpResponse {
 
        @Override /* HttpMessage */
        public ProtocolVersion getProtocolVersion() {
-               return statusLine().getProtocolVersion();
+               return statusLine.getProtocolVersion();
        }
 
        @Override /* HttpMessage */
@@ -206,7 +204,7 @@ public class BasicHttpResponse implements HttpResponse {
 
        @Override /* HttpMessage */
        public StatusLine getStatusLine() {
-               return statusLine();
+               return statusLine;
        }
 
        @Override /* HttpMessage */
@@ -216,22 +214,22 @@ public class BasicHttpResponse implements HttpResponse {
 
        @Override /* HttpMessage */
        public void setStatusLine(ProtocolVersion ver, int code) {
-               
statusLineBuilder().protocolVersion(ver).statusCode(code).build();
+               statusLine.setProtocolVersion(ver).setStatusCode(code);
        }
 
        @Override /* HttpMessage */
        public void setStatusLine(ProtocolVersion ver, int code, String reason) 
{
-               
statusLineBuilder().protocolVersion(ver).reasonPhrase(reason).statusCode(code).build();
+               
statusLine.setProtocolVersion(ver).setReasonPhrase(reason).setStatusCode(code);
        }
 
        @Override /* HttpMessage */
        public void setStatusCode(int code) throws IllegalStateException {
-               statusLineBuilder().statusCode(code).build();
+               statusLine.setStatusCode(code);
        }
 
        @Override /* HttpMessage */
        public void setReasonPhrase(String reason) throws IllegalStateException 
{
-               statusLineBuilder().reasonPhrase(reason).build();
+               statusLine.setReasonPhrase(reason);
        }
 
        @Override /* HttpMessage */
@@ -250,29 +248,12 @@ public class BasicHttpResponse implements HttpResponse {
 
        @Override /* HttpMessage */
        public Locale getLocale() {
-               return statusLine().getLocale();
+               return statusLine.getLocale();
        }
 
        @Override /* HttpMessage */
        public void setLocale(Locale loc) {
-               statusLineBuilder().locale(loc).build();
-       }
-
-       private BasicStatusLine statusLine() {
-               if (statusLine == null) {
-                       statusLine = statusLineBuilder.build();
-                       statusLineBuilder = null;
-               }
-               return statusLine;
-       }
-
-       private BasicStatusLine.Builder statusLineBuilder() {
-               assertModifiable();
-               if (statusLineBuilder == null) {
-                       statusLineBuilder = statusLine.copy();
-                       statusLine = null;
-               }
-               return statusLineBuilder;
+               statusLine.setLocale(loc);
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Conflict.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Conflict.java
index c4320b98f..eee0f5f05 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Conflict.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Conflict.java
@@ -47,7 +47,7 @@ public class Conflict extends BasicHttpException {
        public static final String REASON_PHRASE = "Conflict";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final Conflict INSTANCE = create().unmodifiable().build();
@@ -58,7 +58,7 @@ public class Conflict extends BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<Conflict> create() {
-               return new 
HttpExceptionBuilder<>(Conflict.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(Conflict.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Continue.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Continue.java
index 11bc2eb57..578a14eff 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Continue.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Continue.java
@@ -46,7 +46,7 @@ public class Continue extends BasicHttpResponse {
        public static final String REASON_PHRASE = "Continue";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final Continue INSTANCE = create().unmodifiable().build();
@@ -57,7 +57,7 @@ public class Continue extends BasicHttpResponse {
         * @return A new builder bean.
         */
        public static HttpResponseBuilder<Continue> create() {
-               return new 
HttpResponseBuilder<>(Continue.class).statusLine(STATUS_LINE);
+               return new 
HttpResponseBuilder<>(Continue.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Created.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Created.java
index 8e63f2a5b..dcefeda5b 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Created.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Created.java
@@ -42,7 +42,7 @@ public class Created extends BasicHttpResponse {
        public static final String REASON_PHRASE = "Created";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final Created INSTANCE = create().unmodifiable().build();
@@ -53,7 +53,7 @@ public class Created extends BasicHttpResponse {
         * @return A new builder bean.
         */
        public static HttpResponseBuilder<Created> create() {
-               return new 
HttpResponseBuilder<>(Created.class).statusLine(STATUS_LINE);
+               return new 
HttpResponseBuilder<>(Created.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/EarlyHints.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/EarlyHints.java
index 693b731c1..7587328dd 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/EarlyHints.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/EarlyHints.java
@@ -41,7 +41,7 @@ public class EarlyHints extends BasicHttpResponse {
        public static final String REASON_PHRASE = "Early Hints";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final EarlyHints INSTANCE = 
create().unmodifiable().build();
@@ -52,7 +52,7 @@ public class EarlyHints extends BasicHttpResponse {
         * @return A new builder bean.
         */
        public static HttpResponseBuilder<EarlyHints> create() {
-               return new 
HttpResponseBuilder<>(EarlyHints.class).statusLine(STATUS_LINE);
+               return new 
HttpResponseBuilder<>(EarlyHints.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/ExpectationFailed.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/ExpectationFailed.java
index 8620193b3..6cfac258a 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/ExpectationFailed.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/ExpectationFailed.java
@@ -47,7 +47,7 @@ public class ExpectationFailed extends BasicHttpException {
        public static final String REASON_PHRASE = "Expectation Failed";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final ExpectationFailed INSTANCE = 
create().unmodifiable().build();
@@ -58,7 +58,7 @@ public class ExpectationFailed extends BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<ExpectationFailed> create() {
-               return new 
HttpExceptionBuilder<>(ExpectationFailed.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(ExpectationFailed.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/FailedDependency.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/FailedDependency.java
index ec2d91978..bda4199f1 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/FailedDependency.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/FailedDependency.java
@@ -47,7 +47,7 @@ public class FailedDependency extends BasicHttpException {
        public static final String REASON_PHRASE = "Failed Dependency";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final FailedDependency INSTANCE = 
create().unmodifiable().build();
@@ -58,7 +58,7 @@ public class FailedDependency extends BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<FailedDependency> create() {
-               return new 
HttpExceptionBuilder<>(FailedDependency.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(FailedDependency.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Forbidden.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Forbidden.java
index 3501a9187..fabd04cc2 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Forbidden.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Forbidden.java
@@ -48,7 +48,7 @@ public class Forbidden extends BasicHttpException {
        public static final String REASON_PHRASE = "Forbidden";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final Forbidden INSTANCE = 
create().unmodifiable().build();
@@ -59,7 +59,7 @@ public class Forbidden extends BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<Forbidden> create() {
-               return new 
HttpExceptionBuilder<>(Forbidden.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(Forbidden.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Found.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Found.java
index a8c539755..f97cd3a1c 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Found.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Found.java
@@ -46,7 +46,7 @@ public class Found extends BasicHttpResponse {
        public static final String REASON_PHRASE = "Found";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final Found INSTANCE = create().unmodifiable().build();
@@ -57,7 +57,7 @@ public class Found extends BasicHttpResponse {
         * @return A new builder bean.
         */
        public static HttpResponseBuilder<Found> create() {
-               return new 
HttpResponseBuilder<>(Found.class).statusLine(STATUS_LINE);
+               return new 
HttpResponseBuilder<>(Found.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Gone.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Gone.java
index 6a478995a..b555764fd 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Gone.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Gone.java
@@ -51,7 +51,7 @@ public class Gone extends BasicHttpException {
        public static final String REASON_PHRASE = "Gone";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final Gone INSTANCE = create().unmodifiable().build();
@@ -62,7 +62,7 @@ public class Gone extends BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<Gone> create() {
-               return new 
HttpExceptionBuilder<>(Gone.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(Gone.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/HttpExceptionBuilder.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/HttpExceptionBuilder.java
index 3546abc08..aadc104bd 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/HttpExceptionBuilder.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/HttpExceptionBuilder.java
@@ -38,10 +38,8 @@ import org.apache.juneau.internal.*;
 @FluentSetters(returns="HttpExceptionBuilder<T>")
 public class HttpExceptionBuilder<T extends BasicHttpException> extends 
BasicRuntimeException.Builder {
 
-       BasicStatusLine statusLine;
+       BasicStatusLine statusLine = new BasicStatusLine();
        HeaderList headers = HeaderList.create();
-       BasicStatusLine.Builder statusLineBuilder;
-       private int TODO;
        HttpEntity content;
 
        private final Class<? extends BasicHttpException> implClass;
@@ -100,12 +98,6 @@ public class HttpExceptionBuilder<T extends 
BasicHttpException> extends BasicRun
                return this;
        }
 
-       BasicStatusLine buildStatusLine() {
-               if (statusLineBuilder != null)
-                       return statusLineBuilder.build();
-               return statusLine;
-       }
-
        
//-----------------------------------------------------------------------------------------------------------------
        // BasicStatusLine setters.
        
//-----------------------------------------------------------------------------------------------------------------
@@ -115,12 +107,8 @@ public class HttpExceptionBuilder<T extends 
BasicHttpException> extends BasicRun
         *
         * @return The underlying builder for the status line.
         */
-       public BasicStatusLine.Builder getStatusLine() {
-               if (statusLineBuilder == null) {
-                       statusLineBuilder = statusLine == null ? 
BasicStatusLine.create() : statusLine.copy();
-                       statusLine = null;
-               }
-               return statusLineBuilder;
+       public BasicStatusLine getStatusLine() {
+               return statusLine;
        }
 
        /**
@@ -135,7 +123,6 @@ public class HttpExceptionBuilder<T extends 
BasicHttpException> extends BasicRun
        @FluentSetter
        public HttpExceptionBuilder<T> statusLine(BasicStatusLine value) {
                statusLine = value;
-               statusLineBuilder = null;
                return this;
        }
 
@@ -150,7 +137,7 @@ public class HttpExceptionBuilder<T extends 
BasicHttpException> extends BasicRun
         */
        @FluentSetter
        public HttpExceptionBuilder<T> protocolVersion(ProtocolVersion value) {
-               getStatusLine().protocolVersion(value);
+               statusLine.setProtocolVersion(value);
                return this;
        }
 
@@ -165,7 +152,7 @@ public class HttpExceptionBuilder<T extends 
BasicHttpException> extends BasicRun
         */
        @FluentSetter
        public HttpExceptionBuilder<T> statusCode(int value) {
-               getStatusLine().statusCode(value);
+               statusLine.setStatusCode(value);
                return this;
        }
 
@@ -181,7 +168,7 @@ public class HttpExceptionBuilder<T extends 
BasicHttpException> extends BasicRun
         */
        @FluentSetter
        public HttpExceptionBuilder<T> reasonPhrase(String value) {
-               getStatusLine().reasonPhrase(value);
+               statusLine.setReasonPhrase(value);
                return this;
        }
 
@@ -196,7 +183,7 @@ public class HttpExceptionBuilder<T extends 
BasicHttpException> extends BasicRun
         */
        @FluentSetter
        public HttpExceptionBuilder<T> reasonPhraseCatalog(ReasonPhraseCatalog 
value) {
-               getStatusLine().reasonPhraseCatalog(value);
+               statusLine.setReasonPhraseCatalog(value);
                return this;
        }
 
@@ -211,7 +198,7 @@ public class HttpExceptionBuilder<T extends 
BasicHttpException> extends BasicRun
         */
        @FluentSetter
        public HttpExceptionBuilder<T> locale(Locale value) {
-               getStatusLine().locale(value);
+               statusLine.setLocale(value);
                return this;
        }
 
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/HttpResponseBuilder.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/HttpResponseBuilder.java
index 9be5f34ba..8917d2f5f 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/HttpResponseBuilder.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/HttpResponseBuilder.java
@@ -37,10 +37,8 @@ import org.apache.juneau.internal.*;
 @FluentSetters(returns="HttpResponseBuilder<T>")
 public class HttpResponseBuilder<T extends BasicHttpResponse> {
 
-       BasicStatusLine statusLine;
+       BasicStatusLine statusLine = new BasicStatusLine();
        HeaderList headers = HeaderList.create();
-       BasicStatusLine.Builder statusLineBuilder;
-       private int TODO;
        HttpEntity content;
        boolean unmodifiable;
 
@@ -64,7 +62,7 @@ public class HttpResponseBuilder<T extends BasicHttpResponse> 
{
         */
        public HttpResponseBuilder(T copyFrom) {
                implClass = copyFrom.getClass();
-               statusLine = copyFrom.statusLine;
+               statusLine = copyFrom.statusLine.copy();
                headers = copyFrom.headers;
                content = copyFrom.content;
        }
@@ -95,12 +93,6 @@ public class HttpResponseBuilder<T extends 
BasicHttpResponse> {
                return this;
        }
 
-       BasicStatusLine buildStatusLine() {
-               if (statusLineBuilder != null)
-                       return statusLineBuilder.build();
-               return statusLine;
-       }
-
        /**
         * Specifies whether this exception should be unmodifiable after 
creation.
         *
@@ -121,12 +113,8 @@ public class HttpResponseBuilder<T extends 
BasicHttpResponse> {
         *
         * @return The underlying builder for the status line.
         */
-       public BasicStatusLine.Builder getStatusLine() {
-               if (statusLineBuilder == null) {
-                       statusLineBuilder = statusLine == null ? 
BasicStatusLine.create() : statusLine.copy();
-                       statusLine = null;
-               }
-               return statusLineBuilder;
+       public BasicStatusLine getStatusLine() {
+               return statusLine;
        }
 
        /**
@@ -141,7 +129,6 @@ public class HttpResponseBuilder<T extends 
BasicHttpResponse> {
        @FluentSetter
        public HttpResponseBuilder<T> statusLine(BasicStatusLine value) {
                statusLine = value;
-               statusLineBuilder = null;
                return this;
        }
 
@@ -156,7 +143,7 @@ public class HttpResponseBuilder<T extends 
BasicHttpResponse> {
         */
        @FluentSetter
        public HttpResponseBuilder<T> protocolVersion(ProtocolVersion value) {
-               getStatusLine().protocolVersion(value);
+               statusLine.setProtocolVersion(value);
                return this;
        }
 
@@ -171,7 +158,7 @@ public class HttpResponseBuilder<T extends 
BasicHttpResponse> {
         */
        @FluentSetter
        public HttpResponseBuilder<T> statusCode(int value) {
-               getStatusLine().statusCode(value);
+               statusLine.setStatusCode(value);
                return this;
        }
 
@@ -187,7 +174,7 @@ public class HttpResponseBuilder<T extends 
BasicHttpResponse> {
         */
        @FluentSetter
        public HttpResponseBuilder<T> reasonPhrase(String value) {
-               getStatusLine().reasonPhrase(value);
+               statusLine.setReasonPhrase(value);
                return this;
        }
 
@@ -202,7 +189,7 @@ public class HttpResponseBuilder<T extends 
BasicHttpResponse> {
         */
        @FluentSetter
        public HttpResponseBuilder<T> reasonPhraseCatalog(ReasonPhraseCatalog 
value) {
-               getStatusLine().reasonPhraseCatalog(value);
+               statusLine.setReasonPhraseCatalog(value);
                return this;
        }
 
@@ -217,7 +204,7 @@ public class HttpResponseBuilder<T extends 
BasicHttpResponse> {
         */
        @FluentSetter
        public HttpResponseBuilder<T> locale(Locale value) {
-               getStatusLine().locale(value);
+               statusLine.setLocale(value);
                return this;
        }
 
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/HttpVersionNotSupported.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/HttpVersionNotSupported.java
index 5959efd52..6ff407dcc 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/HttpVersionNotSupported.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/HttpVersionNotSupported.java
@@ -47,7 +47,7 @@ public class HttpVersionNotSupported extends 
BasicHttpException {
        public static final String REASON_PHRASE = "HTTP Version Not Supported";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final HttpVersionNotSupported INSTANCE = 
create().unmodifiable().build();
@@ -58,7 +58,7 @@ public class HttpVersionNotSupported extends 
BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<HttpVersionNotSupported> create() {
-               return new 
HttpExceptionBuilder<>(HttpVersionNotSupported.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(HttpVersionNotSupported.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/IMUsed.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/IMUsed.java
index 3902b6d9c..263f307f2 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/IMUsed.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/IMUsed.java
@@ -42,7 +42,7 @@ public class IMUsed extends BasicHttpResponse {
        public static final String REASON_PHRASE = "IM Used";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final IMUsed INSTANCE = create().unmodifiable().build();
@@ -53,7 +53,7 @@ public class IMUsed extends BasicHttpResponse {
         * @return A new builder bean.
         */
        public static HttpResponseBuilder<IMUsed> create() {
-               return new 
HttpResponseBuilder<>(IMUsed.class).statusLine(STATUS_LINE);
+               return new 
HttpResponseBuilder<>(IMUsed.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/InsufficientStorage.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/InsufficientStorage.java
index ce723e52a..1271720ad 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/InsufficientStorage.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/InsufficientStorage.java
@@ -47,7 +47,7 @@ public class InsufficientStorage extends BasicHttpException {
        public static final String REASON_PHRASE = "Insufficient Storage";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final InsufficientStorage INSTANCE = 
create().unmodifiable().build();
@@ -58,7 +58,7 @@ public class InsufficientStorage extends BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<InsufficientStorage> create() {
-               return new 
HttpExceptionBuilder<>(InsufficientStorage.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(InsufficientStorage.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/InternalServerError.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/InternalServerError.java
index 4618950c5..5b5b3a16a 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/InternalServerError.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/InternalServerError.java
@@ -47,7 +47,7 @@ public class InternalServerError extends BasicHttpException {
        public static final String REASON_PHRASE = "Internal Server Error";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final InternalServerError INSTANCE = 
create().unmodifiable().build();
@@ -58,7 +58,7 @@ public class InternalServerError extends BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<InternalServerError> create() {
-               return new 
HttpExceptionBuilder<>(InternalServerError.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(InternalServerError.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/LengthRequired.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/LengthRequired.java
index 0fc67a219..d62372721 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/LengthRequired.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/LengthRequired.java
@@ -47,7 +47,7 @@ public class LengthRequired extends BasicHttpException {
        public static final String REASON_PHRASE = "Length Required";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final LengthRequired INSTANCE = 
create().unmodifiable().build();
@@ -58,7 +58,7 @@ public class LengthRequired extends BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<LengthRequired> create() {
-               return new 
HttpExceptionBuilder<>(LengthRequired.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(LengthRequired.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Locked.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Locked.java
index 272914f2f..8516c9bfa 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Locked.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Locked.java
@@ -47,7 +47,7 @@ public class Locked extends BasicHttpException {
        public static final String REASON_PHRASE = "Locked";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final Locked INSTANCE = create().unmodifiable().build();
@@ -58,7 +58,7 @@ public class Locked extends BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<Locked> create() {
-               return new 
HttpExceptionBuilder<>(Locked.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(Locked.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/LoopDetected.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/LoopDetected.java
index 4d3e33748..6709dd840 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/LoopDetected.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/LoopDetected.java
@@ -47,7 +47,7 @@ public class LoopDetected extends BasicHttpException {
        public static final String REASON_PHRASE = "Loop Detected";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final LoopDetected INSTANCE = 
create().unmodifiable().build();
@@ -58,7 +58,7 @@ public class LoopDetected extends BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<LoopDetected> create() {
-               return new 
HttpExceptionBuilder<>(LoopDetected.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(LoopDetected.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/MethodNotAllowed.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/MethodNotAllowed.java
index 1e07a1e95..963c7a96c 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/MethodNotAllowed.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/MethodNotAllowed.java
@@ -47,7 +47,7 @@ public class MethodNotAllowed extends BasicHttpException {
        public static final String REASON_PHRASE = "Method Not Allowed";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final MethodNotAllowed INSTANCE = 
create().unmodifiable().build();
@@ -58,7 +58,7 @@ public class MethodNotAllowed extends BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<MethodNotAllowed> create() {
-               return new 
HttpExceptionBuilder<>(MethodNotAllowed.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(MethodNotAllowed.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/MisdirectedRequest.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/MisdirectedRequest.java
index 93d0250ef..7223415cd 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/MisdirectedRequest.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/MisdirectedRequest.java
@@ -47,7 +47,7 @@ public class MisdirectedRequest extends BasicHttpException {
        public static final String REASON_PHRASE = "Misdirected Request";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final MisdirectedRequest INSTANCE = 
create().unmodifiable().build();
@@ -58,7 +58,7 @@ public class MisdirectedRequest extends BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<MisdirectedRequest> create() {
-               return new 
HttpExceptionBuilder<>(MisdirectedRequest.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(MisdirectedRequest.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/MovedPermanently.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/MovedPermanently.java
index 07f8c1c0c..9353bd536 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/MovedPermanently.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/MovedPermanently.java
@@ -42,7 +42,7 @@ public class MovedPermanently extends BasicHttpResponse {
        public static final String REASON_PHRASE = "Moved Permanently";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final MovedPermanently INSTANCE = 
create().unmodifiable().build();
@@ -53,7 +53,7 @@ public class MovedPermanently extends BasicHttpResponse {
         * @return A new builder bean.
         */
        public static HttpResponseBuilder<MovedPermanently> create() {
-               return new 
HttpResponseBuilder<>(MovedPermanently.class).statusLine(STATUS_LINE);
+               return new 
HttpResponseBuilder<>(MovedPermanently.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/MultiStatus.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/MultiStatus.java
index 0b7b4b645..a6e7b97af 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/MultiStatus.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/MultiStatus.java
@@ -42,7 +42,7 @@ public class MultiStatus extends BasicHttpResponse {
        public static final String REASON_PHRASE = "Multi-Status";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final MultiStatus INSTANCE = 
create().unmodifiable().build();
@@ -53,7 +53,7 @@ public class MultiStatus extends BasicHttpResponse {
         * @return A new builder bean.
         */
        public static HttpResponseBuilder<MultiStatus> create() {
-               return new 
HttpResponseBuilder<>(MultiStatus.class).statusLine(STATUS_LINE);
+               return new 
HttpResponseBuilder<>(MultiStatus.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/MultipleChoices.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/MultipleChoices.java
index 2bfd46c90..7179be58a 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/MultipleChoices.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/MultipleChoices.java
@@ -43,7 +43,7 @@ public class MultipleChoices extends BasicHttpResponse {
        public static final String REASON_PHRASE = "Multiple Choices";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final MultipleChoices INSTANCE = 
create().unmodifiable().build();
@@ -54,7 +54,7 @@ public class MultipleChoices extends BasicHttpResponse {
         * @return A new builder bean.
         */
        public static HttpResponseBuilder<MultipleChoices> create() {
-               return new 
HttpResponseBuilder<>(MultipleChoices.class).statusLine(STATUS_LINE);
+               return new 
HttpResponseBuilder<>(MultipleChoices.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NetworkAuthenticationRequired.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NetworkAuthenticationRequired.java
index e3d05dd0d..5d778df08 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NetworkAuthenticationRequired.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NetworkAuthenticationRequired.java
@@ -48,7 +48,7 @@ public class NetworkAuthenticationRequired extends 
BasicHttpException {
        public static final String REASON_PHRASE = "Network Authentication 
Required";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final NetworkAuthenticationRequired INSTANCE = 
create().unmodifiable().build();
@@ -59,7 +59,7 @@ public class NetworkAuthenticationRequired extends 
BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<NetworkAuthenticationRequired> 
create() {
-               return new 
HttpExceptionBuilder<>(NetworkAuthenticationRequired.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(NetworkAuthenticationRequired.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NoContent.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NoContent.java
index 60f3bc3a3..414daf497 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NoContent.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NoContent.java
@@ -42,7 +42,7 @@ public class NoContent extends BasicHttpResponse {
        public static final String REASON_PHRASE = "No Content";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final NoContent INSTANCE = 
create().unmodifiable().build();
@@ -53,7 +53,7 @@ public class NoContent extends BasicHttpResponse {
         * @return A new builder bean.
         */
        public static HttpResponseBuilder<NoContent> create() {
-               return new 
HttpResponseBuilder<>(NoContent.class).statusLine(STATUS_LINE);
+               return new 
HttpResponseBuilder<>(NoContent.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NonAuthoritiveInformation.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NonAuthoritiveInformation.java
index b1f982ac7..c1c7ffe93 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NonAuthoritiveInformation.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NonAuthoritiveInformation.java
@@ -42,7 +42,7 @@ public class NonAuthoritiveInformation extends 
BasicHttpResponse {
        public static final String REASON_PHRASE = "Non-Authoritative 
Information";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final NonAuthoritiveInformation INSTANCE = 
create().unmodifiable().build();
@@ -53,7 +53,7 @@ public class NonAuthoritiveInformation extends 
BasicHttpResponse {
         * @return A new builder bean.
         */
        public static HttpResponseBuilder<NonAuthoritiveInformation> create() {
-               return new 
HttpResponseBuilder<>(NonAuthoritiveInformation.class).statusLine(STATUS_LINE);
+               return new 
HttpResponseBuilder<>(NonAuthoritiveInformation.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NotAcceptable.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NotAcceptable.java
index 9dc25be6f..2c4613df8 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NotAcceptable.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NotAcceptable.java
@@ -47,7 +47,7 @@ public class NotAcceptable extends BasicHttpException {
        public static final String REASON_PHRASE = "Not Acceptable";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final NotAcceptable INSTANCE = 
create().unmodifiable().build();
@@ -58,7 +58,7 @@ public class NotAcceptable extends BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<NotAcceptable> create() {
-               return new 
HttpExceptionBuilder<>(NotAcceptable.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(NotAcceptable.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NotExtended.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NotExtended.java
index 5dd3d7e0a..55b764a74 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NotExtended.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NotExtended.java
@@ -47,7 +47,7 @@ public class NotExtended extends BasicHttpException {
        public static final String REASON_PHRASE = "Not Extended";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final NotExtended INSTANCE = 
create().unmodifiable().build();
@@ -58,7 +58,7 @@ public class NotExtended extends BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<NotExtended> create() {
-               return new 
HttpExceptionBuilder<>(NotExtended.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(NotExtended.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NotFound.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NotFound.java
index 7cb2c3c10..40af199f1 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NotFound.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NotFound.java
@@ -48,7 +48,7 @@ public class NotFound extends BasicHttpException {
        public static final String REASON_PHRASE = "Not Found";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final NotFound INSTANCE = create().unmodifiable().build();
@@ -59,7 +59,7 @@ public class NotFound extends BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<NotFound> create() {
-               return new 
HttpExceptionBuilder<>(NotFound.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(NotFound.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NotImplemented.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NotImplemented.java
index d8a97bf51..8913eed21 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NotImplemented.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NotImplemented.java
@@ -48,7 +48,7 @@ public class NotImplemented extends BasicHttpException {
        public static final String REASON_PHRASE = "Not Implemented";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final NotImplemented INSTANCE = 
create().unmodifiable().build();
@@ -59,7 +59,7 @@ public class NotImplemented extends BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<NotImplemented> create() {
-               return new 
HttpExceptionBuilder<>(NotImplemented.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(NotImplemented.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NotModified.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NotModified.java
index b267a9078..03748af81 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NotModified.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/NotModified.java
@@ -43,7 +43,7 @@ public class NotModified extends BasicHttpResponse {
        public static final String REASON_PHRASE = "Not Modified";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final NotModified INSTANCE = 
create().unmodifiable().build();
@@ -54,7 +54,7 @@ public class NotModified extends BasicHttpResponse {
         * @return A new builder bean.
         */
        public static HttpResponseBuilder<NotModified> create() {
-               return new 
HttpResponseBuilder<>(NotModified.class).statusLine(STATUS_LINE);
+               return new 
HttpResponseBuilder<>(NotModified.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Ok.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Ok.java
index f451f52e3..6010d89d9 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Ok.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Ok.java
@@ -44,7 +44,7 @@ public class Ok extends BasicHttpResponse {
        public static final String REASON_PHRASE = "OK";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final Ok INSTANCE = create().unmodifiable().build();
@@ -58,7 +58,7 @@ public class Ok extends BasicHttpResponse {
         * @return A new builder bean.
         */
        public static HttpResponseBuilder<Ok> create() {
-               return new 
HttpResponseBuilder<>(Ok.class).statusLine(STATUS_LINE);
+               return new 
HttpResponseBuilder<>(Ok.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/PartialContent.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/PartialContent.java
index d774de54e..55193412f 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/PartialContent.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/PartialContent.java
@@ -43,7 +43,7 @@ public class PartialContent extends BasicHttpResponse {
        public static final String REASON_PHRASE = "Partial Content";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final PartialContent INSTANCE = 
create().unmodifiable().build();
@@ -54,7 +54,7 @@ public class PartialContent extends BasicHttpResponse {
         * @return A new builder bean.
         */
        public static HttpResponseBuilder<PartialContent> create() {
-               return new 
HttpResponseBuilder<>(PartialContent.class).statusLine(STATUS_LINE);
+               return new 
HttpResponseBuilder<>(PartialContent.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/PayloadTooLarge.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/PayloadTooLarge.java
index 7f3a86d12..deee3cf77 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/PayloadTooLarge.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/PayloadTooLarge.java
@@ -47,7 +47,7 @@ public class PayloadTooLarge extends BasicHttpException {
        public static final String REASON_PHRASE = "Payload Too Large";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final PayloadTooLarge INSTANCE = 
create().unmodifiable().build();
@@ -58,7 +58,7 @@ public class PayloadTooLarge extends BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<PayloadTooLarge> create() {
-               return new 
HttpExceptionBuilder<>(PayloadTooLarge.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(PayloadTooLarge.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/PermanentRedirect.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/PermanentRedirect.java
index 65f802ee4..2b6424c65 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/PermanentRedirect.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/PermanentRedirect.java
@@ -43,7 +43,7 @@ public class PermanentRedirect extends BasicHttpResponse {
        public static final String REASON_PHRASE = "Permanent Redirect";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final PermanentRedirect INSTANCE = 
create().unmodifiable().build();
@@ -54,7 +54,7 @@ public class PermanentRedirect extends BasicHttpResponse {
         * @return A new builder bean.
         */
        public static HttpResponseBuilder<PermanentRedirect> create() {
-               return new 
HttpResponseBuilder<>(PermanentRedirect.class).statusLine(STATUS_LINE);
+               return new 
HttpResponseBuilder<>(PermanentRedirect.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/PreconditionFailed.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/PreconditionFailed.java
index 29d197ae2..4c7794f3b 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/PreconditionFailed.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/PreconditionFailed.java
@@ -47,7 +47,7 @@ public class PreconditionFailed extends BasicHttpException {
        public static final String REASON_PHRASE = "Precondition Failed";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final PreconditionFailed INSTANCE = 
create().unmodifiable().build();
@@ -58,7 +58,7 @@ public class PreconditionFailed extends BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<PreconditionFailed> create() {
-               return new 
HttpExceptionBuilder<>(PreconditionFailed.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(PreconditionFailed.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/PreconditionRequired.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/PreconditionRequired.java
index 5e28bc9bb..e924ca482 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/PreconditionRequired.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/PreconditionRequired.java
@@ -48,7 +48,7 @@ public class PreconditionRequired extends BasicHttpException {
        public static final String REASON_PHRASE = "Precondition Required";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final PreconditionRequired INSTANCE = 
create().unmodifiable().build();
@@ -59,7 +59,7 @@ public class PreconditionRequired extends BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<PreconditionRequired> create() {
-               return new 
HttpExceptionBuilder<>(PreconditionRequired.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(PreconditionRequired.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Processing.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Processing.java
index 891511a67..a39cfaf1b 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Processing.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Processing.java
@@ -44,7 +44,7 @@ public class Processing extends BasicHttpResponse {
        public static final String REASON_PHRASE = "Processing";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final Processing INSTANCE = 
create().unmodifiable().build();
@@ -55,7 +55,7 @@ public class Processing extends BasicHttpResponse {
         * @return A new builder bean.
         */
        public static HttpResponseBuilder<Processing> create() {
-               return new 
HttpResponseBuilder<>(Processing.class).statusLine(STATUS_LINE);
+               return new 
HttpResponseBuilder<>(Processing.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/RangeNotSatisfiable.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/RangeNotSatisfiable.java
index cf04506f4..d55e968da 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/RangeNotSatisfiable.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/RangeNotSatisfiable.java
@@ -48,7 +48,7 @@ public class RangeNotSatisfiable extends BasicHttpException {
        public static final String REASON_PHRASE = "Range Not Satisfiable";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final RangeNotSatisfiable INSTANCE = 
create().unmodifiable().build();
@@ -59,7 +59,7 @@ public class RangeNotSatisfiable extends BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<RangeNotSatisfiable> create() {
-               return new 
HttpExceptionBuilder<>(RangeNotSatisfiable.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(RangeNotSatisfiable.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/RequestHeaderFieldsTooLarge.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/RequestHeaderFieldsTooLarge.java
index ae95cadae..12b6a6d73 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/RequestHeaderFieldsTooLarge.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/RequestHeaderFieldsTooLarge.java
@@ -47,7 +47,7 @@ public class RequestHeaderFieldsTooLarge extends 
BasicHttpException {
        public static final String REASON_PHRASE = "Request Header Fields Too 
Large";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final RequestHeaderFieldsTooLarge INSTANCE = 
create().unmodifiable().build();
@@ -58,7 +58,7 @@ public class RequestHeaderFieldsTooLarge extends 
BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<RequestHeaderFieldsTooLarge> 
create() {
-               return new 
HttpExceptionBuilder<>(RequestHeaderFieldsTooLarge.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(RequestHeaderFieldsTooLarge.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/ResetContent.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/ResetContent.java
index e1a0a9fb9..21fbe2a11 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/ResetContent.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/ResetContent.java
@@ -43,7 +43,7 @@ public class ResetContent extends BasicHttpResponse {
        public static final String REASON_PHRASE = "Reset Content";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final ResetContent INSTANCE = 
create().unmodifiable().build();
@@ -54,7 +54,7 @@ public class ResetContent extends BasicHttpResponse {
         * @return A new builder bean.
         */
        public static HttpResponseBuilder<ResetContent> create() {
-               return new 
HttpResponseBuilder<>(ResetContent.class).statusLine(STATUS_LINE);
+               return new 
HttpResponseBuilder<>(ResetContent.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/SeeOther.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/SeeOther.java
index bdbe5eb0f..157bdd231 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/SeeOther.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/SeeOther.java
@@ -43,7 +43,7 @@ public class SeeOther extends BasicHttpResponse {
        public static final String REASON_PHRASE = "See Other";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final SeeOther INSTANCE = create().unmodifiable().build();
@@ -54,7 +54,7 @@ public class SeeOther extends BasicHttpResponse {
         * @return A new builder bean.
         */
        public static HttpResponseBuilder<SeeOther> create() {
-               return new 
HttpResponseBuilder<>(SeeOther.class).statusLine(STATUS_LINE);
+               return new 
HttpResponseBuilder<>(SeeOther.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/ServiceUnavailable.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/ServiceUnavailable.java
index 459d4875f..2bb261290 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/ServiceUnavailable.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/ServiceUnavailable.java
@@ -48,7 +48,7 @@ public class ServiceUnavailable extends BasicHttpException {
        public static final String REASON_PHRASE = "Service Unavailable";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final ServiceUnavailable INSTANCE = 
create().unmodifiable().build();
@@ -59,7 +59,7 @@ public class ServiceUnavailable extends BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<ServiceUnavailable> create() {
-               return new 
HttpExceptionBuilder<>(ServiceUnavailable.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(ServiceUnavailable.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/SwitchingProtocols.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/SwitchingProtocols.java
index 24fc21e8b..1df4ee46e 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/SwitchingProtocols.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/SwitchingProtocols.java
@@ -42,7 +42,7 @@ public class SwitchingProtocols extends BasicHttpResponse {
        public static final String REASON_PHRASE = "Switching Protocols";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final SwitchingProtocols INSTANCE = 
create().unmodifiable().build();
@@ -53,7 +53,7 @@ public class SwitchingProtocols extends BasicHttpResponse {
         * @return A new builder bean.
         */
        public static HttpResponseBuilder<SwitchingProtocols> create() {
-               return new 
HttpResponseBuilder<>(SwitchingProtocols.class).statusLine(STATUS_LINE);
+               return new 
HttpResponseBuilder<>(SwitchingProtocols.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/TemporaryRedirect.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/TemporaryRedirect.java
index e6d8dc6cf..9c214695b 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/TemporaryRedirect.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/TemporaryRedirect.java
@@ -44,7 +44,7 @@ public class TemporaryRedirect extends BasicHttpResponse {
        public static final String REASON_PHRASE = "Temporary Redirect";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final TemporaryRedirect INSTANCE = 
create().unmodifiable().build();
@@ -55,7 +55,7 @@ public class TemporaryRedirect extends BasicHttpResponse {
         * @return A new builder bean.
         */
        public static HttpResponseBuilder<TemporaryRedirect> create() {
-               return new 
HttpResponseBuilder<>(TemporaryRedirect.class).statusLine(STATUS_LINE);
+               return new 
HttpResponseBuilder<>(TemporaryRedirect.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/TooManyRequests.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/TooManyRequests.java
index d1bc99632..6ca803015 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/TooManyRequests.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/TooManyRequests.java
@@ -48,7 +48,7 @@ public class TooManyRequests extends BasicHttpException {
        public static final String REASON_PHRASE = "Too Many Requests";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final TooManyRequests INSTANCE = 
create().unmodifiable().build();
@@ -59,7 +59,7 @@ public class TooManyRequests extends BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<TooManyRequests> create() {
-               return new 
HttpExceptionBuilder<>(TooManyRequests.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(TooManyRequests.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Unauthorized.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Unauthorized.java
index afdfc0f0e..aa3dfef06 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Unauthorized.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/Unauthorized.java
@@ -50,7 +50,7 @@ public class Unauthorized extends BasicHttpException {
        public static final String REASON_PHRASE = "Unauthorized";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final Unauthorized INSTANCE = 
create().unmodifiable().build();
@@ -61,7 +61,7 @@ public class Unauthorized extends BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<Unauthorized> create() {
-               return new 
HttpExceptionBuilder<>(Unauthorized.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(Unauthorized.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/UnavailableForLegalReasons.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/UnavailableForLegalReasons.java
index a840432b0..c104ae3ba 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/UnavailableForLegalReasons.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/UnavailableForLegalReasons.java
@@ -47,7 +47,7 @@ public class UnavailableForLegalReasons extends 
BasicHttpException {
        public static final String REASON_PHRASE = "Unavailable For Legal 
Reasons";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final UnavailableForLegalReasons INSTANCE = 
create().unmodifiable().build();
@@ -58,7 +58,7 @@ public class UnavailableForLegalReasons extends 
BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<UnavailableForLegalReasons> create() 
{
-               return new 
HttpExceptionBuilder<>(UnavailableForLegalReasons.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(UnavailableForLegalReasons.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/UnprocessableEntity.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/UnprocessableEntity.java
index 6a9aa1e6b..2527731ad 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/UnprocessableEntity.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/UnprocessableEntity.java
@@ -47,7 +47,7 @@ public class UnprocessableEntity extends BasicHttpException {
        public static final String REASON_PHRASE = "Unprocessable Entity";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final UnprocessableEntity INSTANCE = 
create().unmodifiable().build();
@@ -58,7 +58,7 @@ public class UnprocessableEntity extends BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<UnprocessableEntity> create() {
-               return new 
HttpExceptionBuilder<>(UnprocessableEntity.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(UnprocessableEntity.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/UnsupportedMediaType.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/UnsupportedMediaType.java
index c6c5b7209..fbdaa4d93 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/UnsupportedMediaType.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/UnsupportedMediaType.java
@@ -48,7 +48,7 @@ public class UnsupportedMediaType extends BasicHttpException {
        public static final String REASON_PHRASE = "Unsupported Media Type";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final UnsupportedMediaType INSTANCE = 
create().unmodifiable().build();
@@ -59,7 +59,7 @@ public class UnsupportedMediaType extends BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<UnsupportedMediaType> create() {
-               return new 
HttpExceptionBuilder<>(UnsupportedMediaType.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(UnsupportedMediaType.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/UpgradeRequired.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/UpgradeRequired.java
index 0b0c7d2e4..d75d36f67 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/UpgradeRequired.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/UpgradeRequired.java
@@ -47,7 +47,7 @@ public class UpgradeRequired extends BasicHttpException {
        public static final String REASON_PHRASE = "Upgrade Required";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final UpgradeRequired INSTANCE = 
create().unmodifiable().build();
@@ -58,7 +58,7 @@ public class UpgradeRequired extends BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<UpgradeRequired> create() {
-               return new 
HttpExceptionBuilder<>(UpgradeRequired.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(UpgradeRequired.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/UriTooLong.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/UriTooLong.java
index dbe54e60c..c91f4c899 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/UriTooLong.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/UriTooLong.java
@@ -48,7 +48,7 @@ public class UriTooLong extends BasicHttpException {
        public static final String REASON_PHRASE = "URI Too Long";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final UriTooLong INSTANCE = 
create().unmodifiable().build();
@@ -59,7 +59,7 @@ public class UriTooLong extends BasicHttpException {
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<UriTooLong> create() {
-               return new 
HttpExceptionBuilder<>(UriTooLong.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(UriTooLong.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/UseProxy.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/UseProxy.java
index a131c5c3d..f65402060 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/UseProxy.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/UseProxy.java
@@ -42,7 +42,7 @@ public class UseProxy extends BasicHttpResponse {
        /** Reason phrase */
        public static final String REASON_PHRASE = "Use Proxy";
 
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /**
         * Default unmodifiable instance.
@@ -57,7 +57,7 @@ public class UseProxy extends BasicHttpResponse {
         * @return A new builder bean.
         */
        public static HttpResponseBuilder<UseProxy> create() {
-               return new 
HttpResponseBuilder<>(UseProxy.class).statusLine(STATUS_LINE);
+               return new 
HttpResponseBuilder<>(UseProxy.class).statusLine(STATUS_LINE.copy());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/VariantAlsoNegotiates.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/VariantAlsoNegotiates.java
index b917db4c7..aa448975a 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/VariantAlsoNegotiates.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/response/VariantAlsoNegotiates.java
@@ -47,7 +47,7 @@ public class VariantAlsoNegotiates extends BasicHttpException 
{
        public static final String REASON_PHRASE = "Variant Also Negotiates";
 
        /** Default status line */
-       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create().statusCode(STATUS_CODE).reasonPhrase(REASON_PHRASE).build();
+       private static final BasicStatusLine STATUS_LINE = 
BasicStatusLine.create(STATUS_CODE, REASON_PHRASE);
 
        /** Reusable unmodifiable instance */
        public static final VariantAlsoNegotiates INSTANCE = 
create().unmodifiable().build();
@@ -58,7 +58,7 @@ public class VariantAlsoNegotiates extends BasicHttpException 
{
         * @return A new builder bean.
         */
        public static HttpExceptionBuilder<VariantAlsoNegotiates> create() {
-               return new 
HttpExceptionBuilder<>(VariantAlsoNegotiates.class).statusLine(STATUS_LINE);
+               return new 
HttpExceptionBuilder<>(VariantAlsoNegotiates.class).statusLine(STATUS_LINE.copy());
        }
 
        /**

Reply via email to