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

commit f4aa62be9fd028d34639810fea44d096b7ee3606
Author: James Bognar <[email protected]>
AuthorDate: Wed Dec 17 12:56:55 2025 -0500

    juneau-marshall improvements
---
 .../main/java/org/apache/juneau/config/Config.java |  26 +++--
 .../apache/juneau/config/store/ConfigStore.java    |   2 +-
 .../org/apache/juneau/config/store/FileStore.java  |  14 +--
 .../java/org/apache/juneau/jena/RdfParser.java     |  10 +-
 .../org/apache/juneau/jena/RdfParserSession.java   |   4 +-
 .../java/org/apache/juneau/jena/RdfSerializer.java |  14 ++-
 .../apache/juneau/jena/RdfSerializerSession.java   |   4 +-
 .../main/java/org/apache/juneau/BeanContext.java   |  64 ++++++-----
 .../java/org/apache/juneau/BeanContextable.java    |   2 +-
 .../main/java/org/apache/juneau/BeanSession.java   |   5 +-
 .../org/apache/juneau/BeanTraverseContext.java     |   7 +-
 .../org/apache/juneau/BeanTraverseSession.java     |   9 +-
 .../src/main/java/org/apache/juneau/Context.java   |   4 +-
 .../java/org/apache/juneau/ContextSession.java     |   7 +-
 .../org/apache/juneau/html/HtmlSerializer.java     |   9 +-
 .../java/org/apache/juneau/json/JsonParser.java    |   4 +-
 .../org/apache/juneau/json/JsonSerializer.java     |   6 +-
 .../juneau/jsonschema/JsonSchemaGenerator.java     |  20 ++--
 .../jsonschema/JsonSchemaGeneratorSession.java     |   2 +-
 .../apache/juneau/msgpack/MsgPackSerializer.java   |   4 +-
 .../apache/juneau/parser/InputStreamParser.java    |   2 +-
 .../main/java/org/apache/juneau/parser/Parser.java |  13 +--
 .../org/apache/juneau/parser/ParserSession.java    |  11 +-
 .../org/apache/juneau/parser/ReaderParser.java     |   3 +-
 .../org/apache/juneau/serializer/Serializer.java   |  21 ++--
 .../juneau/serializer/SerializerSession.java       |  12 +--
 .../apache/juneau/serializer/WriterSerializer.java |  10 +-
 .../main/java/org/apache/juneau/uon/UonParser.java |   5 +-
 .../java/org/apache/juneau/uon/UonSerializer.java  |  10 +-
 .../main/java/org/apache/juneau/xml/XmlParser.java |  13 +--
 .../java/org/apache/juneau/xml/XmlSerializer.java  |  13 ++-
 .../apache/juneau/xml/XmlSerializerSession.java    |   4 +-
 .../org/apache/juneau/rest/client/RestClient.java  |  65 ++++++-----
 .../org/apache/juneau/rest/client/RestRequest.java |  29 ++---
 .../java/org/apache/juneau/rest/RestContext.java   | 119 +++++++++++----------
 .../java/org/apache/juneau/rest/RestOpContext.java |  67 ++++++------
 .../java/org/apache/juneau/rest/RestOpSession.java |   2 +-
 .../java/org/apache/juneau/rest/RestSession.java   |  18 ++--
 38 files changed, 327 insertions(+), 307 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 a6c97d3d68..78cfa9bfdb 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
@@ -560,23 +560,21 @@ public class Config extends Context implements 
ConfigEventListener {
                        return "";
                return key.substring(0, i);
        }
-       final String name;
-       final ConfigStore store;
-       final WriterSerializer serializer;
-       final ReaderParser parser;
-       final Map<Character,Mod> mods;
-       final VarResolver varResolver;
-       final int binaryLineLength;
 
-       final BinaryFormat binaryFormat;
-       final boolean multiLineValuesOnSeparateLines, readOnly;
-
-       final BeanSession beanSession;
-
-       final VarResolverSession varSession;
+       protected final boolean multiLineValuesOnSeparateLines;
+       protected final boolean readOnly;
+       protected final int binaryLineLength;
+       protected final BinaryFormat binaryFormat;
+       protected final BeanSession beanSession;
+       protected final ConfigStore store;
+       protected final Map<Character,Mod> mods;
+       protected final ReaderParser parser;
+       protected final String name;
+       protected final VarResolver varResolver;
+       protected final VarResolverSession varSession;
+       protected final WriterSerializer serializer;
 
        private final ConfigMap configMap;
