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 c0fc5d4ce6 juneau-marshall improvements
c0fc5d4ce6 is described below

commit c0fc5d4ce6aa7da5fd5ab05ce5ce5c9c0f99dfe3
Author: James Bognar <[email protected]>
AuthorDate: Wed Dec 17 13:36:05 2025 -0500

    juneau-marshall improvements
---
 .../main/java/org/apache/juneau/config/Config.java |  76 +++++++-------
 .../org/apache/juneau/config/store/FileStore.java  |  18 ++--
 .../java/org/apache/juneau/jena/RdfParser.java     |  26 ++---
 .../org/apache/juneau/jena/RdfParserSession.java   |   4 +-
 .../java/org/apache/juneau/jena/RdfSerializer.java |  16 +--
 .../apache/juneau/jena/RdfSerializerSession.java   |   2 +-
 .../main/java/org/apache/juneau/BeanContext.java   | 109 ++++++++++-----------
 .../main/java/org/apache/juneau/BeanSession.java   |   4 +-
 .../org/apache/juneau/BeanTraverseContext.java     |   6 +-
 .../src/main/java/org/apache/juneau/Context.java   |   8 +-
 .../java/org/apache/juneau/ContextSession.java     |   2 +-
 .../org/apache/juneau/html/HtmlDocSerializer.java  |  28 +++---
 .../org/apache/juneau/html/HtmlSerializer.java     |   4 +-
 .../org/apache/juneau/json/JsonSerializer.java     |   2 +-
 .../juneau/jsonschema/JsonSchemaGenerator.java     |  12 +--
 .../main/java/org/apache/juneau/parser/Parser.java |   8 +-
 .../org/apache/juneau/parser/ReaderParser.java     |   2 +-
 .../org/apache/juneau/serializer/Serializer.java   |  12 +--
 .../juneau/serializer/SerializerSession.java       |   6 +-
 .../apache/juneau/serializer/WriterSerializer.java |   2 +-
 .../juneau/serializer/WriterSerializerSession.java |   4 +-
 .../java/org/apache/juneau/uon/UonSerializer.java  |   2 +-
 .../main/java/org/apache/juneau/xml/XmlParser.java |   4 +-
 .../java/org/apache/juneau/xml/XmlSerializer.java  |  10 +-
 .../apache/juneau/xml/XmlSerializerSession.java    |   2 +-
 .../org/apache/juneau/rest/client/RestClient.java  |  38 +++----
 .../org/apache/juneau/rest/client/RestRequest.java |   8 +-
 .../java/org/apache/juneau/rest/RestContext.java   |  14 +--
 .../java/org/apache/juneau/rest/RestOpContext.java |  16 +--
 .../java/org/apache/juneau/rest/RestSession.java   |   4 +-
 30 files changed, 224 insertions(+), 225 deletions(-)

