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 e63494833 Allow HeaderList/PartList to be unmodifiable lists.
e63494833 is described below

commit e6349483342ece6aaa3b95281ac1391c1005384c
Author: JamesBognar <[email protected]>
AuthorDate: Mon Sep 5 10:31:35 2022 -0400

    Allow HeaderList/PartList to be unmodifiable lists.
---
 .../org/apache/juneau/BasicRuntimeException.java   | 53 +++++++-----
 .../juneau/collections/ControlledArrayList.java    | 77 +++++++++++------
 .../org/apache/juneau/http/BasicStatusLine.java    | 27 ++++++
 .../org/apache/juneau/http/header/HeaderList.java  | 16 +++-
 .../java/org/apache/juneau/http/part/PartList.java | 16 +++-
 .../apache/juneau/http/response/BadRequest.java    | 14 ++++
 .../juneau/http/response/BasicHttpException.java   | 98 +++++++++++++++++-----
 .../juneau/http/response/BasicHttpResponse.java    | 56 ++++++++-----
 .../org/apache/juneau/http/response/Conflict.java  | 14 ++++
 .../juneau/http/response/ExpectationFailed.java    | 14 ++++
 .../juneau/http/response/FailedDependency.java     | 14 ++++
 .../org/apache/juneau/http/response/Forbidden.java | 14 ++++
 .../java/org/apache/juneau/http/response/Gone.java | 14 ++++
 .../http/response/HttpVersionNotSupported.java     | 14 ++++
 .../juneau/http/response/InsufficientStorage.java  | 14 ++++
 .../juneau/http/response/InternalServerError.java  | 14 ++++
 .../juneau/http/response/LengthRequired.java       | 14 ++++
 .../org/apache/juneau/http/response/Locked.java    | 14 ++++
 .../apache/juneau/http/response/LoopDetected.java  | 14 ++++
 .../juneau/http/response/MethodNotAllowed.java     | 14 ++++
 .../juneau/http/response/MisdirectedRequest.java   | 14 ++++
 .../response/NetworkAuthenticationRequired.java    | 14 ++++
 .../apache/juneau/http/response/NotAcceptable.java | 14 ++++
 .../apache/juneau/http/response/NotExtended.java   | 14 ++++
 .../org/apache/juneau/http/response/NotFound.java  | 14 ++++
 .../juneau/http/response/NotImplemented.java       | 14 ++++
 .../juneau/http/response/PayloadTooLarge.java      | 14 ++++
 .../juneau/http/response/PreconditionFailed.java   | 14 ++++
 .../juneau/http/response/PreconditionRequired.java | 14 ++++
 .../juneau/http/response/RangeNotSatisfiable.java  | 14 ++++
 .../http/response/RequestHeaderFieldsTooLarge.java | 14 ++++
 .../juneau/http/response/ServiceUnavailable.java   | 14 ++++
 .../juneau/http/response/TooManyRequests.java      | 14 ++++
 .../apache/juneau/http/response/Unauthorized.java  | 14 ++++
 .../http/response/UnavailableForLegalReasons.java  | 14 ++++
 .../juneau/http/response/UnprocessableEntity.java  | 14 ++++
 .../juneau/http/response/UnsupportedMediaType.java | 14 ++++
 .../juneau/http/response/UpgradeRequired.java      | 14 ++++
 .../apache/juneau/http/response/UriTooLong.java    | 14 ++++
 .../http/response/VariantAlsoNegotiates.java       | 14 ++++
 .../collections/ControlledArrayList_Test.java      | 20 ++---
 41 files changed, 721 insertions(+), 104 deletions(-)

diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicRuntimeException.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicRuntimeException.java
index d00d9420b..4cc5ab817 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicRuntimeException.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BasicRuntimeException.java
@@ -73,6 +73,40 @@ public class BasicRuntimeException extends RuntimeException {
                super(cause);
        }
 