-
        private final List<ConfigEventListener> listeners = synced(new 
LinkedList<>());
 
        /**
diff --git 
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigStore.java
 
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigStore.java
index a41f1e73c9..451ea0ecc5 100644
--- 
a/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigStore.java
+++ 
b/juneau-core/juneau-config/src/main/java/org/apache/juneau/config/store/ConfigStore.java
@@ -133,8 +133,8 @@ public abstract class ConfigStore extends Context 
implements Closeable {
                }
        }
 
-       private final ConcurrentHashMap<String,Set<ConfigStoreListener>> 
listeners = new ConcurrentHashMap<>();
        private final ConcurrentHashMap<String,ConfigMap> configMaps = new 
ConcurrentHashMap<>();
+       private final ConcurrentHashMap<String,Set<ConfigStoreListener>> 
listeners = new ConcurrentHashMap<>();
 
        /**
         * Constructor.
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 9b82cba571..4fb1ec0729 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
@@ -402,16 +402,18 @@ public class FileStore extends ConfigStore {
                return new Builder();
        }
 
-       final String directory, extensions;
-       final Charset charset;
-       final boolean enableWatcher, updateOnWrite;
-       final WatcherSensitivity watcherSensitivity;
+       protected final boolean enableWatcher;
+       protected final boolean updateOnWrite;
+       protected final Charset charset;
+       protected final String directory;
+       protected final String extensions;
+       protected final WatcherSensitivity watcherSensitivity;
 
-       private final File dir;
-       private final WatcherThread watcher;
        private final ConcurrentHashMap<String,String> cache = new 
ConcurrentHashMap<>();
        private final ConcurrentHashMap<String,String> nameCache = new 
ConcurrentHashMap<>();
+       private final File dir;
        private final String[] exts;
+       private final WatcherThread watcher;
 
        /**
         * Constructor.
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 ed42c0288e..d2ece43549 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
@@ -1435,10 +1435,12 @@ public class RdfParser extends ReaderParser implements 
RdfMetaProvider {
                };
        }
 
-       final boolean trimWhitespace, looseCollections;
-       final String language;
-       final Namespace juneauNs, juneauBpNs;
-       final RdfCollectionFormat collectionFormat;
+       protected final boolean looseCollections;
+       protected final boolean trimWhitespace;
+       protected final Namespace juneauBpNs;
+       protected final Namespace juneauNs;
+       protected final RdfCollectionFormat collectionFormat;
+       protected final String language;
 
        final Map<String,Object> jenaSettings;
        private final Map<ClassMeta<?>,RdfClassMeta> rdfClassMetas = new 
ConcurrentHashMap<>();
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 9e22acc04d..e158da01ec 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
@@ -189,10 +189,10 @@ public class RdfParserSession extends ReaderParserSession 
{
                return new Builder(ctx);
        }
 
-       private final RdfParser ctx;
-       private final Property pRoot, pValue, pType, pRdfType;
        private final Model model;
+       private final Property pRoot, pValue, pType, pRdfType;
        private final RDFReader rdfReader;
+       private final RdfParser ctx;
        private final Set<Resource> urisVisited = new HashSet<>();
 
        /**
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 887669b211..44f542f5dd 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
@@ -1818,10 +1818,16 @@ public class RdfSerializer extends WriterSerializer 
implements RdfMetaProvider {
                };
        }
 
-       final boolean addLiteralTypes, addRootProperty, useXmlNamespaces, 
looseCollections, autoDetectNamespaces, addBeanTypesRdf;
-       final String language;
-       final Namespace juneauNs, juneauBpNs;
-       final RdfCollectionFormat collectionFormat;
+       protected final boolean addBeanTypesRdf;
+       protected final boolean addLiteralTypes;
+       protected final boolean addRootProperty;
+       protected final boolean autoDetectNamespaces;
+       protected final boolean looseCollections;
+       protected final boolean useXmlNamespaces;
+       protected final Namespace juneauBpNs;
+       protected final Namespace juneauNs;
+       protected final RdfCollectionFormat collectionFormat;
+       protected final String language;
 
        final Map<String,Object> jenaSettings;
        final Namespace[] namespaces;
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 3c2ec9149a..9784bdd3a2 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
@@ -222,10 +222,10 @@ public class RdfSerializerSession extends 
WriterSerializerSession {
                return new Builder(assertArgNotNull("ctx", ctx));
        }
 
-       private final RdfSerializer ctx;
-       private final Property pRoot, pValue;
        private final Model model;
+       private final Property pRoot, pValue;
        private final RDFWriter writer;
+       private final RdfSerializer ctx;
        private final Namespace[] 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 9f1c1df310..982b41b103 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
@@ -3548,32 +3548,48 @@ public class BeanContext extends Context {
                return new Builder();
        }
 
-       final boolean beansRequireDefaultConstructor, beansRequireSerializable, 
beansRequireSettersForGetters, beansRequireSomeProperties, 
beanMapPutReturnsOldValue, useInterfaceProxies,
-               ignoreUnknownBeanProperties, ignoreUnknownNullBeanProperties, 
ignoreUnknownEnumValues, ignoreMissingSetters, ignoreTransientFields, 
ignoreInvocationExceptionsOnGetters,
-               ignoreInvocationExceptionsOnSetters, useJavaBeanIntrospector, 
useEnumNames, sortProperties, findFluentSetters;
-       final Visibility beanConstructorVisibility, beanClassVisibility, 
beanMethodVisibility, beanFieldVisibility;
-       final String typePropertyName;
-       final Locale locale;
-       final TimeZone timeZone;
-       final MediaType mediaType;
-       final Class<? extends PropertyNamer> propertyNamer;
-       final List<Class<?>> beanDictionary, notBeanClasses;
-       final List<Object> swaps;
-       final List<String> notBeanPackages;
-       final HashKey hashKey;
-
-       final Map<Class,ClassMeta> cmCache;
-
-       private final String[] notBeanPackageNames, notBeanPackagePrefixes;
+       protected final boolean beanMapPutReturnsOldValue;
+       protected final boolean beansRequireDefaultConstructor;
+       protected final boolean beansRequireSerializable;
+       protected final boolean beansRequireSettersForGetters;
+       protected final boolean beansRequireSomeProperties;
+       protected final boolean findFluentSetters;
+       protected final boolean ignoreInvocationExceptionsOnGetters;
+       protected final boolean ignoreInvocationExceptionsOnSetters;
+       protected final boolean ignoreMissingSetters;
+       protected final boolean ignoreTransientFields;
+       protected final boolean ignoreUnknownBeanProperties;
+       protected final boolean ignoreUnknownEnumValues;
+       protected final boolean ignoreUnknownNullBeanProperties;
+       protected final boolean sortProperties;
+       protected final boolean useEnumNames;
+       protected final boolean useInterfaceProxies;
+       protected final boolean useJavaBeanIntrospector;
+       protected final Class<? extends PropertyNamer> propertyNamer;
+       protected final Class<?>[] notBeanClassesArray;
+       protected final ClassMeta<Class> cmClass;  // Reusable ClassMeta that 
represents general Classes.
+       protected final ClassMeta<Object> cmObject;  // Reusable ClassMeta that 
represents general Objects.
+       protected final ClassMeta<String> cmString;  // Reusable ClassMeta that 
represents general Strings.
+       protected final HashKey hashKey;
+       protected final List<Class<?>> beanDictionary;
+       protected final List<Class<?>> notBeanClasses;
+       protected final List<Object> swaps;
+       protected final List<String> notBeanPackages;
+       protected final Locale locale;
+       protected final Map<Class,ClassMeta> cmCache;
+       protected final MediaType mediaType;
+       protected final ObjectSwap[] swapArray;
+       protected final String typePropertyName;
+       protected final String[] notBeanPackageNames;
+       protected final String[] notBeanPackagePrefixes;
+       protected final TimeZone timeZone;
+       protected final Visibility beanClassVisibility;
+       protected final Visibility beanConstructorVisibility;
+       protected final Visibility beanFieldVisibility;
+       protected final Visibility beanMethodVisibility;
        private final BeanRegistry beanRegistry;
-       private final PropertyNamer propertyNamerBean;
-       private final ObjectSwap[] swapArray;
-       private final Class<?>[] notBeanClassesArray;
-       private final ClassMeta<Object> cmObject;  // Reusable ClassMeta that 
represents general Objects.
-       private final ClassMeta<String> cmString;  // Reusable ClassMeta that 
represents general Strings.
-       private final ClassMeta<Class> cmClass;  // Reusable ClassMeta that 
represents general Classes.
-
        private final BeanSession defaultSession;
+       private final PropertyNamer propertyNamerBean;
        private volatile WriterSerializer beanToStringSerializer;
 
        /**
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextable.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextable.java
index 6ad69965fc..7afda4b6cc 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextable.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextable.java
@@ -3027,7 +3027,7 @@ public abstract class BeanContextable extends Context {
                }
        }
 
-       final BeanContext beanContext;
+       protected final BeanContext beanContext;
 
        /**
         * Constructor.
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 ebf009f9b8..18f1bf57ce 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
@@ -267,12 +267,9 @@ public class BeanSession extends ContextSession {
        }
 
        private final BeanContext ctx;
-
        private final Locale locale;
-
-       private final TimeZone timeZone;
-
        private final MediaType mediaType;
+       private final TimeZone timeZone;
 
        /**
         * Constructor.
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 66ffc91967..8045e52014 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
@@ -697,9 +697,10 @@ public abstract class BeanTraverseContext extends 
BeanContextable {
                }
        }
 
-       final int initialDepth, maxDepth;
-       final boolean detectRecursions, ignoreRecursions;
-
+       protected final boolean detectRecursions;
+       protected final boolean ignoreRecursions;
+       protected final int initialDepth;
+       protected final int maxDepth;
        private final boolean actualDetectRecursions;
 
        /**
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseSession.java
index d87c6e52db..47332b5147 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanTraverseSession.java
@@ -159,18 +159,13 @@ public class BeanTraverseSession extends BeanSession {
        }
 
        private final BeanTraverseContext ctx;
-       private final Map<Object,Object> set;                                   
        // Contains the current objects in the current branch of the model.
-
        private final LinkedList<StackElement> stack = new LinkedList<>();      
        // Contains the current objects in the current branch of the model.
-       // Writable properties
-       private boolean isBottom;                                               
        // If 'true', then we're at a leaf in the model (i.e. a String, Number, 
Boolean, or null).
+       private final Map<Object,Object> set;                                   
        // Contains the current objects in the current branch of the model.
        private BeanPropertyMeta currentProperty;
-
        private ClassMeta<?> currentClass;
-
+       private boolean isBottom;                                               
        // If 'true', then we're at a leaf in the model (i.e. a String, Number, 
Boolean, or null).
        /** The current indentation depth into the model. */
        public int indent;