diff --git 
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Config.java 
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Config.java
index 78cfa9bfdb..1befb979d9 100644
--- 
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Config.java
+++ 
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/Config.java
@@ -76,17 +76,17 @@ public class Config extends Context implements 
ConfigEventListener {
                 * Constructor, default settings.
                 */
                protected Builder() {
-                       name = env("Config.name", "Configuration.cfg");
-                       store = FileStore.DEFAULT;
-                       serializer = Json5Serializer.DEFAULT;
-                       parser = JsonParser.DEFAULT;
+                       binaryFormat = env("Config.binaryFormat", 
BinaryFormat.BASE64);
+                       binaryLineLength = env("Config.binaryLineLength", -1);
                        mods = map();
                        mods(XorEncodeMod.INSTANCE);
-                       varResolver = VarResolver.DEFAULT;
-                       binaryLineLength = env("Config.binaryLineLength", -1);
-                       binaryFormat = env("Config.binaryFormat", 
BinaryFormat.BASE64);
                        multiLineValuesOnSeparateLines = 
env("Config.multiLineValuesOnSeparateLines", false);
+                       name = env("Config.name", "Configuration.cfg");
+                       parser = JsonParser.DEFAULT;
                        readOnly = env("Config.readOnly", false);
+                       serializer = Json5Serializer.DEFAULT;
+                       store = FileStore.DEFAULT;
+                       varResolver = VarResolver.DEFAULT;
                }
 
                /**
@@ -96,16 +96,16 @@ public class Config extends Context implements 
ConfigEventListener {
                 */
                protected Builder(Builder copyFrom) {
                        super(copyFrom);
-                       name = copyFrom.name;
-                       store = copyFrom.store;
-                       serializer = copyFrom.serializer;
-                       parser = copyFrom.parser;
-                       mods = copyOf(copyFrom.mods);
-                       varResolver = copyFrom.varResolver;
-                       binaryLineLength = copyFrom.binaryLineLength;
                        binaryFormat = copyFrom.binaryFormat;
+                       binaryLineLength = copyFrom.binaryLineLength;
+                       mods = copyOf(copyFrom.mods);
                        multiLineValuesOnSeparateLines = 
copyFrom.multiLineValuesOnSeparateLines;
+                       name = copyFrom.name;
+                       parser = copyFrom.parser;
                        readOnly = copyFrom.readOnly;
+                       serializer = copyFrom.serializer;
+                       store = copyFrom.store;
+                       varResolver = copyFrom.varResolver;
                }
 
                /**
@@ -115,16 +115,16 @@ public class Config extends Context implements 
ConfigEventListener {
                 */
                protected Builder(Config copyFrom) {
                        super(copyFrom);
-                       name = copyFrom.name;
-                       store = copyFrom.store;
-                       serializer = copyFrom.serializer;
-                       parser = copyFrom.parser;
-                       mods = copyOf(copyFrom.mods);
-                       varResolver = copyFrom.varResolver;
-                       binaryLineLength = copyFrom.binaryLineLength;
                        binaryFormat = copyFrom.binaryFormat;
+                       binaryLineLength = copyFrom.binaryLineLength;
+                       mods = copyOf(copyFrom.mods);
                        multiLineValuesOnSeparateLines = 
copyFrom.multiLineValuesOnSeparateLines;
+                       name = copyFrom.name;
+                       parser = copyFrom.parser;
                        readOnly = copyFrom.readOnly;
+                       serializer = copyFrom.serializer;
+                       store = copyFrom.store;
+                       varResolver = copyFrom.varResolver;
                }
 
                @Override /* Overridden from Builder */
@@ -586,38 +586,38 @@ public class Config extends Context implements 
ConfigEventListener {
        public Config(Builder builder) throws IOException {
                super(builder);
 
+               binaryFormat = builder.binaryFormat;
+               binaryLineLength = builder.binaryLineLength;
+               mods = u(copyOf(builder.mods));
+               multiLineValuesOnSeparateLines = 
builder.multiLineValuesOnSeparateLines;
                name = builder.name;
+               parser = builder.parser;
+               readOnly = builder.readOnly;
+               serializer = builder.serializer;
                store = builder.store;
+               varResolver = builder.varResolver;
                configMap = store.getMap(name);
                configMap.register(this);
-               serializer = builder.serializer;
-               parser = builder.parser;
                beanSession = parser.getBeanContext().getSession();
-               mods = u(copyOf(builder.mods));
-               varResolver = builder.varResolver;
                varSession = 
varResolver.copy().vars(ConfigVar.class).bean(Config.class, 
this).build().createSession();
-               binaryLineLength = builder.binaryLineLength;
-               binaryFormat = builder.binaryFormat;
-               multiLineValuesOnSeparateLines = 
builder.multiLineValuesOnSeparateLines;
-               readOnly = builder.readOnly;
        }
 
        Config(Config copyFrom, VarResolverSession varSession) {
                super(copyFrom);
-               name = copyFrom.name;
-               store = copyFrom.store;
+               beanSession = copyFrom.beanSession;
+               binaryFormat = copyFrom.binaryFormat;
+               binaryLineLength = copyFrom.binaryLineLength;
                configMap = copyFrom.configMap;
                configMap.register(this);
-               serializer = copyFrom.serializer;
-               parser = copyFrom.parser;
                mods = copyFrom.mods;
-               varResolver = copyFrom.varResolver;
-               this.varSession = varSession;
-               binaryLineLength = copyFrom.binaryLineLength;
-               binaryFormat = copyFrom.binaryFormat;
                multiLineValuesOnSeparateLines = 
copyFrom.multiLineValuesOnSeparateLines;
+               name = copyFrom.name;
+               parser = copyFrom.parser;
                readOnly = copyFrom.readOnly;
-               beanSession = copyFrom.beanSession;
+               serializer = copyFrom.serializer;
+               store = copyFrom.store;
+               this.varSession = varSession;
+               varResolver = copyFrom.varResolver;
        }
 
        /**
diff --git 
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/FileStore.java
 
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/FileStore.java
index 4fb1ec0729..cc40fe26d4 100644
--- 
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/FileStore.java
+++ 
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/FileStore.java
@@ -66,12 +66,12 @@ public class FileStore extends ConfigStore {
                 * Constructor, default settings.
                 */
                protected Builder() {
-                       directory = env("ConfigFileStore.directory", ".");
                        charset = env("ConfigFileStore.charset").map(x -> 
Charset.forName(x)).orElse(Charset.defaultCharset());
+                       directory = env("ConfigFileStore.directory", ".");
                        enableWatcher = env("ConfigFileStore.enableWatcher", 
false);
-                       watcherSensitivity = 
env("ConfigFileStore.watcherSensitivity", WatcherSensitivity.MEDIUM);
-                       updateOnWrite = env("ConfigFileStore.updateOnWrite", 
false);
                        extensions = env("ConfigFileStore.extensions", "cfg");
+                       updateOnWrite = env("ConfigFileStore.updateOnWrite", 
false);
+                       watcherSensitivity = 
env("ConfigFileStore.watcherSensitivity", WatcherSensitivity.MEDIUM);
                }
 
                /**
@@ -82,12 +82,12 @@ public class FileStore extends ConfigStore {
                 */
                protected Builder(Builder copyFrom) {
                        super(assertArgNotNull("copyFrom", copyFrom));
-                       directory = copyFrom.directory;
                        charset = copyFrom.charset;
+                       directory = copyFrom.directory;
                        enableWatcher = copyFrom.enableWatcher;
-                       watcherSensitivity = copyFrom.watcherSensitivity;
-                       updateOnWrite = copyFrom.updateOnWrite;
                        extensions = copyFrom.extensions;
+                       updateOnWrite = copyFrom.updateOnWrite;
+                       watcherSensitivity = copyFrom.watcherSensitivity;
                }
 
                /**
@@ -99,12 +99,12 @@ public class FileStore extends ConfigStore {
                protected Builder(FileStore copyFrom) {
                        super(assertArgNotNull("copyFrom", copyFrom));
                        type(copyFrom.getClass());
-                       directory = copyFrom.directory;
                        charset = copyFrom.charset;
+                       directory = copyFrom.directory;
                        enableWatcher = copyFrom.enableWatcher;
-                       watcherSensitivity = copyFrom.watcherSensitivity;
-                       updateOnWrite = copyFrom.updateOnWrite;
                        extensions = copyFrom.extensions;
+                       updateOnWrite = copyFrom.updateOnWrite;
+                       watcherSensitivity = copyFrom.watcherSensitivity;
                }
 
                @Override /* Overridden from Builder */
diff --git 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
index d2ece43549..06f6355268 100644
--- 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
+++ 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
@@ -102,12 +102,12 @@ public class RdfParser extends ReaderParser implements 
RdfMetaProvider {
                 */
                protected Builder(Builder copyFrom) {
                        super(assertArgNotNull("copyFrom", copyFrom));
-                       trimWhitespace = copyFrom.trimWhitespace;
-                       looseCollections = copyFrom.looseCollections;
-                       language = copyFrom.language;
                        collectionFormat = copyFrom.collectionFormat;
-                       juneauNs = copyFrom.juneauNs;
                        juneauBpNs = copyFrom.juneauBpNs;
+                       juneauNs = copyFrom.juneauNs;
+                       language = copyFrom.language;
+                       looseCollections = copyFrom.looseCollections;
+                       trimWhitespace = copyFrom.trimWhitespace;
                        jenaSettings = new TreeMap<>(copyFrom.jenaSettings);
                }
 
@@ -119,12 +119,12 @@ public class RdfParser extends ReaderParser implements 
RdfMetaProvider {
                 */
                protected Builder(RdfParser copyFrom) {
                        super(assertArgNotNull("copyFrom", copyFrom));
-                       trimWhitespace = copyFrom.trimWhitespace;
-                       looseCollections = copyFrom.looseCollections;
-                       language = copyFrom.language;
                        collectionFormat = copyFrom.collectionFormat;
-                       juneauNs = copyFrom.juneauNs;
                        juneauBpNs = copyFrom.juneauBpNs;
+                       juneauNs = copyFrom.juneauNs;
+                       language = copyFrom.language;
+                       looseCollections = copyFrom.looseCollections;
+                       trimWhitespace = copyFrom.trimWhitespace;
                        jenaSettings = new TreeMap<>(copyFrom.jenaSettings);
                }
 
@@ -1460,12 +1460,12 @@ public class RdfParser extends ReaderParser implements 
RdfMetaProvider {
        public RdfParser(Builder builder) {
                super(builder.consumes(getConsumes(builder)));
 
-               trimWhitespace = builder.trimWhitespace;
-               looseCollections = builder.looseCollections;
-               language = builder.language;
-               juneauNs = builder.juneauNs;
-               juneauBpNs = builder.juneauBpNs;
                collectionFormat = builder.collectionFormat;
+               juneauBpNs = builder.juneauBpNs;
+               juneauNs = builder.juneauNs;
+               language = builder.language;
+               looseCollections = builder.looseCollections;
+               trimWhitespace = builder.trimWhitespace;
                jenaSettings = new TreeMap<>(builder.jenaSettings);
        }
 
diff --git 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserSession.java
 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserSession.java
index e158da01ec..7043eacaa1 100644
--- 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserSession.java
+++ 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserSession.java
@@ -206,10 +206,10 @@ public class RdfParserSession extends ReaderParserSession 
{
                model = ModelFactory.createDefaultModel();
                addModelPrefix(ctx.getJuneauNs());
                addModelPrefix(ctx.getJuneauBpNs());
+               pRdfType = 
model.createProperty("http://www.w3.org/1999/02/22-rdf-syntax-ns#type";);
                pRoot = model.createProperty(ctx.getJuneauNs().getUri(), 
RDF_juneauNs_ROOT);
-               pValue = model.createProperty(ctx.getJuneauNs().getUri(), 
RDF_juneauNs_VALUE);
                pType = model.createProperty(ctx.getJuneauBpNs().getUri(), 
RDF_juneauNs_TYPE);
-               pRdfType = 
model.createProperty("http://www.w3.org/1999/02/22-rdf-syntax-ns#type";);
+               pValue = model.createProperty(ctx.getJuneauNs().getUri(), 
RDF_juneauNs_VALUE);
                rdfReader = model.getReader(ctx.getLanguage());
 
                // Note: NTripleReader throws an exception if you try to set 
any properties on it.
diff --git 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
index 44f542f5dd..0f14b76b75 100644
--- 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
+++ 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
@@ -111,13 +111,13 @@ public class RdfSerializer extends WriterSerializer 
implements RdfMetaProvider {
                        addBeanTypesRdf = copyFrom.addBeanTypesRdf;
                        addLiteralTypes = copyFrom.addLiteralTypes;
                        addRootProperty = copyFrom.addRootProperty;
+                       collectionFormat = copyFrom.collectionFormat;
                        disableAutoDetectNamespaces = 
copyFrom.disableAutoDetectNamespaces;
                        disableUseXmlNamespaces = 
copyFrom.disableUseXmlNamespaces;
-                       looseCollections = copyFrom.looseCollections;
-                       language = copyFrom.language;
-                       collectionFormat = copyFrom.collectionFormat;
-                       juneauNs = copyFrom.juneauNs;
                        juneauBpNs = copyFrom.juneauBpNs;
+                       juneauNs = copyFrom.juneauNs;
+                       language = copyFrom.language;
+                       looseCollections = copyFrom.looseCollections;
                        namespaces = copyFrom.namespaces;
                        jenaSettings = new TreeMap<>(copyFrom.jenaSettings);
                }
@@ -133,13 +133,13 @@ public class RdfSerializer extends WriterSerializer 
implements RdfMetaProvider {
                        addBeanTypesRdf = copyFrom.addBeanTypesRdf;
                        addLiteralTypes = copyFrom.addLiteralTypes;
                        addRootProperty = copyFrom.addRootProperty;
+                       collectionFormat = copyFrom.collectionFormat;
                        disableAutoDetectNamespaces = ! 
copyFrom.autoDetectNamespaces;
                        disableUseXmlNamespaces = ! copyFrom.useXmlNamespaces;
-                       looseCollections = copyFrom.looseCollections;
-                       language = copyFrom.language;
-                       collectionFormat = copyFrom.collectionFormat;
-                       juneauNs = copyFrom.juneauNs;
                        juneauBpNs = copyFrom.juneauBpNs;
+                       juneauNs = copyFrom.juneauNs;
+                       language = copyFrom.language;
+                       looseCollections = copyFrom.looseCollections;
                        namespaces = copyFrom.namespaces.length == 0 ? null : 
list(copyFrom.namespaces);
                        jenaSettings = new TreeMap<>(copyFrom.jenaSettings);
                }
diff --git 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java
 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java
index 9784bdd3a2..81e1046657 100644
--- 
a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java
+++ 
b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java
@@ -237,8 +237,8 @@ public class RdfSerializerSession extends 
WriterSerializerSession {
                super(builder);
                ctx = builder.ctx;
 
-               namespaces = ctx.namespaces;
                model = ModelFactory.createDefaultModel();
+               namespaces = ctx.namespaces;
                addModelPrefix(ctx.getJuneauNs());
                addModelPrefix(ctx.getJuneauBpNs());
                for (var ns : this.namespaces)
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
index dfde27e167..40aa7b9520 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java
@@ -226,34 +226,34 @@ public class BeanContext extends Context {
                protected Builder() {
                        beanClassVisibility = 
env("BeanContext.beanClassVisibility", PUBLIC);
                        beanConstructorVisibility = 
env("BeanContext.beanConstructorVisibility", PUBLIC);
-                       beanMethodVisibility = 
env("BeanContext.beanMethodVisibility", PUBLIC);
-                       beanFieldVisibility = 
env("BeanContext.beanFieldVisibility", PUBLIC);
                        beanDictionary = list();
-                       swaps = list();
-                       notBeanClasses = classSet();
-                       notBeanPackages = new TreeSet<>();
-                       disableBeansRequireSomeProperties = 
env("BeanContext.disableBeansRequireSomeProperties", false);
+                       beanFieldVisibility = 
env("BeanContext.beanFieldVisibility", PUBLIC);
                        beanMapPutReturnsOldValue = 
env("BeanContext.beanMapPutReturnsOldValue", false);
+                       beanMethodVisibility = 
env("BeanContext.beanMethodVisibility", PUBLIC);
                        beansRequireDefaultConstructor = 
env("BeanContext.beansRequireDefaultConstructor", false);
                        beansRequireSerializable = 
env("BeanContext.beansRequireSerializable", false);
                        beansRequireSettersForGetters = 
env("BeanContext.beansRequireSettersForGetters", false);
+                       disableBeansRequireSomeProperties = 
env("BeanContext.disableBeansRequireSomeProperties", false);
+                       disableIgnoreMissingSetters = 
env("BeanContext.disableIgnoreMissingSetters", false);
                        disableIgnoreTransientFields = 
env("BeanContext.disableIgnoreTransientFields", false);
                        disableIgnoreUnknownNullBeanProperties = 
env("BeanContext.disableIgnoreUnknownNullBeanProperties", false);
-                       disableIgnoreMissingSetters = 
env("BeanContext.disableIgnoreMissingSetters", false);
                        disableInterfaceProxies = 
env("BeanContext.disableInterfaceProxies", false);
                        findFluentSetters = 
env("BeanContext.findFluentSetters", false);
                        ignoreInvocationExceptionsOnGetters = 
env("BeanContext.ignoreInvocationExceptionsOnGetters", false);
                        ignoreInvocationExceptionsOnSetters = 
env("BeanContext.ignoreInvocationExceptionsOnSetters", false);
                        ignoreUnknownBeanProperties = 
env("BeanContext.ignoreUnknownBeanProperties", false);
                        ignoreUnknownEnumValues = 
env("BeanContext.ignoreUnknownEnumValues", false);
+                       locale = env("BeanContext.locale").map(x -> 
Locale.forLanguageTag(x)).orElse(Locale.getDefault());
+                       mediaType = env("BeanContext.mediaType").map(x -> 
MediaType.of(x)).orElse(null);
+                       notBeanClasses = classSet();
+                       notBeanPackages = new TreeSet<>();
+                       propertyNamer = null;
                        sortProperties = env("BeanContext.sortProperties", 
false);
+                       swaps = list();
+                       timeZone = env("BeanContext.timeZone").map(x -> 
TimeZone.getTimeZone(x)).orElse(null);
+                       typePropertyName = env("BeanContext.typePropertyName", 
"_type");
                        useEnumNames = env("BeanContext.useEnumNames", false);
                        useJavaBeanIntrospector = 
env("BeanContext.useJavaBeanIntrospector", false);
-                       typePropertyName = env("BeanContext.typePropertyName", 
"_type");
-                       mediaType = env("BeanContext.mediaType").map(x -> 
MediaType.of(x)).orElse(null);
-                       timeZone = env("BeanContext.timeZone").map(x -> 
TimeZone.getTimeZone(x)).orElse(null);
-                       locale = env("BeanContext.locale").map(x -> 
Locale.forLanguageTag(x)).orElse(Locale.getDefault());
-                       propertyNamer = null;
                }
 
                /**
@@ -265,34 +265,34 @@ public class BeanContext extends Context {
                        super(copyFrom);
                        beanClassVisibility = copyFrom.beanClassVisibility;
                        beanConstructorVisibility = 
copyFrom.beanConstructorVisibility;
-                       beanMethodVisibility = copyFrom.beanMethodVisibility;
-                       beanFieldVisibility = copyFrom.beanFieldVisibility;
                        beanDictionary = copyOf(copyFrom.beanDictionary);
-                       swaps = copyOf(copyFrom.swaps);
-                       notBeanClasses = toClassSet(copyFrom.notBeanClasses);
-                       notBeanPackages = toSortedSet(copyFrom.notBeanPackages, 
false);
-                       disableBeansRequireSomeProperties = ! 
copyFrom.beansRequireSomeProperties;
+                       beanFieldVisibility = copyFrom.beanFieldVisibility;
                        beanMapPutReturnsOldValue = 
copyFrom.beanMapPutReturnsOldValue;
+                       beanMethodVisibility = copyFrom.beanMethodVisibility;
                        beansRequireDefaultConstructor = 
copyFrom.beansRequireDefaultConstructor;
                        beansRequireSerializable = 
copyFrom.beansRequireSerializable;
                        beansRequireSettersForGetters = 
copyFrom.beansRequireSettersForGetters;
+                       disableBeansRequireSomeProperties = ! 
copyFrom.beansRequireSomeProperties;
+                       disableIgnoreMissingSetters = ! 
copyFrom.ignoreMissingSetters;
                        disableIgnoreTransientFields = ! 
copyFrom.ignoreTransientFields;
                        disableIgnoreUnknownNullBeanProperties = ! 
copyFrom.ignoreUnknownNullBeanProperties;
-                       disableIgnoreMissingSetters = ! 
copyFrom.ignoreMissingSetters;
                        disableInterfaceProxies = ! 
copyFrom.useInterfaceProxies;
                        findFluentSetters = copyFrom.findFluentSetters;
                        ignoreInvocationExceptionsOnGetters = 
copyFrom.ignoreInvocationExceptionsOnGetters;
                        ignoreInvocationExceptionsOnSetters = 
copyFrom.ignoreInvocationExceptionsOnSetters;
                        ignoreUnknownBeanProperties = 
copyFrom.ignoreUnknownBeanProperties;
                        ignoreUnknownEnumValues = 
copyFrom.ignoreUnknownEnumValues;
+                       locale = copyFrom.locale;
+                       mediaType = copyFrom.mediaType;
+                       notBeanClasses = toClassSet(copyFrom.notBeanClasses);
+                       notBeanPackages = toSortedSet(copyFrom.notBeanPackages, 
false);
+                       propertyNamer = copyFrom.propertyNamer;
                        sortProperties = copyFrom.sortProperties;
+                       swaps = copyOf(copyFrom.swaps);
+                       timeZone = copyFrom.timeZone;
+                       typePropertyName = copyFrom.typePropertyName;
                        useEnumNames = copyFrom.useEnumNames;
                        useJavaBeanIntrospector = 
copyFrom.useJavaBeanIntrospector;
-                       typePropertyName = copyFrom.typePropertyName;
-                       mediaType = copyFrom.mediaType;
-                       timeZone = copyFrom.timeZone;
-                       locale = copyFrom.locale;
-                       propertyNamer = copyFrom.propertyNamer;
                }
 
                /**
@@ -304,34 +304,34 @@ public class BeanContext extends Context {
                        super(copyFrom);
                        beanClassVisibility = copyFrom.beanClassVisibility;
                        beanConstructorVisibility = 
copyFrom.beanConstructorVisibility;
-                       beanMethodVisibility = copyFrom.beanMethodVisibility;
-                       beanFieldVisibility = copyFrom.beanFieldVisibility;
                        beanDictionary = copyOf(copyFrom.beanDictionary);
-                       swaps = copyOf(copyFrom.swaps);
-                       notBeanClasses = toClassSet(copyFrom.notBeanClasses);
-                       notBeanPackages = toSortedSet(copyFrom.notBeanPackages);
-                       disableBeansRequireSomeProperties = 
copyFrom.disableBeansRequireSomeProperties;
+                       beanFieldVisibility = copyFrom.beanFieldVisibility;
                        beanMapPutReturnsOldValue = 
copyFrom.beanMapPutReturnsOldValue;
+                       beanMethodVisibility = copyFrom.beanMethodVisibility;
                        beansRequireDefaultConstructor = 
copyFrom.beansRequireDefaultConstructor;
                        beansRequireSerializable = 
copyFrom.beansRequireSerializable;
                        beansRequireSettersForGetters = 
copyFrom.beansRequireSettersForGetters;
+                       disableBeansRequireSomeProperties = 
copyFrom.disableBeansRequireSomeProperties;
+                       disableIgnoreMissingSetters = 
copyFrom.disableIgnoreMissingSetters;
                        disableIgnoreTransientFields = 
copyFrom.disableIgnoreTransientFields;
                        disableIgnoreUnknownNullBeanProperties = 
copyFrom.disableIgnoreUnknownNullBeanProperties;
-                       disableIgnoreMissingSetters = 
copyFrom.disableIgnoreMissingSetters;
                        disableInterfaceProxies = 
copyFrom.disableInterfaceProxies;
                        findFluentSetters = copyFrom.findFluentSetters;
                        ignoreInvocationExceptionsOnGetters = 
copyFrom.ignoreInvocationExceptionsOnGetters;
                        ignoreInvocationExceptionsOnSetters = 
copyFrom.ignoreInvocationExceptionsOnSetters;
                        ignoreUnknownBeanProperties = 
copyFrom.ignoreUnknownBeanProperties;
                        ignoreUnknownEnumValues = 
copyFrom.ignoreUnknownEnumValues;
+                       locale = copyFrom.locale;
+                       mediaType = copyFrom.mediaType;
+                       notBeanClasses = toClassSet(copyFrom.notBeanClasses);
+                       notBeanPackages = toSortedSet(copyFrom.notBeanPackages);
+                       propertyNamer = copyFrom.propertyNamer;
                        sortProperties = copyFrom.sortProperties;
+                       swaps = copyOf(copyFrom.swaps);
+                       timeZone = copyFrom.timeZone;
+                       typePropertyName = copyFrom.typePropertyName;
                        useEnumNames = copyFrom.useEnumNames;
                        useJavaBeanIntrospector = 
copyFrom.useJavaBeanIntrospector;
-                       typePropertyName = copyFrom.typePropertyName;
-                       mediaType = copyFrom.mediaType;
-                       timeZone = copyFrom.timeZone;
-                       locale = copyFrom.locale;
-                       propertyNamer = copyFrom.propertyNamer;
                }
 
                @Override /* Overridden from Builder */
@@ -3601,38 +3601,37 @@ public class BeanContext extends Context {
        public BeanContext(Builder builder) {
                super(builder);
 
-               hashKey = builder.hashKey();
-
-               beanConstructorVisibility = builder.beanConstructorVisibility;
                beanClassVisibility = builder.beanClassVisibility;
-               beanMethodVisibility = builder.beanMethodVisibility;
+               beanConstructorVisibility = builder.beanConstructorVisibility;
+               beanDictionary = 
opt(builder.beanDictionary).map(Collections::unmodifiableList).orElse(l());
                beanFieldVisibility = builder.beanFieldVisibility;
+               beanMapPutReturnsOldValue = builder.beanMapPutReturnsOldValue;
+               beanMethodVisibility = builder.beanMethodVisibility;
                beansRequireDefaultConstructor = 
builder.beansRequireDefaultConstructor;
                beansRequireSerializable = builder.beansRequireSerializable;
                beansRequireSettersForGetters = 
builder.beansRequireSettersForGetters;
                beansRequireSomeProperties = ! 
builder.disableBeansRequireSomeProperties;
-               beanMapPutReturnsOldValue = builder.beanMapPutReturnsOldValue;
-               useEnumNames = builder.useEnumNames;
-               useInterfaceProxies = ! builder.disableInterfaceProxies;
-               ignoreUnknownBeanProperties = 
builder.ignoreUnknownBeanProperties;
-               ignoreUnknownNullBeanProperties = ! 
builder.disableIgnoreUnknownNullBeanProperties;
-               ignoreUnknownEnumValues = builder.ignoreUnknownEnumValues;
-               ignoreMissingSetters = ! builder.disableIgnoreMissingSetters;
-               ignoreTransientFields = ! builder.disableIgnoreTransientFields;
+               findFluentSetters = builder.findFluentSetters;
+               hashKey = builder.hashKey();
                ignoreInvocationExceptionsOnGetters = 
builder.ignoreInvocationExceptionsOnGetters;
                ignoreInvocationExceptionsOnSetters = 
builder.ignoreInvocationExceptionsOnSetters;
-               useJavaBeanIntrospector = builder.useJavaBeanIntrospector;
-               sortProperties = builder.sortProperties;
-               findFluentSetters = builder.findFluentSetters;
-               typePropertyName = nn(builder.typePropertyName) ? 
builder.typePropertyName : "_type";
+               ignoreMissingSetters = ! builder.disableIgnoreMissingSetters;
+               ignoreTransientFields = ! builder.disableIgnoreTransientFields;
+               ignoreUnknownBeanProperties = 
builder.ignoreUnknownBeanProperties;
+               ignoreUnknownEnumValues = builder.ignoreUnknownEnumValues;
+               ignoreUnknownNullBeanProperties = ! 
builder.disableIgnoreUnknownNullBeanProperties;
                locale = nn(builder.locale) ? builder.locale : 
Locale.getDefault();
-               timeZone = builder.timeZone;
                mediaType = builder.mediaType;
-               beanDictionary = 
opt(builder.beanDictionary).map(Collections::unmodifiableList).orElse(l());
-               swaps = 
opt(builder.swaps).map(Collections::unmodifiableList).orElse(l());
                notBeanClasses = 
opt(builder.notBeanClasses).map(ArrayList::new).map(Collections::unmodifiableList).orElse(l());
                notBeanPackages = 
opt(builder.notBeanPackages).map(ArrayList::new).map(Collections::unmodifiableList).orElse(l());
                propertyNamer = nn(builder.propertyNamer) ? 
builder.propertyNamer : BasicPropertyNamer.class;
+               sortProperties = builder.sortProperties;
+               swaps = 
opt(builder.swaps).map(Collections::unmodifiableList).orElse(l());
+               timeZone = builder.timeZone;
+               typePropertyName = nn(builder.typePropertyName) ? 
builder.typePropertyName : "_type";
+               useEnumNames = builder.useEnumNames;
+               useInterfaceProxies = ! builder.disableInterfaceProxies;
+               useJavaBeanIntrospector = builder.useJavaBeanIntrospector;
 
                notBeanClassesArray = notBeanClasses.isEmpty() ? 
DEFAULT_NOTBEAN_CLASSES : Stream.of(notBeanClasses, 
l(DEFAULT_NOTBEAN_CLASSES)).flatMap(Collection::stream).toArray(Class[]::new);
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
index 18f1bf57ce..c409be445f 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java
@@ -72,9 +72,9 @@ public class BeanSession extends ContextSession {
                protected Builder(BeanContext ctx) {
                        super(assertArgNotNull("ctx", ctx));
                        this.ctx = ctx;
-                       timeZone = ctx.timeZone;
                        locale = ctx.locale;
                        mediaType = ctx.mediaType;
+                       timeZone = ctx.timeZone;
                }
 
                @Override /* Overridden from Builder */
@@ -280,8 +280,8 @@ public class BeanSession extends ContextSession {
                super(builder);
                ctx = builder.ctx;
                locale = builder.locale;
-               timeZone = builder.timeZone;
                mediaType = builder.mediaType;
+               timeZone = builder.timeZone;
        }
 
        /**
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseContext.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseContext.java
index 8045e52014..325a4e5dde 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseContext.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseContext.java
@@ -711,10 +711,10 @@ public abstract class BeanTraverseContext extends 
BeanContextable {
        protected BeanTraverseContext(Builder builder) {
                super(builder);
 
-               maxDepth = builder.maxDepth;
-               initialDepth = builder.initialDepth;
-               ignoreRecursions = builder.ignoreRecursions;
                detectRecursions = builder.detectRecursions;
+               ignoreRecursions = builder.ignoreRecursions;
+               initialDepth = builder.initialDepth;
+               maxDepth = builder.maxDepth;
 
                actualDetectRecursions = detectRecursions || ignoreRecursions 
|| super.isDebug();
        }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java
index 9d348e8583..a4fa7d68b8 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/Context.java
@@ -109,9 +109,9 @@ public abstract class Context {
                 */
                protected Builder(Builder copyFrom) {
                        assertArgNotNull("copyFrom", copyFrom);
+                       annotations = copyOf(copyFrom.annotations);
                        debug = copyFrom.debug;
                        type = copyFrom.type;
-                       annotations = copyOf(copyFrom.annotations);
                        registerBuilders(this);
                }
 
@@ -123,9 +123,9 @@ public abstract class Context {
                 */
                protected Builder(Context copyFrom) {
                        assertArgNotNull("copyFrom", copyFrom);
+                       annotations = copyOf(copyFrom.annotations);
                        debug = copyFrom.debug;
                        type = copyFrom.getClass();
-                       annotations = copyOf(copyFrom.annotations);
                        registerBuilders(this);
                }
 
@@ -860,9 +860,9 @@ public abstract class Context {
        protected Context(Builder builder) {
                assertArgNotNull("builder", builder);
                init(builder);
-               debug = builder.debug;
                annotations = copyOf(builder.annotations);
                annotationProvider = 
AnnotationProvider.create().addRuntimeAnnotations(annotations).build();
+               debug = builder.debug;
        }
 
        /**
@@ -871,9 +871,9 @@ public abstract class Context {
         * @param copyFrom The context to copy from.
         */
        protected Context(Context copyFrom) {
+               annotationProvider = copyFrom.annotationProvider;
                annotations = copyOf(copyFrom.annotations);
                debug = copyFrom.debug;
-               annotationProvider = copyFrom.annotationProvider;
        }
 
        /**
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ContextSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ContextSession.java
index 629a7592ab..c6d65930ae 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ContextSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ContextSession.java
@@ -176,12 +176,12 @@ public abstract class ContextSession {
        protected ContextSession(Builder builder) {
                assertArgNotNull("builder", builder);
                ctx = builder.ctx;
+               debug = builder.debug;
                unmodifiable = builder.unmodifiable;
                var sp = builder.properties == null ? JsonMap.EMPTY_MAP : 
builder.properties;
                if (unmodifiable)
                        sp = sp.unmodifiable();
                properties = sp;
-               debug = builder.debug;
        }
 
        /**
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializer.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializer.java
index 29c2570b4b..2ea7fdfade 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializer.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializer.java
@@ -131,18 +131,18 @@ public class HtmlDocSerializer extends 
HtmlStrippedDocSerializer {
                protected Builder(Builder copyFrom) {
                        super(copyFrom);
                        aside = copy(copyFrom.aside);
+                       asideFloat = copyFrom.asideFloat;
                        footer = copy(copyFrom.footer);
                        head = copy(copyFrom.head);
                        header = copy(copyFrom.header);
                        nav = copy(copyFrom.nav);
                        navlinks = copy(copyFrom.navlinks);
-                       script = copy(copyFrom.script);
-                       style = copy(copyFrom.style);
-                       stylesheet = copy(copyFrom.stylesheet);
-                       asideFloat = copyFrom.asideFloat;
                        noResultsMessage = copyFrom.noResultsMessage;
                        nowrap = copyFrom.nowrap;
                        resolveBodyVars = copyFrom.resolveBodyVars;
+                       script = copy(copyFrom.script);
+                       style = copy(copyFrom.style);
+                       stylesheet = copy(copyFrom.stylesheet);
                        template = copyFrom.template;
                        widgets = copy(copyFrom.widgets);
                }
@@ -155,18 +155,18 @@ public class HtmlDocSerializer extends 
HtmlStrippedDocSerializer {
                protected Builder(HtmlDocSerializer copyFrom) {
                        super(copyFrom);
                        aside = copy(copyFrom.aside);
+                       asideFloat = copyFrom.asideFloat;
                        footer = copy(copyFrom.footer);
                        head = copy(copyFrom.head);
                        header = copy(copyFrom.header);
                        nav = copy(copyFrom.nav);
                        navlinks = copy(copyFrom.navlinks);
-                       script = copy(copyFrom.script);
-                       style = copy(copyFrom.style);
-                       stylesheet = copy(copyFrom.stylesheet);
-                       asideFloat = copyFrom.asideFloat;
                        noResultsMessage = copyFrom.noResultsMessage;
                        nowrap = copyFrom.nowrap;
                        resolveBodyVars = copyFrom.resolveBodyVars;
+                       script = copy(copyFrom.script);
+                       style = copy(copyFrom.style);
+                       stylesheet = copy(copyFrom.stylesheet);
                        template = copyFrom.template;
                        widgets = copy(copyFrom.widgets);
                }
@@ -1650,19 +1650,19 @@ public class HtmlDocSerializer extends 
HtmlStrippedDocSerializer {
         */
        public HtmlDocSerializer(Builder builder) {
                super(builder);
-               style = nn(builder.style) ? toArray(builder.style) : 
EMPTY_ARRAY;
-               stylesheet = nn(builder.stylesheet) ? 
toArray(builder.stylesheet) : EMPTY_ARRAY;
-               script = nn(builder.script) ? toArray(builder.script) : 
EMPTY_ARRAY;
+               aside = nn(builder.aside) ? toArray(builder.aside) : 
EMPTY_ARRAY;
+               asideFloat = builder.asideFloat;
+               footer = nn(builder.footer) ? toArray(builder.footer) : 
EMPTY_ARRAY;
                head = nn(builder.head) ? toArray(builder.head) : EMPTY_ARRAY;
                header = nn(builder.header) ? toArray(builder.header) : 
EMPTY_ARRAY;
                nav = nn(builder.nav) ? toArray(builder.nav) : EMPTY_ARRAY;
-               aside = nn(builder.aside) ? toArray(builder.aside) : 
EMPTY_ARRAY;
-               footer = nn(builder.footer) ? toArray(builder.footer) : 
EMPTY_ARRAY;
                navlinks = nn(builder.navlinks) ? toArray(builder.navlinks) : 
EMPTY_ARRAY;
-               asideFloat = builder.asideFloat;
                noResultsMessage = builder.noResultsMessage;
                nowrap = builder.nowrap;
                resolveBodyVars = builder.resolveBodyVars;
+               script = nn(builder.script) ? toArray(builder.script) : 
EMPTY_ARRAY;
+               style = nn(builder.style) ? toArray(builder.style) : 
EMPTY_ARRAY;
+               stylesheet = nn(builder.stylesheet) ? 
toArray(builder.stylesheet) : EMPTY_ARRAY;
                template = builder.template;
                widgets = builder.widgets == null ? Collections.emptyList() : 
copyOf(builder.widgets);
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializer.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializer.java
index 887f46cfeb..ab4041a6a8 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializer.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializer.java
@@ -1450,12 +1450,12 @@ public class HtmlSerializer extends XmlSerializer 
implements HtmlMetaProvider {
         */
        public HtmlSerializer(Builder builder) {
                super(builder);
+               addBeanTypesHtml = builder.addBeanTypesHtml;
+               addKeyValueTableHeaders = builder.addKeyValueTableHeaders;
                detectLabelParameters = ! builder.disableDetectLabelParameters;
                detectLinksInStrings = ! builder.disableDetectLinksInStrings;
-               addKeyValueTableHeaders = builder.addKeyValueTableHeaders;
                labelParameter = builder.labelParameter;
                uriAnchorText = builder.uriAnchorText;
-               addBeanTypesHtml = builder.addBeanTypesHtml;
        }
 
        @Override /* Overridden from Context */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializer.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializer.java
index 9a0615340d..cda0bfafba 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializer.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializer.java
@@ -1058,8 +1058,8 @@ public class JsonSerializer extends WriterSerializer 
implements JsonMetaProvider
        public JsonSerializer(Builder builder) {
                super(builder);
                addBeanTypesJson = builder.addBeanTypesJson;
-               simpleAttrs = builder.simpleAttrs;
                escapeSolidus = builder.escapeSolidus;
+               simpleAttrs = builder.simpleAttrs;
 
                addBeanTypes = addBeanTypesJson || super.isAddBeanTypes();
        }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java
index 1a37c0b7ba..d9fcf73f18 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGenerator.java
@@ -101,9 +101,9 @@ public class JsonSchemaGenerator extends 
BeanTraverseContext implements JsonSche
                        addExamplesTo = copyFrom.addExamplesTo == null ? null : 
new TreeSet<>(copyFrom.addExamplesTo);
                        allowNestedDescriptions = 
copyFrom.allowNestedDescriptions;
                        allowNestedExamples = copyFrom.allowNestedExamples;
-                       useBeanDefs = copyFrom.useBeanDefs;
                        beanDefMapper = copyFrom.beanDefMapper;
                        ignoreTypes = copyFrom.ignoreTypes == null ? null : new 
TreeSet<>(copyFrom.ignoreTypes);
+                       useBeanDefs = copyFrom.useBeanDefs;
                }
 
                /**
@@ -122,9 +122,9 @@ public class JsonSchemaGenerator extends 
BeanTraverseContext implements JsonSche
                        addExamplesTo = copyFrom.addExamplesTo.isEmpty() ? null 
: new TreeSet<>(copyFrom.addExamplesTo);
                        allowNestedDescriptions = 
copyFrom.allowNestedDescriptions;
                        allowNestedExamples = copyFrom.allowNestedExamples;
-                       useBeanDefs = copyFrom.useBeanDefs;
                        beanDefMapper = copyFrom.beanDefMapper;
                        ignoreTypes = copyFrom.ignoreTypes.isEmpty() ? null : 
new TreeSet<>(copyFrom.ignoreTypes);
+                       useBeanDefs = copyFrom.useBeanDefs;
                }
 
                /**
@@ -861,13 +861,13 @@ public class JsonSchemaGenerator extends 
BeanTraverseContext implements JsonSche
        public JsonSchemaGenerator(Builder builder) {
                super(builder.detectRecursions().ignoreRecursions());
 
-               useBeanDefs = builder.useBeanDefs;
-               allowNestedExamples = builder.allowNestedExamples;
+               addDescriptionsTo = builder.addDescriptionsTo == null ? 
Collections.emptySet() : new TreeSet<>(builder.addDescriptionsTo);
+               addExamplesTo = builder.addExamplesTo == null ? 
Collections.emptySet() : new TreeSet<>(builder.addExamplesTo);
                allowNestedDescriptions = builder.allowNestedDescriptions;
+               allowNestedExamples = builder.allowNestedExamples;
                beanDefMapper = builder.beanDefMapper;
-               addExamplesTo = builder.addExamplesTo == null ? 
Collections.emptySet() : new TreeSet<>(builder.addExamplesTo);
-               addDescriptionsTo = builder.addDescriptionsTo == null ? 
Collections.emptySet() : new TreeSet<>(builder.addDescriptionsTo);
                ignoreTypes = builder.ignoreTypes == null ? 
Collections.emptySet() : new TreeSet<>(builder.ignoreTypes);
+               useBeanDefs = builder.useBeanDefs;
 
                Set<Pattern> ignoreTypePatterns = set();
                ignoreTypes.forEach(y -> split(y, x -> 
ignoreTypePatterns.add(Pattern.compile(x.replace(".", "\\.").replace("*", 
".*")))));
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Parser.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Parser.java
index 8c1f92d446..1f22387009 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Parser.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/Parser.java
@@ -1007,13 +1007,13 @@ public class Parser extends BeanContextable {
        protected Parser(Builder builder) {
                super(builder);
 
-               consumes = builder.consumes;
-               trimStrings = builder.trimStrings;
-               strict = builder.strict;
                autoCloseStreams = builder.autoCloseStreams;
+               consumes = builder.consumes;
                debugOutputLines = builder.debugOutputLines;
-               unbuffered = builder.unbuffered;
                listener = builder.listener;
+               strict = builder.strict;
+               trimStrings = builder.trimStrings;
+               unbuffered = builder.unbuffered;
 
                String[] _consumes = splita(nn(consumes) ? consumes : "");
                this.consumesArray = new MediaType[_consumes.length];
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParser.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParser.java
index c69f768cc5..4906fff4f4 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParser.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ReaderParser.java
@@ -683,8 +683,8 @@ public class ReaderParser extends Parser {
         */
        protected ReaderParser(Builder builder) {
                super(builder);
-               streamCharset = builder.streamCharset;
                fileCharset = builder.fileCharset;
+               streamCharset = builder.streamCharset;
        }
 
        @Override /* Overridden from Context */
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java
index d61a73251a..4a95324a96 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java
@@ -1303,20 +1303,20 @@ public class Serializer extends BeanTraverseContext {
        protected Serializer(Builder builder) {
                super(builder);
 
-               produces = builder.produces;
                accept = builder.accept;
                addBeanTypes = builder.addBeanTypes;
+               addRootType = builder.addRootType;
                keepNullProperties = builder.keepNullProperties;
+               listener = builder.listener;
+               produces = builder.produces;
+               sortCollections = builder.sortCollections;
+               sortMaps = builder.sortMaps;
                trimEmptyCollections = builder.trimEmptyCollections;
                trimEmptyMaps = builder.trimEmptyMaps;
                trimStrings = builder.trimStrings;
-               sortCollections = builder.sortCollections;
-               sortMaps = builder.sortMaps;
-               addRootType = builder.addRootType;
                uriContext = builder.uriContext;
-               uriResolution = builder.uriResolution;
                uriRelativity = builder.uriRelativity;
-               listener = builder.listener;
+               uriResolution = builder.uriResolution;
 
                this.producesMediaType = MediaType.of(produces);
                this.acceptRanges = nn(accept) ? MediaRanges.of(accept) : 
MediaRanges.of(produces);
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
index a483a83271..beda257b4b 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
@@ -85,8 +85,8 @@ public class SerializerSession extends BeanTraverseSession {
                protected Builder(Serializer ctx) {
                        super(assertArgNotNull("ctx", ctx));
                        this.ctx = ctx;
-                       uriContext = ctx.uriContext;
                        mediaTypeDefault(ctx.getResponseContentType());
+                       uriContext = ctx.uriContext;
                }
 
                @Override /* Overridden from Builder */
@@ -328,11 +328,11 @@ public class SerializerSession extends 
BeanTraverseSession {
                super(builder);
                ctx = builder.ctx;
                javaMethod = builder.javaMethod;
+               schema = builder.schema;
                UriContext uriContext = builder.uriContext;
                uriResolver = UriResolver.of(ctx.getUriResolution(), 
ctx.getUriRelativity(), uriContext);
-               listener = 
BeanCreator.of(SerializerListener.class).type(ctx.getListener()).orElse(null);
                vrs = builder.resolver;
-               schema = builder.schema;
+               listener = 
BeanCreator.of(SerializerListener.class).type(ctx.getListener()).orElse(null);
        }
 
        /**
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializer.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializer.java
index c90efc81cc..41cdb65968 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializer.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializer.java
@@ -995,11 +995,11 @@ public class WriterSerializer extends Serializer {
        protected WriterSerializer(Builder builder) {
                super(builder);
 
+               fileCharset = builder.fileCharset;
                maxIndent = builder.maxIndent;
                quoteChar = builder.quoteChar;
                quoteCharOverride = builder.quoteCharOverride;
                streamCharset = builder.streamCharset;
-               fileCharset = builder.fileCharset;
                useWhitespace = builder.useWhitespace;
 
                quoteCharValue = nn(quoteCharOverride) ? quoteCharOverride : 
nn(quoteChar) ? quoteChar : '"';
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializerSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializerSession.java
index 070b84aa73..f189c3a604 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializerSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializerSession.java
@@ -70,9 +70,9 @@ public class WriterSerializerSession extends 
SerializerSession {
                protected Builder(WriterSerializer ctx) {
                        super(assertArgNotNull("ctx", ctx));
                        this.ctx = ctx;
-                       useWhitespace = ctx.useWhitespace;
                        fileCharset = ctx.fileCharset;
                        streamCharset = ctx.streamCharset;
+                       useWhitespace = ctx.useWhitespace;
                }
 
                @Override /* Overridden from Builder */
@@ -264,8 +264,8 @@ public class WriterSerializerSession extends 
SerializerSession {
        protected WriterSerializerSession(Builder builder) {
                super(builder);
                ctx = builder.ctx;
-               streamCharset = builder.streamCharset;
                fileCharset = builder.fileCharset;
+               streamCharset = builder.streamCharset;
                useWhitespace = builder.useWhitespace;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java
index 61b7101c7d..df28292e99 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java
@@ -1089,8 +1089,8 @@ public class UonSerializer extends WriterSerializer 
implements HttpPartSerialize
        public UonSerializer(Builder builder) {
                super(builder);
 
-               encoding = builder.encoding;
                addBeanTypesUon = builder.addBeanTypesUon;
+               encoding = builder.encoding;
                paramFormat = builder.paramFormat;
                quoteCharUon = builder.quoteCharUon;
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParser.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParser.java
index 952bfd2c55..bc50f2dd31 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParser.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParser.java
@@ -786,11 +786,11 @@ public class XmlParser extends ReaderParser implements 
XmlMetaProvider {
         */
        public XmlParser(Builder builder) {
                super(builder);
-               validating = builder.validating;
+               eventAllocator = builder.eventAllocator;
                preserveRootElement = builder.preserveRootElement;
                reporter = builder.reporter;
                resolver = builder.resolver;
-               eventAllocator = builder.eventAllocator;
+               validating = builder.validating;
 
                reporterImpl = nn(reporter) ? newInstance(reporter) : null;
                resolverImpl = nn(resolver) ? newInstance(resolver) : null;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java
index e209d8d27a..a6ed04be89 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java
@@ -178,10 +178,10 @@ public class XmlSerializer extends WriterSerializer 
implements XmlMetaProvider {
                        super(assertArgNotNull("copyFrom", copyFrom));
                        addBeanTypesXml = copyFrom.addBeanTypesXml;
                        addNamespaceUrisToRoot = 
copyFrom.addNamespaceUrisToRoot;
+                       defaultNamespace = copyFrom.defaultNamespace;
                        disableAutoDetectNamespaces = 
copyFrom.disableAutoDetectNamespaces;
                        disableJsonTags = copyFrom.disableJsonTags;
                        enableNamespaces = copyFrom.enableNamespaces;
-                       defaultNamespace = copyFrom.defaultNamespace;
                        namespaces = copyOf(copyFrom.namespaces);
                        textNodeDelimiter = copyFrom.textNodeDelimiter;
                }
@@ -196,10 +196,10 @@ public class XmlSerializer extends WriterSerializer 
implements XmlMetaProvider {
                        super(assertArgNotNull("copyFrom", copyFrom));
                        addBeanTypesXml = copyFrom.addBeanTypesXml;
                        addNamespaceUrisToRoot = 
copyFrom.addNamespaceUrlsToRoot;
+                       defaultNamespace = copyFrom.defaultNamespace;
                        disableAutoDetectNamespaces = ! 
copyFrom.autoDetectNamespaces;
                        disableJsonTags = ! copyFrom.addJsonTags;
                        enableNamespaces = copyFrom.enableNamespaces;
-                       defaultNamespace = copyFrom.defaultNamespace;
                        namespaces = copyFrom.namespaces.length == 0 ? null : 
list(copyFrom.namespaces);
                        textNodeDelimiter = copyFrom.textNodeDelimiter;
                }
@@ -1238,12 +1238,12 @@ public class XmlSerializer extends WriterSerializer 
implements XmlMetaProvider {
         */
        public XmlSerializer(Builder builder) {
                super(builder);
-               autoDetectNamespaces = ! builder.disableAutoDetectNamespaces;
-               enableNamespaces = builder.enableNamespaces;
-               addNamespaceUrlsToRoot = builder.addNamespaceUrisToRoot;
                addBeanTypesXml = builder.addBeanTypesXml;
                addJsonTags = ! builder.disableJsonTags;
+               addNamespaceUrlsToRoot = builder.addNamespaceUrisToRoot;
+               autoDetectNamespaces = ! builder.disableAutoDetectNamespaces;
                defaultNamespace = nn(builder.defaultNamespace) ? 
builder.defaultNamespace : DEFAULT_JUNEAU_NAMESPACE;
+               enableNamespaces = builder.enableNamespaces;
                namespaces = nn(builder.namespaces) ? 
builder.namespaces.toArray(EMPTY_NAMESPACE_ARRAY) : EMPTY_NAMESPACE_ARRAY;
                textNodeDelimiter = builder.textNodeDelimiter;
                addBeanTypes = addBeanTypesXml || super.isAddBeanTypes();
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
index cc43cc3c5f..905ec070c2 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
@@ -253,8 +253,8 @@ public class XmlSerializerSession extends 
WriterSerializerSession {
        protected XmlSerializerSession(Builder builder) {
                super(builder);
                ctx = builder.ctx;
-               namespaces = ctx.getNamespaces();
                defaultNamespace = 
findDefaultNamespace(ctx.getDefaultNamespace());
+               namespaces = ctx.getNamespaces();
                textNodeDelimiter = ctx.textNodeDelimiter;
        }
 
diff --git 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
index ed95b037f8..3e6951c123 100644
--- 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
+++ 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
@@ -6205,37 +6205,37 @@ public class RestClient extends BeanContextable 
implements HttpClient, Closeable
 
                beanStore = builder.beanStore.addBean(RestClient.class, this);
 
-               httpClient = builder.getHttpClient();
-               headerData = builder.headers().copy();
-               queryData = builder.queryData().copy();
-               formData = builder.formData().copy();
-               pathData = builder.pathData().copy();
                callHandler = builder.callHandler().run();
-               skipEmptyHeaderData = builder.skipEmptyHeaderData;
-               skipEmptyQueryData = builder.skipEmptyQueryData;
-               skipEmptyFormData = builder.skipEmptyFormData;
-               rootUrl = builder.rootUrl;
-               errorCodes = builder.errorCodes;
                connectionManager = builder.connectionManager;
                console = nn(builder.console) ? builder.console : System.err;
-               if (builder.executorService != null)
-                       executorService.set(builder.executorService);
-               executorServiceShutdownOnClose = 
builder.executorServiceShutdownOnClose;
+               creationStack = isDebug() ? 
Thread.currentThread().getStackTrace() : null;
+               detectLeaks = builder.detectLeaks;
+               errorCodes = builder.errorCodes;
+               formData = builder.formData().copy();
+               headerData = builder.headers().copy();
+               httpClient = builder.getHttpClient();
                ignoreErrors = builder.ignoreErrors;
+               interceptors = nn(builder.interceptors) ? 
builder.interceptors.toArray(EMPTY_REST_CALL_INTERCEPTORS) : 
EMPTY_REST_CALL_INTERCEPTORS;
                keepHttpClientOpen = builder.keepHttpClientOpen;
-               detectLeaks = builder.detectLeaks;
                logger = nn(builder.logger) ? builder.logger : 
Logger.getLogger(cn(RestClient.class));
-               logToConsole = builder.logToConsole || isDebug();
                logRequests = nn(builder.logRequests) ? builder.logRequests : 
isDebug() ? DetailLevel.FULL : DetailLevel.NONE;
                logRequestsLevel = nn(builder.logRequestsLevel) ? 
builder.logRequestsLevel : isDebug() ? Level.WARNING : Level.OFF;
                logRequestsPredicate = nn(builder.logRequestsPredicate) ? 
builder.logRequestsPredicate : LOG_REQUESTS_PREDICATE_DEFAULT;
-               interceptors = nn(builder.interceptors) ? 
builder.interceptors.toArray(EMPTY_REST_CALL_INTERCEPTORS) : 
EMPTY_REST_CALL_INTERCEPTORS;
-               serializers = builder.serializers().build();
+               logToConsole = builder.logToConsole || isDebug();
                parsers = builder.parsers().build();
-               partSerializer = builder.partSerializer().create();
                partParser = builder.partParser().create();
+               partSerializer = builder.partSerializer().create();
+               pathData = builder.pathData().copy();
+               queryData = builder.queryData().copy();
+               rootUrl = builder.rootUrl;
+               serializers = builder.serializers().build();
+               skipEmptyFormData = builder.skipEmptyFormData;
+               skipEmptyHeaderData = builder.skipEmptyHeaderData;
+               skipEmptyQueryData = builder.skipEmptyQueryData;
                urlEncodingSerializer = builder.urlEncodingSerializer().build();
-               creationStack = isDebug() ? 
Thread.currentThread().getStackTrace() : null;
+               if (builder.executorService != null)
+                       executorService.set(builder.executorService);
+               executorServiceShutdownOnClose = 
builder.executorServiceShutdownOnClose;
 
                init();
        }
diff --git 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java
 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java
index 19c9627efa..64ff1553dc 100644
--- 
a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java
+++ 
b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.java
@@ -219,12 +219,12 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
                this.client = client;
                this.request = createInnerRequest(assertArgNotNull("method", 
method), assertArgNotNull("uri", uri), hasBody);
                this.errorCodes = client.errorCodes;
-               this.uriBuilder = new URIBuilder(request.getURI());
-               this.ignoreErrors = client.ignoreErrors;
-               this.headerData = client.createHeaderData();
-               this.queryData = client.createQueryData();
                this.formData = client.createFormData();
+               this.headerData = client.createHeaderData();
+               this.ignoreErrors = client.ignoreErrors;
                this.pathData = client.createPathData();
+               this.queryData = client.createQueryData();
+               this.uriBuilder = new URIBuilder(request.getURI());
        }
 
        /**
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
index 5dd6527e97..3549a6d1d5 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
@@ -5016,12 +5016,12 @@ public class RestContext extends Context {
                try {
                        this.builder = builder;
 
-                       resourceClass = builder.resourceClass;
-                       resource = builder.resource;
-                       parentContext = builder.parentContext;
-                       rootBeanStore = builder.rootBeanStore();
                        defaultClasses = builder.defaultClasses();
                        defaultSettings = builder.defaultSettings();
+                       parentContext = builder.parentContext;
+                       resource = builder.resource;
+                       resourceClass = builder.resourceClass;
+                       rootBeanStore = builder.rootBeanStore();
 
                        BeanStore bs = beanStore = builder.beanStore();
                        // @formatter:off
@@ -5043,16 +5043,16 @@ public class RestContext extends Context {
 
                        allowContentParam = ! builder.disableContentParam;
                        allowedHeaderParams = 
newCaseInsensitiveSet(opt(builder.allowedHeaderParams).map(x -> 
"NONE".equals(x) ? "" : x).orElse(""));
-                       allowedMethodParams = 
newCaseInsensitiveSet(opt(builder.allowedMethodParams).map(x -> 
"NONE".equals(x) ? "" : x).orElse(""));
                        allowedMethodHeaders = 
newCaseInsensitiveSet(opt(builder.allowedMethodHeaders).map(x -> 
"NONE".equals(x) ? "" : x).orElse(""));
+                       allowedMethodParams = 
newCaseInsensitiveSet(opt(builder.allowedMethodParams).map(x -> 
"NONE".equals(x) ? "" : x).orElse(""));
                        clientVersionHeader = builder.clientVersionHeader;
                        defaultCharset = builder.defaultCharset;
                        maxInput = builder.maxInput;
                        renderResponseStackTraces = 
builder.renderResponseStackTraces;
-                       uriContext = builder.uriContext;
                        uriAuthority = builder.uriAuthority;
-                       uriResolution = builder.uriResolution;
+                       uriContext = builder.uriContext;
                        uriRelativity = builder.uriRelativity;
+                       uriResolution = builder.uriResolution;
 
                        beanContext = bs.add(BeanContext.class, 
builder.beanContext().build());
                        encoders = bs.add(EncoderSet.class, 
builder.encoders().build());
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java
index d0d572d3e8..1105253bdf 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpContext.java
@@ -2206,14 +2206,14 @@ public class RestOpContext extends Context implements 
Comparable<RestOpContext>
                        bs.addBean(BeanStore.class, bs);
 
                        beanContext = bs.add(BeanContext.class, 
builder.getBeanContext().orElse(context.getBeanContext()));
+                       converters = bs.add(RestConverter[].class, 
builder.converters().build().asArray());
                        encoders = bs.add(EncoderSet.class, 
builder.getEncoders().orElse(context.getEncoders()));
-                       serializers = bs.add(SerializerSet.class, 
builder.getSerializers().orElse(context.getSerializers()));
+                       guards = bs.add(RestGuard[].class, 
builder.getGuards().asArray());
+                       jsonSchemaGenerator = bs.add(JsonSchemaGenerator.class, 
builder.getJsonSchemaGenerator().orElse(context.getJsonSchemaGenerator()));
                        parsers = bs.add(ParserSet.class, 
builder.getParsers().orElse(context.getParsers()));
-                       partSerializer = bs.add(HttpPartSerializer.class, 
builder.getPartSerializer().orElse(context.getPartSerializer()));
                        partParser = bs.add(HttpPartParser.class, 
builder.getPartParser().orElse(context.getPartParser()));
-                       jsonSchemaGenerator = bs.add(JsonSchemaGenerator.class, 
builder.getJsonSchemaGenerator().orElse(context.getJsonSchemaGenerator()));
-                       converters = bs.add(RestConverter[].class, 
builder.converters().build().asArray());
-                       guards = bs.add(RestGuard[].class, 
builder.getGuards().asArray());
+                       partSerializer = bs.add(HttpPartSerializer.class, 
builder.getPartSerializer().orElse(context.getPartSerializer()));
+                       serializers = bs.add(SerializerSet.class, 
builder.getSerializers().orElse(context.getSerializers()));
 
                        var matchers = builder.getMatchers(context);
                        optionalMatchers = matchers.getOptionalEntries();
@@ -2225,11 +2225,11 @@ public class RestOpContext extends Context implements 
Comparable<RestOpContext>
                        supportedAcceptTypes = u(nn(builder.produces) ? 
builder.produces : serializers.getSupportedMediaTypes());
                        supportedContentTypes = u(nn(builder.consumes) ? 
builder.consumes : parsers.getSupportedMediaTypes());
 
+                       defaultRequestAttributes = 
builder.defaultRequestAttributes();
+                       defaultRequestFormData = 
builder.defaultRequestFormData();
                        defaultRequestHeaders = builder.defaultRequestHeaders();
-                       defaultResponseHeaders = 
builder.defaultResponseHeaders();
                        defaultRequestQueryData = 
builder.defaultRequestQueryData();
-                       defaultRequestFormData = 
builder.defaultRequestFormData();
-                       defaultRequestAttributes = 
builder.defaultRequestAttributes();
+                       defaultResponseHeaders = 
builder.defaultResponseHeaders();
 
                        int _hierarchyDepth = 0;
                        var sc = method.getDeclaringClass().getSuperclass();
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestSession.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestSession.java
index d0b826a860..d7d0a1096f 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestSession.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestSession.java
@@ -225,11 +225,11 @@ public class RestSession extends ContextSession {
                resource = builder.resource;
                beanStore = BeanStore.of(context.getBeanStore(), 
resource).addBean(RestContext.class, context);
 
+               logger = beanStore.add(CallLogger.class, builder.logger);
+               pathInfoUndecoded = builder.pathInfoUndecoded;
                req = beanStore.add(HttpServletRequest.class, builder.req);
                res = beanStore.add(HttpServletResponse.class, builder.res);
-               logger = beanStore.add(CallLogger.class, builder.logger);
                urlPath = beanStore.add(UrlPath.class, builder.urlPath);
-               pathInfoUndecoded = builder.pathInfoUndecoded;
        }
 
        /**

Reply via email to