+       
//-----------------------------------------------------------------------------------------------------------------
+       // Properties
+       
//-----------------------------------------------------------------------------------------------------------------
+
+       /**
+        * Specifies whether this bean should be unmodifiable.
+        * <p>
+        * When enabled, attempting to set any properties on this bean will 
cause an {@link UnsupportedOperationException}.
+        *
+        * @return This object.
+        */
+       @FluentSetter
+       protected BasicRuntimeException setUnmodifiable() {
+               unmodifiable = true;
+               return this;
+       }
+
+       /**
+        * Returns <jk>true</jk> if this bean is unmodifiable.
+        *
+        * @return <jk>true</jk> if this bean is unmodifiable.
+        */
+       public boolean isUnmodifiable() {
+               return unmodifiable;
+       }
+
+       /**
+        * Throws an {@link UnsupportedOperationException} if the unmodifiable 
flag is set on this bean.
+        */
+       protected final void assertModifiable() {
+               if (unmodifiable)
+                       throw new UnsupportedOperationException("Bean is 
read-only");
+       }
+
        /**
         * Same as {@link #getCause()} but searches the throwable chain for an 
exception of the specified type.
         *
@@ -136,25 +170,6 @@ public class BasicRuntimeException extends 
RuntimeException {
                return t == null ? this : t;
        }
 
-       /**
-        * Set the unmodifiable flag on this exception.  This prevents the 
message from being modified.
-        *
-        * @return This object.
-        */
-       @FluentSetter
-       protected BasicRuntimeException setUnmodifiable() {
-               unmodifiable = true;
-               return this;
-       }
-
-       /**
-        * Throws an {@link UnsupportedOperationException} if the unmodifiable 
flag is set on this bean.
-        */
-       protected final void assertModifiable() {
-               if (unmodifiable)
-                       throw new UnsupportedOperationException("Bean is 
read-only");
-       }
-
        // <FluentSetters>
 
        // </FluentSetters>
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/ControlledArrayList.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/ControlledArrayList.java
index 0b38c3613..ef809a8e5 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/ControlledArrayList.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/collections/ControlledArrayList.java
@@ -15,6 +15,8 @@ package org.apache.juneau.collections;
 import java.util.*;
 import java.util.function.*;
 
+import org.apache.juneau.internal.*;
+
 /**
  * An array list that allows you to control whether it's read-only via a 
constructor parameter.
  *
@@ -29,31 +31,52 @@ public class ControlledArrayList<E> extends ArrayList<E> {
 
        private static final long serialVersionUID = -1L;
 
-       private final boolean modifiable;
+       private boolean unmodifiable;
 
        /**
         * Constructor.
         *
-        * @param modifiable If <jk>true</jk>, this list can be modified 
through normal list operation methods on the {@link List} interface.
+        * @param unmodifiable If <jk>true</jk>, this list cannot be modified 
through normal list operation methods on the {@link List} interface.
         */
-       public ControlledArrayList(boolean modifiable) {
-               this.modifiable = modifiable;
+       public ControlledArrayList(boolean unmodifiable) {
+               this.unmodifiable = unmodifiable;
        }
 
        /**
         * Constructor.
         *
-        * @param modifiable If <jk>true</jk>, this list can be modified 
through normal list operation methods on the {@link List} interface.
+        * @param unmodifiable If <jk>true</jk>, this list cannot be modified 
through normal list operation methods on the {@link List} interface.
         * @param list The initial contents of this list.
         */
-       public ControlledArrayList(boolean modifiable, List<? extends E> list) {
+       public ControlledArrayList(boolean unmodifiable, List<? extends E> 
list) {
                super(list);
-               this.modifiable = modifiable;
+               this.unmodifiable = unmodifiable;
+       }
+
+       
//-----------------------------------------------------------------------------------------------------------------
+       // Properties
+       
//-----------------------------------------------------------------------------------------------------------------
+
+
+       /**
+        * Specifies whether this bean should be unmodifiable.
+        * <p>
+        * When enabled, attempting to set any properties on this bean will 
cause an {@link UnsupportedOperationException}.
+        *
+        * @return This object.
+        */
+       @FluentSetter
+       public ControlledArrayList<E> setUnmodifiable() {
+               unmodifiable = true;
+               return this;
        }
 
-       void checkModifiable() {
-               if (! modifiable)
-                       throw new UnsupportedOperationException("List is 
read-only.");
+       /**
+        * Throws an {@link UnsupportedOperationException} if the unmodifiable 
flag is set on this bean.
+        */
+       protected final void assertModifiable() {
+               if (unmodifiable)
+                       throw new UnsupportedOperationException("List is 
read-only");
        }
 
        /**
@@ -62,12 +85,12 @@ public class ControlledArrayList<E> extends ArrayList<E> {
         * @return <jk>true</jk> if this list is modifiable.
         */
        public boolean isModifiable() {
-               return modifiable;
+               return ! unmodifiable;
        }
 
        @Override
        public E set(int index, E element) {
-               checkModifiable();
+               assertModifiable();
                return overrideSet(index, element);
        }
 
@@ -84,7 +107,7 @@ public class ControlledArrayList<E> extends ArrayList<E> {
 
        @Override
        public void add(int index, E element) {
-               checkModifiable();
+               assertModifiable();
                overrideAdd(index, element);
        }
 
@@ -100,7 +123,7 @@ public class ControlledArrayList<E> extends ArrayList<E> {
 
        @Override
        public E remove(int index) {
-               checkModifiable();
+               assertModifiable();
                return overrideRemove(index);
        }
 
@@ -116,7 +139,7 @@ public class ControlledArrayList<E> extends ArrayList<E> {
 
        @Override
        public boolean addAll(int index, Collection<? extends E> c) {
-               checkModifiable();
+               assertModifiable();
                return overrideAddAll(index, c);
        }
 
@@ -133,7 +156,7 @@ public class ControlledArrayList<E> extends ArrayList<E> {
 
        @Override
        public void replaceAll(UnaryOperator<E> operator) {
-               checkModifiable();
+               assertModifiable();
                overrideReplaceAll(operator);
        }
 
@@ -148,7 +171,7 @@ public class ControlledArrayList<E> extends ArrayList<E> {
 
        @Override
        public void sort(Comparator<? super E> c) {
-               checkModifiable();
+               assertModifiable();
                overrideSort(c);
        }
 
@@ -163,7 +186,7 @@ public class ControlledArrayList<E> extends ArrayList<E> {
 
        @Override
        public boolean add(E element) {
-               checkModifiable();
+               assertModifiable();
                return overrideAdd(element);
        }
 
@@ -179,7 +202,7 @@ public class ControlledArrayList<E> extends ArrayList<E> {
 
        @Override
        public boolean remove(Object o) {
-               checkModifiable();
+               assertModifiable();
                return overrideRemove(o);
        }
 
@@ -195,7 +218,7 @@ public class ControlledArrayList<E> extends ArrayList<E> {
 
        @Override
        public boolean addAll(Collection<? extends E> c) {
-               checkModifiable();
+               assertModifiable();
                return overrideAddAll(c);
        }
 
@@ -211,7 +234,7 @@ public class ControlledArrayList<E> extends ArrayList<E> {
 
        @Override
        public boolean removeAll(Collection<?> coll) {
-               checkModifiable();
+               assertModifiable();
                return overrideRemoveAll(coll);
        }
 
@@ -227,7 +250,7 @@ public class ControlledArrayList<E> extends ArrayList<E> {
 
        @Override
        public boolean retainAll(Collection<?> c) {
-               checkModifiable();
+               assertModifiable();
                return overrideRetainAll(c);
        }
 
@@ -243,7 +266,7 @@ public class ControlledArrayList<E> extends ArrayList<E> {
 
        @Override
        public void clear() {
-               checkModifiable();
+               assertModifiable();
                overrideClear();
        }
 
@@ -256,7 +279,7 @@ public class ControlledArrayList<E> extends ArrayList<E> {
 
        @Override
        public boolean removeIf(Predicate<? super E> filter) {
-               checkModifiable();
+               assertModifiable();
                return overrideRemoveIf(filter);
        }
 
@@ -272,7 +295,7 @@ public class ControlledArrayList<E> extends ArrayList<E> {
 
        @Override
        public List<E> subList(int fromIndex, int toIndex) {
-               return new ControlledArrayList<>(modifiable, 
super.subList(fromIndex, toIndex));
+               return new ControlledArrayList<>(unmodifiable, 
super.subList(fromIndex, toIndex));
        }
 
        @Override
@@ -282,7 +305,7 @@ public class ControlledArrayList<E> extends ArrayList<E> {
 
        @Override
        public ListIterator<E> listIterator(final int index) {
-               if (modifiable)
+               if (! unmodifiable)
                        return overrideListIterator(index);
 
                return new ListIterator<E>() {
@@ -352,7 +375,7 @@ public class ControlledArrayList<E> extends ArrayList<E> {
 
        @Override
        public Iterator<E> iterator() {
-               if (modifiable)
+               if (! unmodifiable)
                        return overrideIterator();
 
                return new Iterator<E>() {
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 e6977d1cc..2f6ec6a66 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
@@ -68,6 +68,7 @@ public class BasicStatusLine implements StatusLine {
        private String reasonPhrase;
        private ReasonPhraseCatalog reasonPhraseCatalog;
        private Locale locale = Locale.getDefault();
+       private boolean unmodifiable;
 
        /**
         * Constructor.
@@ -100,6 +101,27 @@ public class BasicStatusLine implements StatusLine {
        // Properties
        
//-----------------------------------------------------------------------------------------------------------------
 
+       /**
+        * Specifies whether this bean should be unmodifiable.
+        * <p>
+        * When enabled, attempting to set any properties on this bean will 
cause an {@link UnsupportedOperationException}.
+        *
+        * @return This object.
+        */
+       @FluentSetter
+       public BasicStatusLine setUnmodifiable() {
+               unmodifiable = true;
+               return this;
+       }
+
+       /**
+        * Throws an {@link UnsupportedOperationException} if the unmodifiable 
flag is set on this bean.
+        */
+       protected final void assertModifiable() {
+               if (unmodifiable)
+                       throw new UnsupportedOperationException("Bean is 
read-only");
+       }
+
        @Override /* StatusLine */
        public ProtocolVersion getProtocolVersion() {
                return protocolVersion;
@@ -116,6 +138,7 @@ public class BasicStatusLine implements StatusLine {
         */
        @FluentSetter
        public BasicStatusLine setProtocolVersion(ProtocolVersion value) {
+               assertModifiable();
                this.protocolVersion = value;
                return this;
        }
@@ -136,6 +159,7 @@ public class BasicStatusLine implements StatusLine {
         */
        @FluentSetter
        public BasicStatusLine setStatusCode(int value) {
+               assertModifiable();
                this.statusCode = value;
                return this;
        }
@@ -161,6 +185,7 @@ public class BasicStatusLine implements StatusLine {
         */
        @FluentSetter
        public BasicStatusLine setReasonPhrase(String value) {
+               assertModifiable();
                this.reasonPhrase = value;
                return this;
        }
@@ -176,6 +201,7 @@ public class BasicStatusLine implements StatusLine {
         */
        @FluentSetter
        public BasicStatusLine setReasonPhraseCatalog(ReasonPhraseCatalog 
value) {
+               assertModifiable();
                this.reasonPhraseCatalog = value;
                return this;
        }
@@ -200,6 +226,7 @@ public class BasicStatusLine implements StatusLine {
         */
        @FluentSetter
        public BasicStatusLine setLocale(Locale value) {
+               assertModifiable();
                this.locale = value;
                return this;
        }
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/header/HeaderList.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/header/HeaderList.java
index b8e4fb2ce..1bd5242cb 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/header/HeaderList.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/header/HeaderList.java
@@ -23,6 +23,7 @@ import java.util.stream.*;
 
 import org.apache.http.*;
 import org.apache.http.util.*;
+import org.apache.juneau.collections.*;
 import org.apache.juneau.http.HttpHeaders;
 import org.apache.juneau.internal.*;
 import org.apache.juneau.svl.*;
@@ -58,7 +59,7 @@ import org.apache.juneau.svl.*;
  * </ul>
  */
 @FluentSetters
-public class HeaderList extends ArrayList<Header> {
+public class HeaderList extends ControlledArrayList<Header> {
 
        private static final long serialVersionUID = 1L;
 
@@ -135,12 +136,13 @@ public class HeaderList extends ArrayList<Header> {
        
//-----------------------------------------------------------------------------------------------------------------
 
        private VarResolver varResolver;
-       boolean caseSensitive = false;
+       boolean caseSensitive;
 
        /**
         * Constructor.
         */
        public HeaderList() {
+               super(false);
        }
 
        /**
@@ -149,7 +151,7 @@ public class HeaderList extends ArrayList<Header> {
         * @param copyFrom The bean to copy.
         */
        protected HeaderList(HeaderList copyFrom) {
-               super(copyFrom);
+               super(false, copyFrom);
                caseSensitive = copyFrom.caseSensitive;
        }
 
@@ -260,6 +262,7 @@ public class HeaderList extends ArrayList<Header> {
         * @return This object.
         */
        public HeaderList resolving(VarResolver varResolver) {
+               assertModifiable();
                this.varResolver = varResolver;
                return this;
        }
@@ -274,6 +277,7 @@ public class HeaderList extends ArrayList<Header> {
         * @return This object.
         */
        public HeaderList caseSensitive(boolean value) {
+               assertModifiable();
                caseSensitive = value;
                return this;
        }
@@ -953,5 +957,11 @@ public class HeaderList extends ArrayList<Header> {
 
        // <FluentSetters>
 
+       @Override /* GENERATED - 
org.apache.juneau.collections.ControlledArrayList */
+       public HeaderList setUnmodifiable() {
+               super.setUnmodifiable();
+               return this;
+       }
+
        // </FluentSetters>
 }
\ No newline at end of file
diff --git 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/part/PartList.java
 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/part/PartList.java
index 554bca49e..f592b5a71 100644
--- 
a/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/part/PartList.java
+++ 
b/juneau-rest/juneau-rest-common/src/main/java/org/apache/juneau/http/part/PartList.java
@@ -23,6 +23,7 @@ import java.util.stream.*;
 
 import org.apache.http.*;
 import org.apache.http.util.*;
+import org.apache.juneau.collections.*;
 import org.apache.juneau.http.annotation.*;
 import org.apache.juneau.internal.*;
 import org.apache.juneau.svl.*;
@@ -44,7 +45,7 @@ import org.apache.juneau.svl.*;
  * </ul>
  */
 @FluentSetters
-public class PartList extends ArrayList<NameValuePair> {
+public class PartList extends ControlledArrayList<NameValuePair> {
 
        private static final long serialVersionUID = 1L;
 
@@ -121,12 +122,13 @@ public class PartList extends ArrayList<NameValuePair> {
        
//-----------------------------------------------------------------------------------------------------------------
 
        private VarResolver varResolver;
-       boolean caseInsensitive = false;
+       boolean caseInsensitive;
 
        /**
         * Constructor.
         */
        public PartList() {
+               super(false);
        }
 
        /**
@@ -135,7 +137,7 @@ public class PartList extends ArrayList<NameValuePair> {
         * @param copyFrom The bean to copy.
         */
        protected PartList(PartList copyFrom) {
-               super(copyFrom);
+               super(false, copyFrom);
                caseInsensitive = copyFrom.caseInsensitive;
        }
 
@@ -246,6 +248,7 @@ public class PartList extends ArrayList<NameValuePair> {
         * @return This object.
         */
        public PartList resolving(VarResolver varResolver) {
+               assertModifiable();
                this.varResolver = varResolver;
                return this;
        }
@@ -260,6 +263,7 @@ public class PartList extends ArrayList<NameValuePair> {
         * @return This object.
         */
        public PartList caseInsensitive(boolean value) {
+               assertModifiable();
                caseInsensitive = value;
                return this;
        }
@@ -934,5 +938,11 @@ public class PartList extends ArrayList<NameValuePair> {
 
        // <FluentSetters>
 
+       @Override /* GENERATED - 
org.apache.juneau.collections.ControlledArrayList */
+       public PartList setUnmodifiable() {
+               super.setUnmodifiable();
+               return this;
+       }
+
        // </FluentSetters>
 }
\ No newline at end of file
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 50f4375a6..cc3bee7da 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.BadRequest.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -157,12 +159,24 @@ public class BadRequest extends BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public BadRequest setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public BadRequest setProtocolVersion(ProtocolVersion value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public BadRequest setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public BadRequest setReasonPhraseCatalog(ReasonPhraseCatalog value) {
                super.setReasonPhraseCatalog(value);
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 5135e2bb1..758b168a0 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
@@ -53,7 +53,7 @@ import org.apache.juneau.internal.*;
  * @serial exclude
  */
 @BeanIgnore /* Use toString() to serialize */
-@FluentSetters
+@FluentSetters(ignore="setUnmodifiable")
 public class BasicHttpException extends BasicRuntimeException implements 
HttpResponse {
 
        private static final long serialVersionUID = 1L;
@@ -144,6 +144,29 @@ public class BasicHttpException extends 
BasicRuntimeException implements HttpRes
                setStatusLine(copyFrom.statusLine.copy());
        }
 
+       
//-----------------------------------------------------------------------------------------------------------------
+       // Properties
+       
//-----------------------------------------------------------------------------------------------------------------
+
+       /**
+        * Specifies whether this bean should be unmodifiable.
+        * <p>
+        * When enabled, attempting to set any properties on this bean will 
cause an {@link UnsupportedOperationException}.
+        *
+        * @return This object.
+        */
+       @Override
+       @FluentSetter
+       public BasicHttpException setUnmodifiable() {
+               super.setUnmodifiable();
+               statusLine.setUnmodifiable();
+               return this;
+       }
+
+       
//-----------------------------------------------------------------------------------------------------------------
+       // BasicStatusLine setters.
+       
//-----------------------------------------------------------------------------------------------------------------
+
        /**
         * Sets the protocol version on the status line.
         *
@@ -155,12 +178,13 @@ public class BasicHttpException extends 
BasicRuntimeException implements HttpRes
         */
        @FluentSetter
        public BasicHttpException setStatusLine(BasicStatusLine value) {
-               statusLine = value;
+               assertModifiable();
+               statusLine = value.copy();
                return this;
        }
 
        /**
-        * Same as {@link #setStatusCode2(int)} but returns this object.
+        * Same as {@link #setStatusCode(int)} but returns this object.
         *
         * @param code The new status code.
         * @return This object.
@@ -187,6 +211,22 @@ public class BasicHttpException extends 
BasicRuntimeException implements HttpRes
                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 BasicHttpException setReasonPhrase2(String value) {
+               statusLine.setReasonPhrase(value);
+               return this;
+       }
+
        /**
         * Sets the reason phrase catalog used to retrieve reason phrases.
         *
@@ -202,6 +242,21 @@ public class BasicHttpException extends 
BasicRuntimeException implements HttpRes
                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 BasicHttpException setLocale2(Locale value) {
+               statusLine.setLocale(value);
+               return this;
+       }
+
        
//-----------------------------------------------------------------------------------------------------------------
        // BasicHeaderGroup setters.
        
//-----------------------------------------------------------------------------------------------------------------
@@ -212,6 +267,7 @@ public class BasicHttpException extends 
BasicRuntimeException implements HttpRes
         * @return The underlying builder for the headers.
         */
        public HeaderList getHeaders() {
+               assertModifiable();
                return headers;
        }
 
@@ -223,7 +279,8 @@ public class BasicHttpException extends 
BasicRuntimeException implements HttpRes
         */
        @FluentSetter
        public BasicHttpException setHeaders(HeaderList value) {
-               headers = value;
+               assertModifiable();
+               headers = value.copy();
                return this;
        }
 
@@ -285,10 +342,24 @@ public class BasicHttpException extends 
BasicRuntimeException implements HttpRes
         * @return This object.
         */
        public BasicHttpException setContent(HttpEntity value) {
+               assertModifiable();
                this.content = value;
                return this;
        }
 
+       /**
+        * Asserts that the specified HTTP response has the same status code as 
the one on the status line of this bean.
+        *
+        * @param response The HTTP response to check.  Must not be 
<jk>null</jk>.
+        * @throws AssertionError If status code is not what was expected.
+        */
+       protected void assertStatusCode(HttpResponse response) throws 
AssertionError {
+               assertArgNotNull("response", response);
+               int expected = getStatusLine().getStatusCode();
+               int actual = response.getStatusLine().getStatusCode();
+               assertInteger(actual).setMsg("Unexpected status code.  
Expected:[{0}], Actual:[{1}]", expected, actual).is(expected);
+       }
+
        /**
         * Returns the root cause of this exception.
         *
@@ -311,19 +382,6 @@ public class BasicHttpException extends 
BasicRuntimeException implements HttpRes
                return null;
        }
 
-       /**
-        * Asserts that the specified HTTP response has the same status code as 
the one on the status line of this bean.
-        *
-        * @param response The HTTP response to check.  Must not be 
<jk>null</jk>.
-        * @throws AssertionError If status code is not what was expected.
-        */
-       protected void assertStatusCode(HttpResponse response) throws 
AssertionError {
-               assertArgNotNull("response", response);
-               int expected = getStatusLine().getStatusCode();
-               int actual = response.getStatusLine().getStatusCode();
-               assertInteger(actual).setMsg("Unexpected status code.  
Expected:[{0}], Actual:[{1}]", expected, actual).is(expected);
-       }
-
        /**
         * Returns all error messages from all errors in this stack.
         *
@@ -533,11 +591,5 @@ public class BasicHttpException extends 
BasicRuntimeException implements HttpRes
                return this;
        }
 
-       @Override /* GENERATED - org.apache.juneau.BasicRuntimeException */
-       public BasicHttpException setUnmodifiable() {
-               super.setUnmodifiable();
-               return this;
-       }
-
        // </FluentSetters>
 }
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 37d9a30b6..d729aa4ab 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
@@ -93,8 +93,14 @@ public class BasicHttpResponse implements HttpResponse {
                setStatusLine(response.getStatusLine());
        }
 
+       
//-----------------------------------------------------------------------------------------------------------------
+       // Properties
+       
//-----------------------------------------------------------------------------------------------------------------
+
        /**
-        * Specifies whether this exception should be unmodifiable after 
creation.
+        * Specifies whether this bean should be unmodifiable.
+        * <p>
+        * When enabled, attempting to set any properties on this bean will 
cause an {@link UnsupportedOperationException}.
         *
         * @return This object.
         */
@@ -104,6 +110,23 @@ public class BasicHttpResponse implements HttpResponse {
                return this;
        }
 
+       /**
+        * Returns <jk>true</jk> if this bean is unmodifiable.
+        *
+        * @return <jk>true</jk> if this bean is unmodifiable.
+        */
+       public boolean isUnmodifiable() {
+               return unmodifiable;
+       }
+
+       /**
+        * Throws an {@link UnsupportedOperationException} if the unmodifiable 
flag is set on this bean.
+        */
+       protected final void assertModifiable() {
+               if (unmodifiable)
+                       throw new UnsupportedOperationException("Bean is 
read-only");
+       }
+
        
//-----------------------------------------------------------------------------------------------------------------
        // BasicStatusLine setters.
        
//-----------------------------------------------------------------------------------------------------------------
@@ -119,37 +142,38 @@ public class BasicHttpResponse implements HttpResponse {
         */
        @FluentSetter
        public BasicHttpResponse setStatusLine(BasicStatusLine value) {
-               statusLine = value;
+               assertModifiable();
+               statusLine = value.copy();
                return this;
        }
 
        /**
-        * Sets the protocol version on the status line.
+        * Sets the status code on the status line.
         *
         * <p>
-        * If not specified, <js>"HTTP/1.1"</js> will be used.
+        * If not specified, <c>0</c> will be used.
         *
         * @param value The new value.
         * @return This object.
         */
        @FluentSetter
-       public BasicHttpResponse setProtocolVersion(ProtocolVersion value) {
-               statusLine.setProtocolVersion(value);
+       public BasicHttpResponse setStatusCode2(int value) {
+               statusLine.setStatusCode(value);
                return this;
        }
 
        /**
-        * Sets the status code on the status line.
+        * Sets the protocol version on the status line.
         *
         * <p>
-        * If not specified, <c>0</c> will be used.
+        * If not specified, <js>"HTTP/1.1"</js> will be used.
         *
         * @param value The new value.
         * @return This object.
         */
        @FluentSetter
-       public BasicHttpResponse setStatusCode2(int value) {
-               statusLine.setStatusCode(value);
+       public BasicHttpResponse setProtocolVersion(ProtocolVersion value) {
+               statusLine.setProtocolVersion(value);
                return this;
        }
 
@@ -220,7 +244,8 @@ public class BasicHttpResponse implements HttpResponse {
         */
        @FluentSetter
        public BasicHttpResponse setHeaders(HeaderList value) {
-               headers = value;
+               assertModifiable();
+               headers = value.copy();
                return this;
        }
 
@@ -320,6 +345,7 @@ public class BasicHttpResponse implements HttpResponse {
         */
        @FluentSetter
        public BasicHttpResponse setContent(HttpEntity value) {
+               assertModifiable();
                this.content = value;
                return this;
        }
@@ -488,12 +514,4 @@ public class BasicHttpResponse implements HttpResponse {
        // <FluentSetters>
 
        // </FluentSetters>
-
-       /**
-        * Throws an {@link UnsupportedOperationException} if the unmodifiable 
flag is set on this bean.
-        */
-       protected final void assertModifiable() {
-               if (unmodifiable)
-                       throw new UnsupportedOperationException("Bean is 
read-only");
-       }
 }
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 306e4f960..59cb2ee87 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.Conflict.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -157,12 +159,24 @@ public class Conflict extends BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public Conflict setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public Conflict setProtocolVersion(ProtocolVersion value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public Conflict setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public Conflict setReasonPhraseCatalog(ReasonPhraseCatalog value) {
                super.setReasonPhraseCatalog(value);
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 3a0eb38ff..3071f96ab 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.ExpectationFailed.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -157,12 +159,24 @@ public class ExpectationFailed extends BasicHttpException 
{
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public ExpectationFailed setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public ExpectationFailed setProtocolVersion(ProtocolVersion value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public ExpectationFailed setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public ExpectationFailed setReasonPhraseCatalog(ReasonPhraseCatalog 
value) {
                super.setReasonPhraseCatalog(value);
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 869be14e0..f2c7c1784 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.FailedDependency.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -157,12 +159,24 @@ public class FailedDependency extends BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public FailedDependency setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public FailedDependency setProtocolVersion(ProtocolVersion value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public FailedDependency setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public FailedDependency setReasonPhraseCatalog(ReasonPhraseCatalog 
value) {
                super.setReasonPhraseCatalog(value);
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 1f2ccd077..c5d13ec64 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.Forbidden.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -158,12 +160,24 @@ public class Forbidden extends BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public Forbidden setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public Forbidden setProtocolVersion(ProtocolVersion value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public Forbidden setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public Forbidden setReasonPhraseCatalog(ReasonPhraseCatalog value) {
                super.setReasonPhraseCatalog(value);
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 acf722594..7382e7be6 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.Gone.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -161,12 +163,24 @@ public class Gone extends BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public Gone setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public Gone setProtocolVersion(ProtocolVersion value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public Gone setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public Gone setReasonPhraseCatalog(ReasonPhraseCatalog value) {
                super.setReasonPhraseCatalog(value);
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 dc083ebe8..4c1ec9a22 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.HttpVersionNotSupported.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -157,12 +159,24 @@ public class HttpVersionNotSupported extends 
BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public HttpVersionNotSupported setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public HttpVersionNotSupported setProtocolVersion(ProtocolVersion 
value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public HttpVersionNotSupported setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public HttpVersionNotSupported 
setReasonPhraseCatalog(ReasonPhraseCatalog value) {
                super.setReasonPhraseCatalog(value);
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 66fe92428..7e323e9b9 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.InsufficientStorage.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -157,12 +159,24 @@ public class InsufficientStorage extends 
BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public InsufficientStorage setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public InsufficientStorage setProtocolVersion(ProtocolVersion value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public InsufficientStorage setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public InsufficientStorage setReasonPhraseCatalog(ReasonPhraseCatalog 
value) {
                super.setReasonPhraseCatalog(value);
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 7d4dc5575..a0209dfc4 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.InternalServerError.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -157,12 +159,24 @@ public class InternalServerError extends 
BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public InternalServerError setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public InternalServerError setProtocolVersion(ProtocolVersion value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public InternalServerError setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public InternalServerError setReasonPhraseCatalog(ReasonPhraseCatalog 
value) {
                super.setReasonPhraseCatalog(value);
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 76e8a5347..6818ca6c9 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.LengthRequired.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -157,12 +159,24 @@ public class LengthRequired extends BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public LengthRequired setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public LengthRequired setProtocolVersion(ProtocolVersion value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public LengthRequired setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public LengthRequired setReasonPhraseCatalog(ReasonPhraseCatalog value) 
{
                super.setReasonPhraseCatalog(value);
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 889de334f..a26868f08 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.Locked.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -157,12 +159,24 @@ public class Locked extends BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public Locked setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public Locked setProtocolVersion(ProtocolVersion value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public Locked setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public Locked setReasonPhraseCatalog(ReasonPhraseCatalog value) {
                super.setReasonPhraseCatalog(value);
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 c19d36b80..c267923a7 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.LoopDetected.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -157,12 +159,24 @@ public class LoopDetected extends BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public LoopDetected setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public LoopDetected setProtocolVersion(ProtocolVersion value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public LoopDetected setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public LoopDetected setReasonPhraseCatalog(ReasonPhraseCatalog value) {
                super.setReasonPhraseCatalog(value);
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 1d4eeadc3..c7cb801ff 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.MethodNotAllowed.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -157,12 +159,24 @@ public class MethodNotAllowed extends BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public MethodNotAllowed setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public MethodNotAllowed setProtocolVersion(ProtocolVersion value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public MethodNotAllowed setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public MethodNotAllowed setReasonPhraseCatalog(ReasonPhraseCatalog 
value) {
                super.setReasonPhraseCatalog(value);
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 d2264ed82..1e729a90f 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.MisdirectedRequest.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -157,12 +159,24 @@ public class MisdirectedRequest extends 
BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public MisdirectedRequest setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public MisdirectedRequest setProtocolVersion(ProtocolVersion value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public MisdirectedRequest setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public MisdirectedRequest setReasonPhraseCatalog(ReasonPhraseCatalog 
value) {
                super.setReasonPhraseCatalog(value);
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 1ecdb427f..ddb5c7521 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.NetworkAuthenticationRequired.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -158,12 +160,24 @@ public class NetworkAuthenticationRequired extends 
BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public NetworkAuthenticationRequired setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public NetworkAuthenticationRequired setProtocolVersion(ProtocolVersion 
value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public NetworkAuthenticationRequired setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public NetworkAuthenticationRequired 
setReasonPhraseCatalog(ReasonPhraseCatalog value) {
                super.setReasonPhraseCatalog(value);
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 629dd7dff..5ab50d137 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.NotAcceptable.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -157,12 +159,24 @@ public class NotAcceptable extends BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public NotAcceptable setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public NotAcceptable setProtocolVersion(ProtocolVersion value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public NotAcceptable setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public NotAcceptable setReasonPhraseCatalog(ReasonPhraseCatalog value) {
                super.setReasonPhraseCatalog(value);
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 563a20399..c4f318739 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.NotExtended.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -157,12 +159,24 @@ public class NotExtended extends BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public NotExtended setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public NotExtended setProtocolVersion(ProtocolVersion value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public NotExtended setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public NotExtended setReasonPhraseCatalog(ReasonPhraseCatalog value) {
                super.setReasonPhraseCatalog(value);
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 e7cf7fd8d..e3bdaeb21 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.NotFound.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -158,12 +160,24 @@ public class NotFound extends BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public NotFound setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public NotFound setProtocolVersion(ProtocolVersion value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public NotFound setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public NotFound setReasonPhraseCatalog(ReasonPhraseCatalog value) {
                super.setReasonPhraseCatalog(value);
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 afd8b8c8d..2fea6016e 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.NotImplemented.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -158,12 +160,24 @@ public class NotImplemented extends BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public NotImplemented setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public NotImplemented setProtocolVersion(ProtocolVersion value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public NotImplemented setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public NotImplemented setReasonPhraseCatalog(ReasonPhraseCatalog value) 
{
                super.setReasonPhraseCatalog(value);
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 a1ae93b0e..d97f352a6 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.PayloadTooLarge.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -157,12 +159,24 @@ public class PayloadTooLarge extends BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public PayloadTooLarge setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public PayloadTooLarge setProtocolVersion(ProtocolVersion value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public PayloadTooLarge setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public PayloadTooLarge setReasonPhraseCatalog(ReasonPhraseCatalog 
value) {
                super.setReasonPhraseCatalog(value);
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 645fb8131..303b4bc4a 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.PreconditionFailed.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -157,12 +159,24 @@ public class PreconditionFailed extends 
BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public PreconditionFailed setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public PreconditionFailed setProtocolVersion(ProtocolVersion value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public PreconditionFailed setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public PreconditionFailed setReasonPhraseCatalog(ReasonPhraseCatalog 
value) {
                super.setReasonPhraseCatalog(value);
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 69f2a5bf7..f5a4477d5 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.PreconditionRequired.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -158,12 +160,24 @@ public class PreconditionRequired extends 
BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public PreconditionRequired setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public PreconditionRequired setProtocolVersion(ProtocolVersion value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public PreconditionRequired setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public PreconditionRequired setReasonPhraseCatalog(ReasonPhraseCatalog 
value) {
                super.setReasonPhraseCatalog(value);
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 620065def..ca12906ca 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.RangeNotSatisfiable.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -158,12 +160,24 @@ public class RangeNotSatisfiable extends 
BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public RangeNotSatisfiable setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public RangeNotSatisfiable setProtocolVersion(ProtocolVersion value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public RangeNotSatisfiable setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public RangeNotSatisfiable setReasonPhraseCatalog(ReasonPhraseCatalog 
value) {
                super.setReasonPhraseCatalog(value);
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 f6ef4fe08..890adaf9b 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.RequestHeaderFieldsTooLarge.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -157,12 +159,24 @@ public class RequestHeaderFieldsTooLarge extends 
BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public RequestHeaderFieldsTooLarge setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public RequestHeaderFieldsTooLarge setProtocolVersion(ProtocolVersion 
value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public RequestHeaderFieldsTooLarge setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public RequestHeaderFieldsTooLarge 
setReasonPhraseCatalog(ReasonPhraseCatalog value) {
                super.setReasonPhraseCatalog(value);
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 58b3b91a7..ccbea5c48 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.ServiceUnavailable.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -158,12 +160,24 @@ public class ServiceUnavailable extends 
BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public ServiceUnavailable setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public ServiceUnavailable setProtocolVersion(ProtocolVersion value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public ServiceUnavailable setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public ServiceUnavailable setReasonPhraseCatalog(ReasonPhraseCatalog 
value) {
                super.setReasonPhraseCatalog(value);
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 f65bac17a..cf2dfc771 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.TooManyRequests.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -158,12 +160,24 @@ public class TooManyRequests extends BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public TooManyRequests setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public TooManyRequests setProtocolVersion(ProtocolVersion value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public TooManyRequests setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public TooManyRequests setReasonPhraseCatalog(ReasonPhraseCatalog 
value) {
                super.setReasonPhraseCatalog(value);
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 3db712779..1016ee7cc 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.Unauthorized.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -160,12 +162,24 @@ public class Unauthorized extends BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public Unauthorized setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public Unauthorized setProtocolVersion(ProtocolVersion value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public Unauthorized setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public Unauthorized setReasonPhraseCatalog(ReasonPhraseCatalog value) {
                super.setReasonPhraseCatalog(value);
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 c9b62d345..56e5d47c1 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.UnavailableForLegalReasons.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -157,12 +159,24 @@ public class UnavailableForLegalReasons extends 
BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public UnavailableForLegalReasons setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public UnavailableForLegalReasons setProtocolVersion(ProtocolVersion 
value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public UnavailableForLegalReasons setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public UnavailableForLegalReasons 
setReasonPhraseCatalog(ReasonPhraseCatalog value) {
                super.setReasonPhraseCatalog(value);
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 52b0a077d..84e6a0c42 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.UnprocessableEntity.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -157,12 +159,24 @@ public class UnprocessableEntity extends 
BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public UnprocessableEntity setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public UnprocessableEntity setProtocolVersion(ProtocolVersion value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public UnprocessableEntity setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public UnprocessableEntity setReasonPhraseCatalog(ReasonPhraseCatalog 
value) {
                super.setReasonPhraseCatalog(value);
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 951924049..cd74d1154 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.UnsupportedMediaType.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -158,12 +160,24 @@ public class UnsupportedMediaType extends 
BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public UnsupportedMediaType setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public UnsupportedMediaType setProtocolVersion(ProtocolVersion value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public UnsupportedMediaType setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public UnsupportedMediaType setReasonPhraseCatalog(ReasonPhraseCatalog 
value) {
                super.setReasonPhraseCatalog(value);
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 c0bcddf58..bd2d4faff 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.UpgradeRequired.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -157,12 +159,24 @@ public class UpgradeRequired extends BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public UpgradeRequired setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public UpgradeRequired setProtocolVersion(ProtocolVersion value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public UpgradeRequired setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public UpgradeRequired setReasonPhraseCatalog(ReasonPhraseCatalog 
value) {
                super.setReasonPhraseCatalog(value);
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 39fa950bd..f861c830b 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.UriTooLong.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -158,12 +160,24 @@ public class UriTooLong extends BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public UriTooLong setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public UriTooLong setProtocolVersion(ProtocolVersion value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public UriTooLong setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public UriTooLong setReasonPhraseCatalog(ReasonPhraseCatalog value) {
                super.setReasonPhraseCatalog(value);
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 2d7fdf62d..6ec64730a 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
@@ -15,6 +15,8 @@ package org.apache.juneau.http.response;
 import static org.apache.juneau.http.response.VariantAlsoNegotiates.*;
 
 import java.text.*;
+import java.util.*;
+
 import org.apache.http.*;
 import org.apache.http.Header;
 import org.apache.juneau.annotation.*;
@@ -157,12 +159,24 @@ public class VariantAlsoNegotiates extends 
BasicHttpException {
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public VariantAlsoNegotiates setLocale2(Locale value) {
+               super.setLocale2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public VariantAlsoNegotiates setProtocolVersion(ProtocolVersion value) {
                super.setProtocolVersion(value);
                return this;
        }
 
+       @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
+       public VariantAlsoNegotiates setReasonPhrase2(String value) {
+               super.setReasonPhrase2(value);
+               return this;
+       }
+
        @Override /* GENERATED - 
org.apache.juneau.http.response.BasicHttpException */
        public VariantAlsoNegotiates setReasonPhraseCatalog(ReasonPhraseCatalog 
value) {
                super.setReasonPhraseCatalog(value);
diff --git 
a/juneau-utest/src/test/java/org/apache/juneau/collections/ControlledArrayList_Test.java
 
b/juneau-utest/src/test/java/org/apache/juneau/collections/ControlledArrayList_Test.java
index d568f5da0..14a59ef5e 100644
--- 
a/juneau-utest/src/test/java/org/apache/juneau/collections/ControlledArrayList_Test.java
+++ 
b/juneau-utest/src/test/java/org/apache/juneau/collections/ControlledArrayList_Test.java
@@ -31,23 +31,23 @@ public class ControlledArrayList_Test {
        public void a01_constructors() throws Exception {
                ControlledArrayList<Integer> x;
 
-               x = new ControlledArrayList<>(true);
+               x = new ControlledArrayList<>(false);
                assertTrue(x.isModifiable());
 
-               x = new ControlledArrayList<>(false);
+               x = new ControlledArrayList<>(true);
                assertFalse(x.isModifiable());
 
-               x = new ControlledArrayList<>(true, Arrays.asList(1));
+               x = new ControlledArrayList<>(false, Arrays.asList(1));
                assertTrue(x.isModifiable());
 
-               x = new ControlledArrayList<>(false, Arrays.asList(1));
+               x = new ControlledArrayList<>(true, Arrays.asList(1));
                assertFalse(x.isModifiable());
        }
 
        @Test
        public void a02_basicMethods() throws Exception {
-               ControlledArrayList<Integer> x1 = new 
ControlledArrayList<Integer>(true, Arrays.asList(1));
-               ControlledArrayList<Integer> x2 = new 
ControlledArrayList<Integer>(false, Arrays.asList(1));
+               ControlledArrayList<Integer> x1 = new 
ControlledArrayList<Integer>(false, Arrays.asList(1));
+               ControlledArrayList<Integer> x2 = new 
ControlledArrayList<Integer>(true, Arrays.asList(1));
 
                x1.set(0, 2);
                assertThrown(() -> x2.set(0, 
2)).isType(UnsupportedOperationException.class);
@@ -128,8 +128,8 @@ public class ControlledArrayList_Test {
 
        @Test
        public void a03_iterator() throws Exception {
-               ControlledArrayList<Integer> x1 = new 
ControlledArrayList<Integer>(true, Arrays.asList(1));
-               ControlledArrayList<Integer> x2 = new 
ControlledArrayList<Integer>(false, Arrays.asList(1));
+               ControlledArrayList<Integer> x1 = new 
ControlledArrayList<Integer>(false, Arrays.asList(1));
+               ControlledArrayList<Integer> x2 = new 
ControlledArrayList<Integer>(true, Arrays.asList(1));
 
                Iterator<Integer> i1 = x1.iterator();
                Iterator<Integer> i2 = x2.iterator();
@@ -149,8 +149,8 @@ public class ControlledArrayList_Test {
 
        @Test
        public void a04_listIterator() throws Exception {
-               ControlledArrayList<Integer> x1 = new 
ControlledArrayList<Integer>(true, Arrays.asList(1));
-               ControlledArrayList<Integer> x2 = new 
ControlledArrayList<Integer>(false, Arrays.asList(1));
+               ControlledArrayList<Integer> x1 = new 
ControlledArrayList<Integer>(false, Arrays.asList(1));
+               ControlledArrayList<Integer> x2 = new 
ControlledArrayList<Integer>(true, Arrays.asList(1));
 
                ListIterator<Integer> i1a = x1.listIterator();
                ListIterator<Integer> i2a = x2.listIterator();

Reply via email to