-
        private int depth;
 
        /**
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 7f64719870..9d348e8583 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
@@ -847,9 +847,9 @@ public abstract class Context {
                return work;
        }
 
-       private final List<Annotation> annotations;
-       private final boolean debug;
        private final AnnotationProvider annotationProvider;
+       private final boolean debug;
+       private final List<Annotation> annotations;
 
        /**
         * Constructor for this class.
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 7efc0c73ea..629a7592ab 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
@@ -161,12 +161,11 @@ public abstract class ContextSession {
                }
        }
 
-       private final JsonMap properties;
-       private List<String> warnings;  // Any warnings encountered.
-
-       private final Context ctx;
        private final boolean debug;
        private final boolean unmodifiable;
+       private final Context ctx;
+       private final JsonMap properties;
+       private List<String> warnings;  // Any warnings encountered.
 
        /**
         * Default constructor.
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 04225c2214..02d5402d90 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
@@ -1430,9 +1430,12 @@ public class HtmlSerializer extends XmlSerializer 
implements HtmlMetaProvider {
                return new Builder();
        }
 
-       final AnchorText uriAnchorText;
-       final boolean detectLabelParameters, detectLinksInStrings, 
addKeyValueTableHeaders, addBeanTypesHtml;
-       final String labelParameter;
+       protected final boolean addBeanTypesHtml;
+       protected final boolean addKeyValueTableHeaders;
+       protected final boolean detectLabelParameters;
+       protected final boolean detectLinksInStrings;
+       protected final AnchorText uriAnchorText;
+       protected final String labelParameter;
 
        private final Map<ClassMeta<?>,HtmlClassMeta> htmlClassMetas = new 
ConcurrentHashMap<>();
        private final Map<BeanPropertyMeta,HtmlBeanPropertyMeta> 
htmlBeanPropertyMetas = new ConcurrentHashMap<>();
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParser.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParser.java
index fe03adff23..1d8053a118 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParser.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonParser.java
@@ -742,10 +742,10 @@ public class JsonParser extends ReaderParser implements 
JsonMetaProvider {
                return new Builder();
        }
 
-       final boolean validateEnd;
+       protected final boolean validateEnd;
 
-       private final Map<ClassMeta<?>,JsonClassMeta> jsonClassMetas = new 
ConcurrentHashMap<>();
        private final Map<BeanPropertyMeta,JsonBeanPropertyMeta> 
jsonBeanPropertyMetas = new ConcurrentHashMap<>();
+       private final Map<ClassMeta<?>,JsonClassMeta> jsonClassMetas = new 
ConcurrentHashMap<>();
 
        /**
         * Constructor.
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 b169504e07..ef15cb046d 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
@@ -1039,11 +1039,13 @@ public class JsonSerializer extends WriterSerializer 
implements JsonMetaProvider
                return new Builder();
        }
 
-       final boolean addBeanTypesJson, escapeSolidus, simpleAttrs;
+       protected final boolean addBeanTypesJson;
+       protected final boolean escapeSolidus;
+       protected final boolean simpleAttrs;
 
        private final boolean addBeanTypes;
-       private final Map<ClassMeta<?>,JsonClassMeta> jsonClassMetas = new 
ConcurrentHashMap<>();
        private final Map<BeanPropertyMeta,JsonBeanPropertyMeta> 
jsonBeanPropertyMetas = new ConcurrentHashMap<>();
+       private final Map<ClassMeta<?>,JsonClassMeta> jsonClassMetas = new 
ConcurrentHashMap<>();
 
        private volatile JsonSchemaSerializer schemaSerializer;
 
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 c1a954c89a..1a37c0b7ba 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
@@ -839,17 +839,19 @@ public class JsonSchemaGenerator extends 
BeanTraverseContext implements JsonSche
                return new Builder();
        }
 
-       final boolean useBeanDefs, allowNestedExamples, allowNestedDescriptions;
-       final Set<TypeCategory> addExamplesTo, addDescriptionsTo;
-       final Class<? extends BeanDefMapper> beanDefMapper;
-       final Set<String> ignoreTypes;
-
+       protected final boolean allowNestedDescriptions;
+       protected final boolean allowNestedExamples;
+       protected final boolean useBeanDefs;
+       protected final Class<? extends BeanDefMapper> beanDefMapper;
+       protected final JsonParser jsonParser;
+       protected final JsonSerializer jsonSerializer;
+       protected final Set<TypeCategory> addDescriptionsTo;
+       protected final Set<TypeCategory> addExamplesTo;
+       protected final Set<String> ignoreTypes;
        private final BeanDefMapper beanDefMapperBean;
-       final JsonSerializer jsonSerializer;
-       final JsonParser jsonParser;
-       private final Pattern[] ignoreTypePatterns;
-       private final Map<ClassMeta<?>,JsonSchemaClassMeta> 
jsonSchemaClassMetas = new ConcurrentHashMap<>();
        private final Map<BeanPropertyMeta,JsonSchemaBeanPropertyMeta> 
jsonSchemaBeanPropertyMetas = new ConcurrentHashMap<>();
+       private final Map<ClassMeta<?>,JsonSchemaClassMeta> 
jsonSchemaClassMetas = new ConcurrentHashMap<>();
+       private final Pattern[] ignoreTypePatterns;
 
        /**
         * Constructor.
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java
index 0723efe22f..2bca5f5f8d 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/jsonschema/JsonSchemaGeneratorSession.java
@@ -149,8 +149,8 @@ public class JsonSchemaGeneratorSession extends 
BeanTraverseSession {
 
        private final JsonSchemaGenerator ctx;
        private final Map<String,JsonMap> defs;
-       private JsonSerializerSession jsSession;
        private JsonParserSession jpSession;
+       private JsonSerializerSession jsSession;
 
        /**
         * Constructor.
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
index f33a5b6ed1..44e066c3c0 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
@@ -769,10 +769,10 @@ public class MsgPackSerializer extends 
OutputStreamSerializer implements MsgPack
                return new Builder();
        }
 
-       final boolean addBeanTypesMsgPack;
+       protected final boolean addBeanTypesMsgPack;
 
-       private final Map<ClassMeta<?>,MsgPackClassMeta> msgPackClassMetas = 
new ConcurrentHashMap<>();
        private final Map<BeanPropertyMeta,MsgPackBeanPropertyMeta> 
msgPackBeanPropertyMetas = new ConcurrentHashMap<>();
+       private final Map<ClassMeta<?>,MsgPackClassMeta> msgPackClassMetas = 
new ConcurrentHashMap<>();
 
        /**
         * Constructor.
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParser.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParser.java
index ad7ad8c7ae..68b9ff9f5c 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParser.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/InputStreamParser.java
@@ -628,7 +628,7 @@ public class InputStreamParser extends Parser {
                return new Builder();
        }
 
-       final BinaryFormat binaryFormat;
+       protected final BinaryFormat binaryFormat;
 
        /**
         * Constructor.
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 d93048ba84..8c1f92d446 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
@@ -990,12 +990,13 @@ public class Parser extends BeanContextable {
                return (Builder)Context.createBuilder(c);
        }
 
-       final boolean trimStrings, strict, autoCloseStreams, unbuffered;
-       final int debugOutputLines;
-       final String consumes;
-       final Class<? extends ParserListener> listener;
-
-       /** General parser properties currently set on this parser. */
+       protected final boolean autoCloseStreams;
+       protected final boolean strict;
+       protected final boolean trimStrings;
+       protected final boolean unbuffered;
+       protected final int debugOutputLines;
+       protected final Class<? extends ParserListener> listener;
+       protected final String consumes;
        private final MediaType[] consumesArray;
 
        /**
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
index e84e4098de..50446df535 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java
@@ -245,19 +245,14 @@ public class ParserSession extends BeanSession {
                        m.set(o, parent);
        }
 
-       private final Parser ctx;
+       private final HttpPartSchema schema;
        private final Method javaMethod;
        private final Object outer;
-
+       private final Parser ctx;
+       private final ParserListener listener;
        private final Stack<StringBuilder> sbStack;
-       private final HttpPartSchema schema;
-       // Writable properties.
        private BeanPropertyMeta currentProperty;
-
        private ClassMeta<?> currentClass;
-
-       private final ParserListener listener;
-
        private Position mark = new Position(-1);
        private ParserPipe pipe;
 
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 c6b6ac3578..c69f768cc5 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
@@ -673,7 +673,8 @@ public class ReaderParser extends Parser {
                return new Builder();
        }
 
-       final Charset streamCharset, fileCharset;
+       protected final Charset fileCharset;
+       protected final Charset streamCharset;
 
        /**
         * Constructor.
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 685a321d75..d61a73251a 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
@@ -1277,13 +1277,20 @@ public class Serializer extends BeanTraverseContext {
                return (Builder)Context.createBuilder(c);
        }
 
-       final String produces, accept;
-       final boolean addBeanTypes, keepNullProperties, trimEmptyCollections, 
trimEmptyMaps, trimStrings, sortCollections, sortMaps, addRootType;
-       final UriContext uriContext;
-       final UriResolution uriResolution;
-       final UriRelativity uriRelativity;
-       final Class<? extends SerializerListener> listener;
-
+       protected final boolean addBeanTypes;
+       protected final boolean addRootType;
+       protected final boolean keepNullProperties;
+       protected final boolean sortCollections;
+       protected final boolean sortMaps;
+       protected final boolean trimEmptyCollections;
+       protected final boolean trimEmptyMaps;
+       protected final boolean trimStrings;
+       protected final Class<? extends SerializerListener> listener;
+       protected final String accept;
+       protected final String produces;
+       protected final UriContext uriContext;
+       protected final UriRelativity uriRelativity;
+       protected final UriResolution uriResolution;
        private final MediaRanges acceptRanges;
        private final MediaType[] acceptMediaTypes;
        private final MediaType producesMediaType;
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 aa302d55c3..a483a83271 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
@@ -312,18 +312,12 @@ public class SerializerSession extends 
BeanTraverseSession {
                return l((Object[])array);
        }
 
-       private final Serializer ctx;
-
-       private final UriResolver uriResolver;
-
        private final HttpPartSchema schema;
-
-       private VarResolverSession vrs;
-
        private final Method javaMethod;                                        
        // Java method that invoked this serializer.
-
-       // Writable properties
+       private final Serializer ctx;
        private final SerializerListener listener;
+       private final UriResolver uriResolver;
+       private VarResolverSession vrs;
 
        /**
         * Constructor.
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 769dd98104..c90efc81cc 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
@@ -977,10 +977,12 @@ public class WriterSerializer extends Serializer {
                return new Builder();
        }
 
-       final Charset fileCharset, streamCharset;
-       final int maxIndent;
-       final Character quoteChar, quoteCharOverride;
-       final boolean useWhitespace;
+       protected final boolean useWhitespace;
+       protected final Character quoteChar;
+       protected final Character quoteCharOverride;
+       protected final Charset fileCharset;
+       protected final Charset streamCharset;
+       protected final int maxIndent;
 
        private final char quoteCharValue;
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParser.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParser.java
index 4347086390..9a833b025b 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParser.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParser.java
@@ -718,10 +718,11 @@ public class UonParser extends ReaderParser implements 
HttpPartParser, UonMetaPr
                return new Builder();
        }
 
-       final boolean decoding, validateEnd;
+       protected final boolean decoding;
+       protected final boolean validateEnd;
 
-       private final Map<ClassMeta<?>,UonClassMeta> uonClassMetas = new 
ConcurrentHashMap<>();
        private final Map<BeanPropertyMeta,UonBeanPropertyMeta> 
uonBeanPropertyMetas = new ConcurrentHashMap<>();
+       private final Map<ClassMeta<?>,UonClassMeta> uonClassMetas = new 
ConcurrentHashMap<>();
 
        /**
         * Constructor.
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 01a3494380..61b7101c7d 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
@@ -1070,15 +1070,15 @@ public class UonSerializer extends WriterSerializer 
implements HttpPartSerialize
                return new Builder();
        }
 
-       final boolean encoding, addBeanTypesUon;
-       final ParamFormat paramFormat;
-       final Character quoteCharUon;
+       protected final boolean addBeanTypesUon;
+       protected final boolean encoding;
+       protected final Character quoteCharUon;
+       protected final ParamFormat paramFormat;
        private final boolean addBeanTypes;
 
        private final char quoteChar;
-       private final Map<ClassMeta<?>,UonClassMeta> uonClassMetas = new 
ConcurrentHashMap<>();
-
        private final Map<BeanPropertyMeta,UonBeanPropertyMeta> 
uonBeanPropertyMetas = new ConcurrentHashMap<>();
+       private final Map<ClassMeta<?>,UonClassMeta> uonClassMetas = new 
ConcurrentHashMap<>();
 
        /**
         * Constructor.
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 aa6f7d8fd8..952bfd2c55 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
@@ -765,17 +765,18 @@ public class XmlParser extends ReaderParser implements 
XmlMetaProvider {
                return new Builder();
        }
 
-       final boolean validating, preserveRootElement;
-       final Class<? extends XMLEventAllocator> eventAllocator;
-       final Class<? extends XMLReporter> reporter;
-       final Class<? extends XMLResolver> resolver;
+       protected final boolean preserveRootElement;
+       protected final boolean validating;
+       protected final Class<? extends XMLEventAllocator> eventAllocator;
+       protected final Class<? extends XMLReporter> reporter;
+       protected final Class<? extends XMLResolver> resolver;
 
+       private final XMLEventAllocator eventAllocatorImpl;
        private final XMLReporter reporterImpl;
        private final XMLResolver resolverImpl;
-       private final XMLEventAllocator eventAllocatorImpl;
-       private final Map<ClassMeta<?>,XmlClassMeta> xmlClassMetas = new 
ConcurrentHashMap<>();
        private final Map<BeanMeta<?>,XmlBeanMeta> xmlBeanMetas = new 
ConcurrentHashMap<>();
        private final Map<BeanPropertyMeta,XmlBeanPropertyMeta> 
xmlBeanPropertyMetas = new ConcurrentHashMap<>();
+       private final Map<ClassMeta<?>,XmlClassMeta> xmlClassMetas = new 
ConcurrentHashMap<>();
 
        /**
         * Constructor.
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 ad2ea15248..e209d8d27a 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
@@ -1216,11 +1216,14 @@ public class XmlSerializer extends WriterSerializer 
implements XmlMetaProvider {
                return new Builder();
        }
 
-       final boolean autoDetectNamespaces, enableNamespaces, 
addNamespaceUrlsToRoot, addBeanTypesXml, addJsonTags;
-
-       final Namespace defaultNamespace;
-       final Namespace[] namespaces;
-       final String textNodeDelimiter;
+       protected final boolean addBeanTypesXml;
+       protected final boolean addJsonTags;
+       protected final boolean addNamespaceUrlsToRoot;
+       protected final boolean autoDetectNamespaces;
+       protected final boolean enableNamespaces;
+       protected final Namespace defaultNamespace;
+       protected final Namespace[] namespaces;
+       protected final String textNodeDelimiter;
 
        private final boolean addBeanTypes;
        private final Map<ClassMeta<?>,XmlClassMeta> xmlClassMetas = new 
ConcurrentHashMap<>();
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 0965b77d01..cc43cc3c5f 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
@@ -240,13 +240,11 @@ public class XmlSerializerSession extends 
WriterSerializerSession {
                return new Builder(assertArgNotNull("ctx", ctx));
        }
 
+       private final String textNodeDelimiter;
        private final XmlSerializer ctx;
        private Namespace defaultNamespace;
-
        private Namespace[] namespaces = {};
 
-       private final String textNodeDelimiter;
-
        /**
         * Constructor.
         *
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 17f66e434f..4803413635 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
@@ -6157,45 +6157,42 @@ public class RestClient extends BeanContextable 
implements HttpClient, Closeable
                return new Builder();
        }
 
-       final HeaderList headerData;
-
-       final PartList queryData, formData, pathData;
-       final CloseableHttpClient httpClient;
-       private final HttpClientConnectionManager connectionManager;
-       private final boolean keepHttpClientOpen, detectLeaks, 
skipEmptyHeaderData, skipEmptyQueryData, skipEmptyFormData;
+       protected final boolean detectLeaks;
+       protected final boolean ignoreErrors;
+       protected final boolean keepHttpClientOpen;
+       protected final boolean skipEmptyFormData;
+       protected final boolean skipEmptyHeaderData;
+       protected final boolean skipEmptyQueryData;
+       protected final BiPredicate<RestRequest,RestResponse> 
logRequestsPredicate;
+       protected final CloseableHttpClient httpClient;
+       protected final DetailLevel logRequests;
+       protected final HeaderList headerData;
+       protected final HttpPartParser partParser;
+       protected final HttpPartSerializer partSerializer;
+       protected final Level logRequestsLevel;
+       protected final PartList formData;
+       protected final PartList pathData;
+       protected final PartList queryData;
+       protected final ParserSet parsers;
+       protected final RestCallInterceptor[] interceptors;
+       protected final SerializerSet serializers;
+       protected final UrlEncodingSerializer urlEncodingSerializer;  // Used 
for form posts only.
+       Predicate<Integer> errorCodes;
        private final BeanStore beanStore;
-       private final UrlEncodingSerializer urlEncodingSerializer;  // Used for 
form posts only.
-       final HttpPartSerializer partSerializer;
-       final HttpPartParser partParser;
-       private final RestCallHandler callHandler;
-       private final String rootUrl;
-       private volatile boolean isClosed = false;
-       private final StackTraceElement[] creationStack;
+       private final HttpClientConnectionManager connectionManager;
        private final Logger logger;
-       final DetailLevel logRequests;
-       final BiPredicate<RestRequest,RestResponse> logRequestsPredicate;
-       final Level logRequestsLevel;
-       final boolean ignoreErrors;
-       private final boolean logToConsole;
-       private final PrintStream console;
-
-       private StackTraceElement[] closedStack;
-       // These are read directly by RestCall.
-       final SerializerSet serializers;
-       final ParserSet parsers;
-
-       Predicate<Integer> errorCodes;
-
-       final RestCallInterceptor[] interceptors;
        private final Map<Class<?>,HttpPartParser> partParsers = new 
ConcurrentHashMap<>();
-
        private final Map<Class<?>,HttpPartSerializer> partSerializers = new 
ConcurrentHashMap<>();
-       // This is lazy-created.
-       private volatile ExecutorService executorService;
-
+       private final Pattern absUrlPattern = 
Pattern.compile("^\\w+\\:\\/\\/.*");
+       private final PrintStream console;
+       private final RestCallHandler callHandler;
+       private StackTraceElement[] closedStack;
+       private final StackTraceElement[] creationStack;
+       private final String rootUrl;
        private final boolean executorServiceShutdownOnClose;
-
-       private Pattern absUrlPattern = Pattern.compile("^\\w+\\:\\/\\/.*");
+       private final boolean logToConsole;
+       private volatile boolean isClosed = false;
+       private volatile ExecutorService executorService;
 
        /**
         * Constructor.
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 4f775fc628..19c9627efa 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
@@ -184,28 +184,21 @@ public class RestRequest extends BeanSession implements 
HttpUriRequest, Configur
 
        final RestClient client;                               // The client 
that created this call.
        private final HttpRequestBase request;                 // The request.
-       private RestResponse response;                         // The response.
-       List<RestCallInterceptor> interceptors = list();   // Used for 
intercepting and altering requests.
-       private HeaderList headerData;
-       private PartList queryData, formData, pathData;
        private boolean ignoreErrors, suppressLogging;
+       private HttpContext context;
+       private HttpHost target;
+       private HttpPartSchema contentSchema;
+       private HttpPartSerializerSession partSerializerSession;
+       private HeaderList headerData;
+       private List<Class<? extends Throwable>> rethrow;
+       List<RestCallInterceptor> interceptors = list();   // Used for 
intercepting and altering requests.
        private Object content;
-       private Serializer serializer;
-
        private Parser parser;
-
-       private HttpPartSchema contentSchema;
-
-       private URIBuilder uriBuilder;
+       private PartList formData, pathData, queryData;
        private Predicate<Integer> errorCodes;
-
-       private HttpHost target;
-
-       private HttpContext context;
-
-       private List<Class<? extends Throwable>> rethrow;
-
-       private HttpPartSerializerSession partSerializerSession;
+       private RestResponse response;                         // The response.
+       private Serializer serializer;
+       private URIBuilder uriBuilder;
 
        private final Map<HttpPartSerializer,HttpPartSerializerSession> 
partSerializerSessions = new IdentityHashMap<>();
 
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 13548dfef9..5dd6527e97 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
@@ -4936,66 +4936,67 @@ public class RestContext extends Context {
                return new ServletException(f(msg, args), t);
        }
 
+       protected final boolean allowContentParam;
+       protected final boolean renderResponseStackTraces;
+       protected final long maxInput;
+       protected final AtomicBoolean initialized = new AtomicBoolean(false);
+       protected final BasicHttpException initException;
+       protected final BeanContext beanContext;
+       protected final BeanStore beanStore;
+       protected final BeanStore rootBeanStore;
+       protected final Builder builder;
+       protected final CallLogger callLogger;
+       protected final Charset defaultCharset;
+       protected final Class<?> resourceClass;
+       protected final Class<? extends RestOpArg>[] restOpArgs;
+       protected final ConcurrentHashMap<Locale,Swagger> swaggerCache = new 
ConcurrentHashMap<>();
+       protected final Config config;
+       protected final DebugEnablement debugEnablement;
+       protected final DefaultClassList defaultClasses;
+       protected final DefaultSettingsMap defaultSettings;
+       protected final EncoderSet encoders;
+       protected final HeaderList defaultRequestHeaders;
+       protected final HeaderList defaultResponseHeaders;
+       protected final HttpPartParser partParser;
+       protected final HttpPartSerializer partSerializer;
+       protected final Instant startTime;
+       protected final JsonSchemaGenerator jsonSchemaGenerator;
+       protected final List<MediaType> consumes;
+       protected final List<MediaType> produces;
+       protected final Logger logger;
+       protected final Messages messages;
+       protected final MethodExecStore methodExecStore;
+       protected final NamedAttributeMap defaultRequestAttributes;
+       protected final ParserSet parsers;
+       protected final RestChildren restChildren;
+       protected final RestContext parentContext;
+       protected final RestOperations restOperations;
+       protected final ResponseProcessor[] responseProcessors;
+       protected final SerializerSet serializers;
+       protected final Set<String> allowedHeaderParams;
+       protected final Set<String> allowedMethodHeaders;
+       protected final Set<String> allowedMethodParams;
+       protected final StaticFiles staticFiles;
+       protected final String clientVersionHeader;
+       protected final String fullPath;
+       protected final String path;
+       protected final String uriAuthority;
+       protected final String uriContext;
+       protected final SwaggerProvider swaggerProvider;
+       protected final ThrownStore thrownStore;
+       protected final ThreadLocal<RestSession> localSession = new 
ThreadLocal<>();
+       protected final UriRelativity uriRelativity;
+       protected final UriResolution uriResolution;
+       protected final UrlPathMatcher pathMatcher;
+       protected final VarResolver varResolver;
+       private final MethodInvoker[] destroyMethods;
+       private final MethodInvoker[] endCallMethods;
+       private final MethodInvoker[] postInitChildFirstMethods;
+       private final MethodInvoker[] postInitMethods;
+       private final MethodInvoker[] startCallMethods;
+       private final MethodList postCallMethods;
+       private final MethodList preCallMethods;
        private final Supplier<?> resource;
-       private final Class<?> resourceClass;
-       final Builder builder;
-       private final boolean allowContentParam, renderResponseStackTraces;
-       private final String clientVersionHeader, uriAuthority, uriContext;
-
-       private final String path, fullPath;
-
-       private final UrlPathMatcher pathMatcher;
-       private final Set<String> allowedMethodParams, allowedHeaderParams, 
allowedMethodHeaders;
-       private final Class<? extends RestOpArg>[] restOpArgs;
-       private final BeanContext beanContext;
-       private final EncoderSet encoders;
-       private final SerializerSet serializers;
-       private final ParserSet parsers;
-       private final HttpPartSerializer partSerializer;
-       private final HttpPartParser partParser;
-       private final JsonSchemaGenerator jsonSchemaGenerator;
-       private final List<MediaType> consumes, produces;
-       private final HeaderList defaultRequestHeaders, defaultResponseHeaders;
-       private final NamedAttributeMap defaultRequestAttributes;
-       private final ResponseProcessor[] responseProcessors;
-       private final Messages messages;
-       private final Config config;
-       private final VarResolver varResolver;
-       private final RestOperations restOperations;
-       private final RestChildren restChildren;
-       private final Logger logger;
-       private final SwaggerProvider swaggerProvider;
-       private final BasicHttpException initException;
-       private final RestContext parentContext;
-       private final BeanStore beanStore;
-       private final UriResolution uriResolution;
-       private final UriRelativity uriRelativity;
-       private final MethodExecStore methodExecStore;
-       private final ThrownStore thrownStore;
-       private final ConcurrentHashMap<Locale,Swagger> swaggerCache = new 
ConcurrentHashMap<>();
-       private final Instant startTime;
-
-       final Charset defaultCharset;
-       final long maxInput;
-       final DefaultClassList defaultClasses;
-
-       final DefaultSettingsMap defaultSettings;
-
-       final BeanStore rootBeanStore;
-
-       // Lifecycle methods
-       private final MethodInvoker[] postInitMethods, 
postInitChildFirstMethods, startCallMethods, endCallMethods, destroyMethods;
-       private final MethodList preCallMethods, postCallMethods;
-       private final StaticFiles staticFiles;
-
-       private final CallLogger callLogger;
-
-       private final DebugEnablement debugEnablement;
-
-       private final ThreadLocal<RestSession> localSession = new 
ThreadLocal<>();
-
-       // Gets set when postInitChildFirst() gets called.
-       private final AtomicBoolean initialized = new AtomicBoolean(false);
 
        /**
         * Constructor.
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 5c555a0b64..d0d572d3e8 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
@@ -2140,37 +2140,41 @@ public class RestOpContext extends Context implements 
Comparable<RestOpContext>
                return 
BeanCreator.of(HttpPartSerializer.class).type(c).orElse(_default);
        }
 
-       private final String httpMethod;
-       private final UrlPathMatcher[] pathMatchers;
-       private final RestGuard[] guards;
-       private final RestMatcher[] requiredMatchers, optionalMatchers;
-       private final RestConverter[] converters;
-       private final RestContext context;
-       private final Method method;
-       private final RestOpInvoker methodInvoker;
-       private final RestOpInvoker[] preCallMethods, postCallMethods;
-       private final MethodInfo mi;
-       private final BeanContext beanContext;
-       private final SerializerSet serializers;
-       private final ParserSet parsers;
-       private final EncoderSet encoders;
-       private final HttpPartSerializer partSerializer;
-       private final HttpPartParser partParser;
-       private final JsonSchemaGenerator jsonSchemaGenerator;
-       private final HeaderList defaultRequestHeaders, defaultResponseHeaders;
-       private final PartList defaultRequestQueryData, defaultRequestFormData;
-       private final NamedAttributeMap defaultRequestAttributes;
-       private final Charset defaultCharset;
-       private final long maxInput;
-       private final List<MediaType> supportedAcceptTypes, 
supportedContentTypes;
-
-       private final CallLogger callLogger;
-       private final Map<Class<?>,ResponseBeanMeta> responseBeanMetas = new 
ConcurrentHashMap<>();
-       private final Map<Class<?>,ResponsePartMeta> headerPartMetas = new 
ConcurrentHashMap<>();
-       private final ResponseBeanMeta responseMeta;
-       private final int hierarchyDepth;
-
-       private final DebugEnablement debug;
+       protected final boolean dotAll;
+       protected final int hierarchyDepth;
+       protected final long maxInput;
+       protected final BeanContext beanContext;
+       protected final CallLogger callLogger;
+       protected final Charset defaultCharset;
+       protected final DebugEnablement debug;
+       protected final EncoderSet encoders;
+       protected final HeaderList defaultRequestHeaders;
+       protected final HeaderList defaultResponseHeaders;
+       protected final HttpPartParser partParser;
+       protected final HttpPartSerializer partSerializer;
+       protected final JsonSchemaGenerator jsonSchemaGenerator;
+       protected final List<MediaType> supportedAcceptTypes;
+       protected final List<MediaType> supportedContentTypes;
+       protected final Map<Class<?>,ResponseBeanMeta> responseBeanMetas = new 
ConcurrentHashMap<>();
+       protected final Map<Class<?>,ResponsePartMeta> headerPartMetas = new 
ConcurrentHashMap<>();
+       protected final Method method;
+       protected final MethodInfo mi;
+       protected final NamedAttributeMap defaultRequestAttributes;
+       protected final PartList defaultRequestFormData;
+       protected final PartList defaultRequestQueryData;
+       protected final ParserSet parsers;
+       protected final RestContext context;
+       protected final RestConverter[] converters;
+       protected final RestGuard[] guards;
+       protected final RestMatcher[] optionalMatchers;
+       protected final RestMatcher[] requiredMatchers;
+       protected final RestOpInvoker methodInvoker;
+       protected final RestOpInvoker[] postCallMethods;
+       protected final RestOpInvoker[] preCallMethods;
+       protected final ResponseBeanMeta responseMeta;
+       protected final SerializerSet serializers;
+       protected final String httpMethod;
+       protected final UrlPathMatcher[] pathMatchers;
 
        /**
         * Context constructor.
@@ -2243,6 +2247,7 @@ public class RestOpContext extends Context implements 
Comparable<RestOpContext>
                        httpMethod = _httpMethod.toUpperCase(Locale.ENGLISH);
 
                        defaultCharset = nn(builder.defaultCharset) ? 
builder.defaultCharset : context.defaultCharset;
+                       dotAll = builder.dotAll;
                        maxInput = nn(builder.maxInput) ? builder.maxInput : 
context.maxInput;
 
                        responseMeta = ResponseBeanMeta.create(mi, 
builder.getApplied());
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpSession.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpSession.java
index 89d37133bf..c8229d6da5 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpSession.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestOpSession.java
@@ -105,9 +105,9 @@ public class RestOpSession extends ContextSession {
        }
 
        private final RestOpContext ctx;
-       private final RestSession session;
        private final RestRequest req;
        private final RestResponse res;
+       private final RestSession session;
 
        /**
         * Constructor.
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 ba3a4560f8..d0b826a860 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
@@ -200,20 +200,18 @@ public class RestSession extends ContextSession {
                return new Builder(assertArgNotNull("ctx", ctx));
        }
 
-       private final Object resource;
-       private final RestContext context;
+       private final long startTime = System.currentTimeMillis();
+       private final BeanStore beanStore;
+       private CallLogger logger;
        private HttpServletRequest req;
        private HttpServletResponse res;
-
-       private CallLogger logger;
-       private UrlPath urlPath;
-       private String pathInfoUndecoded;
-       private long startTime = System.currentTimeMillis();
-       private BeanStore beanStore;
        private Map<String,String[]> queryParams;
-       private String method;
+       private final Object resource;
+       private final RestContext context;
        private RestOpSession opSession;
-
+       private String method;
+       private String pathInfoUndecoded;
+       private UrlPath urlPath;
        private UrlPathMatch urlPathMatch;
 
        /**

Reply via email to