You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by re...@apache.org on 2021/07/09 12:40:34 UTC

[uima-uimaj] branch bugfix/UIMA-6377-Spurious-multipleReferencesAllowed-warning-when-serializing-empty-arrays updated (ee7fef8 -> d60316a)

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

rec pushed a change to branch bugfix/UIMA-6377-Spurious-multipleReferencesAllowed-warning-when-serializing-empty-arrays
in repository https://gitbox.apache.org/repos/asf/uima-uimaj.git.


    from ee7fef8  [UIMA-6377] Spurious multipleReferencesAllowed warning when serializing empty arrays
     add 8acad25  [NO-JIRA] Set version to 3.3.0-SNAPSHOT
     add 9a4b101  Merge pull request #124 from apache/NO-JIRA-Set-version
     add 6a8cb85  Corrected a spelling error
     add 76886ce  Merge pull request #125 from sark245/main
     add aed14a2  Merge branch 'main' into bugfix/UIMA-6367-JCas-cover-annotation-created-in-PEAR-context-replaced-during-index-operations
     add 5d0e20a  Merge pull request #127 from apache/bugfix/UIMA-6367-JCas-cover-annotation-created-in-PEAR-context-replaced-during-index-operations
     add cc7efef  [UIMA-6372] Upgrade from JUnit 3 to JUnit 4 to JUnit 5
     add 062b392  [UIMA-6372] Upgrade from JUnit 3 to JUnit 4 to JUnit 5
     add 9ec0965  [UIMA-6372] Upgrade from JUnit 3 to JUnit 4 to JUnit 5
     add 36ca99e  [UIMA-6372] Upgrade from JUnit 3 to JUnit 4 to JUnit 5
     add 4586a1c  [UIMA-6372] Upgrade from JUnit 3 to JUnit 4 to JUnit 5
     add 0fb68a3  [UIMA-6372] Upgrade from JUnit 3 to JUnit 4 to JUnit 5
     add 9f7e76f  [UIMA-6372] Upgrade from JUnit 3 to JUnit 4 to JUnit 5
     add 07fd52d  Merge pull request #128 from apache/refactoring/UIMA-6372-Upgrade-from-JUnit-3-to-JUnit-4-to-JUnit-5
     add 0bbe2e1  [UIMA-6373] Format UIMA Core Java SDK codebase
     add 9144c9f  [UIMA-6373] Format UIMA Core Java SDK codebase
     add e68d945  [UIMA-6373] Format UIMA Core Java SDK codebase
     add 1173e4b  [UIMA-6373] Format UIMA Core Java SDK codebase
     add 246378b  [UIMA-6373] Format UIMA Core Java SDK codebase
     add 0e946c8  [UIMA-6373] Format UIMA Core Java SDK codebase
     add 8c1ea2c  [UIMA-6373] Format UIMA Core Java SDK codebase
     add 9578536  [UIMA-6373] Format UIMA Core Java SDK codebase
     add 496df1c  [UIMA-6373] Format UIMA Core Java SDK codebase
     add a6e4208  [UIMA-6373] Format UIMA Core Java SDK codebase
     add 3714295  [UIMA-6373] Format UIMA Core Java SDK codebase
     add db5e67f  [UIMA-6373] Format UIMA Core Java SDK codebase
     add e1d5b6b  [UIMA-6373] Format UIMA Core Java SDK codebase
     add 3da17c1  [UIMA-6373] Format UIMA Core Java SDK codebase
     add 1688f0a  [UIMA-6373] Format UIMA Core Java SDK codebase
     add 2d9b55e  [UIMA-6373] Format UIMA Core Java SDK codebase
     add 1224bba  [UIMA-6373] Format UIMA Core Java SDK codebase
     add c1fa12f  [UIMA-6373] Format UIMA Core Java SDK codebase
     add 7c0998e  [UIMA-6373] Format UIMA Core Java SDK codebase
     add b6fb4fb  [UIMA-6373] Format UIMA Core Java SDK codebase
     add 2581125  [UIMA-6373] Format UIMA Core Java SDK codebase
     add 149824f  [UIMA-6373] Format UIMA Core Java SDK codebase
     add 69caee3  [UIMA-6373] Format UIMA Core Java SDK codebase
     add ccfbb69  [UIMA-6373] Format UIMA Core Java SDK codebase
     add 71d7756  [UIMA-6373] Format UIMA Core Java SDK codebase
     add 42ba85b  [UIMA-6373] Format UIMA Core Java SDK codebase
     add 26114e0  Merge pull request #129 from apache/refactoring/UIMA-6373-Format-UIMA-Core-Java-SDK-codebase
     add 7e340ba  [UIMA-6372] Upgrade from JUnit 3 to JUnit 4 to JUnit 5
     add d3048a6  [UIMA-6373] Format UIMA Core Java SDK codebase
     add 41ab021  [UIMA-6373] Format UIMA Core Java SDK codebase
     add 2835dce  [UIMA-6372] Upgrade from JUnit 3 to JUnit 4 to JUnit 5
     add 8b4d620  [UIMA-6372] Upgrade from JUnit 3 to JUnit 4 to JUnit 5
     add 98f323d  [UIMA-6372] Upgrade from JUnit 3 to JUnit 4 to JUnit 5
     add 58f220a  Merge pull request #130 from apache/refactoring/UIMA-6372-Upgrade-from-JUnit-3-to-JUnit-4-to-JUnit-5
     new d60316a  Merge branch 'main' into bugfix/UIMA-6377-Spurious-multipleReferencesAllowed-warning-when-serializing-empty-arrays

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .gitignore                                         |    2 +
 PearPackagingMavenPlugin/.gitignore                |    2 +
 PearPackagingMavenPlugin/pom.xml                   |    2 +-
 .../apache/uima/pear/tools/PearPackagingMojo.java  |    7 +-
 aggregate-uimaj-docbooks/pom.xml                   |    2 +-
 aggregate-uimaj-eclipse-plugins/pom.xml            |    2 +-
 aggregate-uimaj/pom.xml                            |    2 +-
 installEclipseSettings.sh                          |   71 +
 jVinci/.gitignore                                  |    2 +
 jVinci/pom.xml                                     |    2 +-
 .../org/apache/vinci/transport/Attributes.java     |    4 +-
 .../org/apache/vinci/transport/BaseServer.java     |    3 +-
 .../apache/vinci/transport/BaseServerRunnable.java |    1 +
 .../org/apache/vinci/transport/ErrorFrame.java     |    1 -
 .../java/org/apache/vinci/transport/Frame.java     |    3 +
 .../java/org/apache/vinci/transport/FrameLeaf.java |    1 +
 .../apache/vinci/transport/LeafCastException.java  |    1 -
 .../vinci/transport/SimpleTransportable.java       |    2 +
 .../org/apache/vinci/transport/VinciClient.java    |    3 +-
 .../org/apache/vinci/transport/VinciFrame.java     |    7 +
 .../vinci/transport/VinciServableAdapter.java      |    3 +
 .../org/apache/vinci/transport/VinciServer.java    |    2 +
 .../vinci/transport/VinciServerRunnable.java       |    1 +
 .../apache/vinci/transport/XTalkTransporter.java   |    2 +
 .../vinci/transport/context/VinciContext.java      |    1 +
 .../apache/vinci/transport/document/AFrame.java    |    5 +
 .../vinci/transport/document/AFrameLeaf.java       |    2 +
 .../vinci/transport/document/XMLToVinci.java       |   18 +-
 .../vinci/transport/document/XMLToXTalk.java       |    3 +
 .../vinci/transport/document/XTalkToSAX.java       |    3 +-
 .../transport/util/Base64FormatException.java      |    1 -
 .../vinci/transport/vns/client/ResolveResult.java  |    4 +
 .../vinci/transport/vns/client/ServeonResult.java  |    2 +
 .../vinci/transport/vns/service/Service.java       |    4 +
 .../vinci/transport/vns/service/ServiceAlias.java  |    1 +
 .../vinci/transport/vns/service/ServiceInfo.java   |    1 +
 .../transport/vns/service/ServiceInterface.java    |    2 +-
 .../transport/vns/service/ServiceRegistry.java     |    4 +-
 .../apache/vinci/transport/vns/service/VNS.java    |    7 +
 jcasgen-maven-plugin/.gitignore                    |    2 +
 jcasgen-maven-plugin/pom.xml                       |   13 +-
 .../uima/tools/jcasgen/maven/JCasGenM2ETest.java   |   12 +-
 .../uima/tools/jcasgen/maven/JCasGenMojo.java      |    6 +
 .../uima/tools/jcasgen/maven/JCasGenMojoTest.java  |   22 +-
 .../src/test/resources/invalidFeature/pom.xml      |   88 +-
 pom.xml                                            |    5 +-
 src/main/eclipse/org.eclipse.jdt.core.prefs        |  398 +
 src/main/eclipse/org.eclipse.jdt.ui.prefs          |  121 +
 uima-doc-v3-users-guide/pom.xml                    |    2 +-
 uima-docbook-overview-and-setup/pom.xml            |    2 +-
 uima-docbook-references/pom.xml                    |    2 +-
 uima-docbook-tools/pom.xml                         |    2 +-
 uima-docbook-tutorials-and-users-guides/pom.xml    |    2 +-
 uimaj-adapter-soap/.gitignore                      |    2 +
 uimaj-adapter-soap/pom.xml                         |    2 +-
 uimaj-adapter-vinci/.gitignore                     |    2 +
 uimaj-adapter-vinci/pom.xml                        |   13 +-
 .../uima/adapter/vinci/CASTransportable.java       |   19 +-
 .../vinci/VinciAnalysisEngineServiceAdapter.java   |    1 +
 .../VinciBinaryAnalysisEngineServiceStub.java      |    5 +
 .../VinciBinaryAnalysisEngineService_impl.java     |    3 +
 .../apache/uima/adapter/vinci/util/Descriptor.java |    1 +
 .../adapter/vinci/util/SaxVinciFrameBuilder.java   |    7 +-
 .../vinci/util/UimaSaxVinciFrameBuilder.java       |    1 +
 .../uima/adapter/vinci/util/VinciSaxParser.java    |    7 +-
 .../VinciAnalysisEngineServiceAdapterTest.java     |   78 +-
 uimaj-bootstrap/.gitignore                         |    2 +
 uimaj-bootstrap/pom.xml                            |    2 +-
 .../org/apache/uima/bootstrap/UimaBootstrap.java   |  417 +-
 uimaj-component-test-util/.gitignore               |    2 +
 uimaj-component-test-util/pom.xml                  |   11 +-
 .../AnnotatorPerformanceTester.java                |    4 +-
 .../uima/test/junit_extension/AnnotatorTester.java |   77 +-
 .../junit_extension/PerformanceTestResult.java     |   36 +-
 uimaj-core/.gitignore                              |    2 +
 uimaj-core/pom.xml                                 |   12 +-
 .../org/apache/uima/CompositeResourceFactory.java  |    6 +-
 .../src/main/java/org/apache/uima/Constants.java   |   15 +-
 .../main/java/org/apache/uima/I18nExceptionI.java  |  200 +-
 .../apache/uima/InternationalizedException.java    |  381 +-
 .../uima/InternationalizedRuntimeException.java    |   68 +-
 .../main/java/org/apache/uima/List_of_ints.java    |  864 +-
 .../main/java/org/apache/uima/ResourceFactory.java |   37 +-
 .../org/apache/uima/ResourceSpecifierFactory.java  |  141 +-
 .../main/java/org/apache/uima/UIMAException.java   |   97 +-
 .../main/java/org/apache/uima/UIMAFramework.java   |  511 +-
 .../java/org/apache/uima/UIMARuntimeException.java |  144 +-
 .../apache/uima/UIMA_IllegalArgumentException.java |   17 +-
 .../apache/uima/UIMA_IllegalStateException.java    |   40 +-
 .../uima/UIMA_UnsupportedOperationException.java   |   20 +-
 .../src/main/java/org/apache/uima/UimaContext.java |  241 +-
 .../java/org/apache/uima/UimaContextAdmin.java     |   71 +-
 .../java/org/apache/uima/UimaContextHolder.java    |   24 +-
 .../java/org/apache/uima/UimaSerializable.java     |   99 +-
 .../java/org/apache/uima/UimaSerializableFSs.java  |   75 +-
 .../uima/analysis_component/AnalysisComponent.java |   24 +-
 .../AnalysisComponent_ImplBase.java                |   27 +-
 .../analysis_component/Annotator_ImplBase.java     |    3 +
 .../analysis_component/CasAnnotator_ImplBase.java  |   17 +-
 .../analysis_component/CasMultiplier_ImplBase.java |   24 +-
 .../analysis_component/JCasAnnotator_ImplBase.java |    9 +-
 .../JCasMultiplier_ImplBase.java                   |   16 +-
 .../uima/analysis_engine/AnalysisEngine.java       |  286 +-
 .../analysis_engine/AnalysisEngineDescription.java |  106 +-
 .../analysis_engine/AnalysisEngineManagement.java  |   26 +-
 .../AnalysisEngineProcessException.java            |   29 +-
 .../analysis_engine/AnalysisEngineServiceStub.java |   20 +-
 .../uima/analysis_engine/AnalysisProcessData.java  |   12 +-
 .../apache/uima/analysis_engine/CasIterator.java   |   11 +-
 .../apache/uima/analysis_engine/JCasIterator.java  |   11 +-
 .../ResultNotSupportedException.java               |   20 +-
 .../uima/analysis_engine/ResultSpecification.java  |  302 +-
 .../uima/analysis_engine/TaeDescription.java       |    1 -
 .../uima/analysis_engine/TextAnalysisEngine.java   |    1 -
 .../apache/uima/analysis_engine/TypeOrFeature.java |   15 +-
 .../annotator/AnnotatorConfigurationException.java |   27 +-
 .../annotator/AnnotatorContext.java                |  186 +-
 .../annotator/AnnotatorContextException.java       |   20 +-
 .../AnnotatorInitializationException.java          |   23 +-
 .../annotator/AnnotatorProcessException.java       |   18 +-
 .../annotator/Annotator_ImplBase.java              |   19 +-
 .../analysis_engine/annotator/BaseAnnotator.java   |   17 +-
 .../annotator/GenericAnnotator.java                |    4 +-
 .../annotator/GenericAnnotator_ImplBase.java       |    6 +-
 .../analysis_engine/annotator/JTextAnnotator.java  |    4 +-
 .../annotator/JTextAnnotator_ImplBase.java         |    2 +-
 .../analysis_engine/annotator/TextAnnotator.java   |    4 +-
 .../org/apache/uima/analysis_engine/asb/ASB.java   |   48 +-
 .../uima/analysis_engine/asb/impl/ASB_impl.java    |  205 +-
 .../analysis_engine/asb/impl/FlowContainer.java    |   34 +-
 .../asb/impl/FlowControllerContainer.java          |  115 +-
 .../impl/AggregateAnalysisEngine_impl.java         |  109 +-
 .../impl/AnalysisEngineDescription_impl.java       |  273 +-
 .../impl/AnalysisEngineImplBase.java               |  255 +-
 .../impl/AnalysisEngineManagementImpl.java         |  101 +-
 .../impl/AnalysisEngineManagementImplMBean.java    |   12 +-
 .../impl/AnalysisProcessData_impl.java             |   20 +-
 .../impl/AnnotatorContext_impl.java                |   49 +-
 .../analysis_engine/impl/EmptyCasIterator.java     |    3 +
 .../analysis_engine/impl/JCasIteratorWrapper.java  |    3 +
 .../impl/MultiprocessingAnalysisEngine_impl.java   |  160 +-
 .../impl/PearAnalysisEngineWrapper.java            |  655 +-
 .../impl/PrimitiveAnalysisEngine_impl.java         |  315 +-
 .../impl/ResultSpecification_impl.java             |  305 +-
 .../apache/uima/analysis_engine/impl/RsFeat.java   |  106 +-
 .../apache/uima/analysis_engine/impl/RsFeats.java  |  265 +-
 .../uima/analysis_engine/impl/RsFullFeatNames.java |  122 +-
 .../apache/uima/analysis_engine/impl/RsLang.java   |  115 +-
 .../apache/uima/analysis_engine/impl/RsLangs.java  |  728 +-
 .../apache/uima/analysis_engine/impl/RsType.java   |  294 +-
 .../uima/analysis_engine/impl/RsTypesMap.java      |  553 +-
 .../analysis_engine/impl/TaeDescription_impl.java  |    4 +-
 .../analysis_engine/impl/TypeOrFeature_impl.java   |   36 +-
 .../impl/UimacppAnalysisEngineImpl.java            |  126 +-
 .../AnalysisComponentAdapterFactory.java           |    7 +-
 .../impl/compatibility/AnnotatorAdapter.java       |   41 +-
 .../impl/compatibility/CasConsumerAdapter.java     |   21 +-
 .../compatibility/CollectionReaderAdapter.java     |   23 +-
 .../metadata/AnalysisEngineMetaData.java           |   26 +-
 .../metadata/CapabilityLanguageFlow.java           |   13 +-
 .../uima/analysis_engine/metadata/FixedFlow.java   |   20 +-
 .../analysis_engine/metadata/FlowConstraints.java  |   10 +-
 .../metadata/FlowControllerDeclaration.java        |   32 +-
 .../uima/analysis_engine/metadata/SofaMapping.java |   18 +-
 .../metadata/impl/AnalysisEngineMetaData_impl.java |   55 +-
 .../metadata/impl/CapabilityLanguageFlow_impl.java |   19 +-
 .../metadata/impl/FixedFlow_impl.java              |    5 +
 .../impl/FlowControllerDeclaration_impl.java       |   32 +-
 .../metadata/impl/SofaMapping_impl.java            |   15 +-
 .../service/impl/AnalysisEngineServiceAdapter.java |   20 +-
 .../service/impl/AnalysisEngineService_impl.java   |   25 +-
 .../service/impl/ServiceDataCargo.java             |   33 +-
 .../main/java/org/apache/uima/cas/AbstractCas.java |    3 +-
 .../org/apache/uima/cas/AbstractCas_ImplBase.java  |    5 +-
 .../java/org/apache/uima/cas/AnnotationBaseFS.java |    4 +-
 .../src/main/java/org/apache/uima/cas/ArrayFS.java |   42 +-
 .../java/org/apache/uima/cas/BooleanArrayFS.java   |   14 +-
 .../main/java/org/apache/uima/cas/ByteArrayFS.java |   13 +-
 .../src/main/java/org/apache/uima/cas/CAS.java     |  633 +-
 .../java/org/apache/uima/cas/CASException.java     |   23 +-
 .../org/apache/uima/cas/CASRuntimeException.java   |  459 +-
 .../main/java/org/apache/uima/cas/CasOwner.java    |    5 +-
 .../java/org/apache/uima/cas/CommonArrayFS.java    |   52 +-
 .../org/apache/uima/cas/ConstraintFactory.java     |    7 +-
 .../java/org/apache/uima/cas/DoubleArrayFS.java    |    8 +-
 .../org/apache/uima/cas/FSBooleanConstraint.java   |  101 +-
 .../java/org/apache/uima/cas/FSComparators.java    |   66 +-
 .../src/main/java/org/apache/uima/cas/FSIndex.java |  229 +-
 .../org/apache/uima/cas/FSIndexRepository.java     |  176 +-
 .../main/java/org/apache/uima/cas/FSIterator.java  |  203 +-
 .../src/main/java/org/apache/uima/cas/Feature.java |   28 +-
 .../main/java/org/apache/uima/cas/FeaturePath.java |  473 +-
 .../java/org/apache/uima/cas/FeatureStructure.java |   81 +-
 .../java/org/apache/uima/cas/FeatureValuePath.java |   72 +-
 .../java/org/apache/uima/cas/FloatArrayFS.java     |   12 +-
 .../main/java/org/apache/uima/cas/IntArrayFS.java  |   14 +-
 .../main/java/org/apache/uima/cas/LongArrayFS.java |   15 +-
 .../src/main/java/org/apache/uima/cas/Marker.java  |   53 +-
 .../java/org/apache/uima/cas/ParsingException.java |    5 +-
 .../main/java/org/apache/uima/cas/SelectFSs.java   | 1835 +++--
 .../java/org/apache/uima/cas/SerialFormat.java     |   53 +-
 .../java/org/apache/uima/cas/ShortArrayFS.java     |   13 +-
 .../src/main/java/org/apache/uima/cas/SofaFS.java  |   45 +-
 .../src/main/java/org/apache/uima/cas/SofaID.java  |   16 +-
 .../java/org/apache/uima/cas/StringArrayFS.java    |   73 +-
 .../src/main/java/org/apache/uima/cas/Type.java    |   25 +-
 .../main/java/org/apache/uima/cas/TypeClass.java   |   51 +-
 .../java/org/apache/uima/cas/TypeNameSpace.java    |    2 -
 .../main/java/org/apache/uima/cas/TypeSystem.java  |   40 +-
 .../apache/uima/cas/admin/CASAdminException.java   |   35 +-
 .../java/org/apache/uima/cas/admin/CASFactory.java |   15 +-
 .../java/org/apache/uima/cas/admin/CASMgr.java     |   17 +-
 .../apache/uima/cas/admin/FSIndexComparator.java   |   27 +-
 .../uima/cas/admin/FSIndexRepositoryMgr.java       |   15 +-
 .../org/apache/uima/cas/admin/LinearTypeOrder.java |   27 +-
 .../uima/cas/admin/LinearTypeOrderBuilder.java     |   10 +-
 .../org/apache/uima/cas/admin/TypeSystemMgr.java   |  114 +-
 .../main/java/org/apache/uima/cas/impl/AllFSs.java |  383 +-
 .../apache/uima/cas/impl/AllowPreexistingFS.java   |   48 +-
 .../apache/uima/cas/impl/AnnotationBaseImpl.java   |   61 +-
 .../org/apache/uima/cas/impl/AnnotationImpl.java   |   61 +-
 .../uima/cas/impl/AnnotationImplException.java     |   12 +-
 .../apache/uima/cas/impl/AnnotationTreeImpl.java   |    4 +-
 .../uima/cas/impl/AnnotationTreeNodeImpl.java      |   13 +-
 .../org/apache/uima/cas/impl/BinaryCasSerDes.java  | 4049 +++++-----
 .../org/apache/uima/cas/impl/BinaryCasSerDes4.java | 3150 ++++----
 .../org/apache/uima/cas/impl/BinaryCasSerDes6.java | 2943 +++----
 .../apache/uima/cas/impl/BooleanArrayFSImpl.java   |   62 +-
 .../apache/uima/cas/impl/BooleanConstraint.java    |  130 +-
 .../org/apache/uima/cas/impl/BuiltinTypeKinds.java |  358 +-
 .../org/apache/uima/cas/impl/ByteArrayFSImpl.java  |   62 +-
 .../java/org/apache/uima/cas/impl/ByteHeap.java    |  237 +-
 .../uima/cas/impl/CASCompleteSerializer.java       |    3 +-
 .../java/org/apache/uima/cas/impl/CASImpl.java     | 3825 ++++-----
 .../org/apache/uima/cas/impl/CASMgrSerializer.java |  147 +-
 .../org/apache/uima/cas/impl/CASSerializer.java    |  756 +-
 .../java/org/apache/uima/cas/impl/CasCompare.java  | 4436 ++++++-----
 .../org/apache/uima/cas/impl/CasSeqAddrMaps.java   |  127 +-
 .../apache/uima/cas/impl/CasSerializerSupport.java | 2871 +++----
 .../java/org/apache/uima/cas/impl/CasState.java    |  117 +-
 .../apache/uima/cas/impl/CasTypeSystemMapper.java  |  143 +-
 .../apache/uima/cas/impl/CommonArrayFSImpl.java    |   61 +-
 .../org/apache/uima/cas/impl/CommonAuxHeap.java    |  402 +-
 .../org/apache/uima/cas/impl/CommonSerDes.java     |  566 +-
 .../uima/cas/impl/CommonSerDesSequential.java      |  432 +-
 .../uima/cas/impl/ConjunctiveConstraint.java       |    3 +-
 .../uima/cas/impl/ConstraintFactoryImpl.java       |  116 +-
 .../apache/uima/cas/impl/CopyOnWriteIndexPart.java |  117 +-
 .../uima/cas/impl/DebugFSLogicalStructure.java     |   29 +-
 .../apache/uima/cas/impl/DebugNameValuePair.java   |    1 +
 .../apache/uima/cas/impl/DeferredIndexUpdates.java |  146 +-
 .../uima/cas/impl/DisjunctiveConstraint.java       |    3 +-
 .../apache/uima/cas/impl/DoubleArrayFSImpl.java    |   62 +-
 .../apache/uima/cas/impl/EmbeddedConstraint.java   |    2 +
 .../uima/cas/impl/FSBooleanConstraintImpl.java     |  132 +-
 .../org/apache/uima/cas/impl/FSClassRegistry.java  | 1770 +++--
 .../org/apache/uima/cas/impl/FSComparator.java     |    5 +-
 .../java/org/apache/uima/cas/impl/FSGenerator.java |   73 +-
 .../org/apache/uima/cas/impl/FSImplComparator.java |    8 +-
 .../uima/cas/impl/FSIndexComparatorImpl.java       |   81 +-
 .../uima/cas/impl/FSIndexRepositoryImpl.java       | 1695 ++--
 .../apache/uima/cas/impl/FSIntConstraintImpl.java  |    7 +
 .../apache/uima/cas/impl/FSIteratorImplBase.java   |  223 +-
 .../uima/cas/impl/FSStringConstraintImpl.java      |    1 -
 .../apache/uima/cas/impl/FSTypeConstraintImpl.java |  112 +-
 .../org/apache/uima/cas/impl/FSsTobeAddedback.java |  109 +-
 .../java/org/apache/uima/cas/impl/FeatureImpl.java |  267 +-
 .../uima/cas/impl/FeatureImpl_jcas_only.java       |   92 +-
 .../org/apache/uima/cas/impl/FeaturePathImpl.java  |  443 +-
 .../apache/uima/cas/impl/FeatureStructureImpl.java |   12 +-
 .../uima/cas/impl/FeatureStructureImplC.java       | 1868 +++--
 .../apache/uima/cas/impl/FeatureValuePathImpl.java | 2125 ++---
 .../org/apache/uima/cas/impl/FilteredIterator.java |   49 +-
 .../org/apache/uima/cas/impl/FloatArrayFSImpl.java |   62 +-
 .../org/apache/uima/cas/impl/FsGenerator3.java     |   64 +-
 .../org/apache/uima/cas/impl/FsGeneratorArray.java |   65 +-
 .../apache/uima/cas/impl/FsIndex_annotation.java   |  316 +-
 .../java/org/apache/uima/cas/impl/FsIndex_bag.java |  171 +-
 .../org/apache/uima/cas/impl/FsIndex_flat.java     |  466 +-
 .../org/apache/uima/cas/impl/FsIndex_iicp.java     | 1263 +--
 .../apache/uima/cas/impl/FsIndex_set_sorted.java   |  572 +-
 .../apache/uima/cas/impl/FsIndex_singletype.java   |  212 +-
 .../org/apache/uima/cas/impl/FsIndex_snapshot.java |  344 +-
 .../cas/impl/FsIterator_aggregation_common.java    |  604 +-
 .../apache/uima/cas/impl/FsIterator_backwards.java |  296 +-
 .../org/apache/uima/cas/impl/FsIterator_bag.java   |  404 +-
 .../apache/uima/cas/impl/FsIterator_bag_pear.java  |   97 +-
 .../apache/uima/cas/impl/FsIterator_limited.java   |  457 +-
 .../uima/cas/impl/FsIterator_multiple_indexes.java |  414 +-
 .../uima/cas/impl/FsIterator_set_sorted2.java      |  677 +-
 .../uima/cas/impl/FsIterator_set_sorted_pear.java  |   99 +-
 .../uima/cas/impl/FsIterator_singletype.java       |  203 +-
 .../uima/cas/impl/FsIterator_subtypes_ordered.java | 1266 +--
 .../cas/impl/FsIterator_subtypes_snapshot.java     |  557 +-
 .../main/java/org/apache/uima/cas/impl/Heap.java   |  627 +-
 .../main/java/org/apache/uima/cas/impl/Id2FS.java  |  704 +-
 .../org/apache/uima/cas/impl/IntArrayFSImpl.java   |   62 +-
 .../org/apache/uima/cas/impl/IntConstraint.java    |    2 +
 .../uima/cas/impl/LLUnambiguousIteratorImpl.java   |   31 +-
 .../uima/cas/impl/LinearTypeOrderBuilderImpl.java  |  152 +-
 .../org/apache/uima/cas/impl/LongArrayFSImpl.java  |   62 +-
 .../java/org/apache/uima/cas/impl/LongHeap.java    |  228 +-
 .../java/org/apache/uima/cas/impl/LongSet.java     |  155 +-
 .../java/org/apache/uima/cas/impl/LowLevelCAS.java |  127 +-
 .../apache/uima/cas/impl/LowLevelException.java    |   13 +-
 .../org/apache/uima/cas/impl/LowLevelIndex.java    |  150 +-
 .../uima/cas/impl/LowLevelIndexRepository.java     |   11 +-
 .../org/apache/uima/cas/impl/LowLevelIterator.java |   87 +-
 .../uima/cas/impl/LowLevelIterator_empty.java      |  176 +-
 .../apache/uima/cas/impl/LowLevelTypeSystem.java   |   45 +-
 .../java/org/apache/uima/cas/impl/MarkerImpl.java  |   52 +-
 .../apache/uima/cas/impl/MethodHandlesLookup.java  |   65 +-
 .../apache/uima/cas/impl/OutOfTypeSystemData.java  |   27 +-
 .../org/apache/uima/cas/impl/PathConstraint.java   |    1 -
 .../org/apache/uima/cas/impl/SelectFSs_impl.java   | 3612 ++++-----
 .../org/apache/uima/cas/impl/Serialization.java    |  334 +-
 .../org/apache/uima/cas/impl/ShortArrayFSImpl.java |   62 +-
 .../java/org/apache/uima/cas/impl/ShortHeap.java   |  214 +-
 .../java/org/apache/uima/cas/impl/SlotKinds.java   |   90 +-
 .../apache/uima/cas/impl/SlotKindsConstants.java   |  139 +-
 .../java/org/apache/uima/cas/impl/SofaFSImpl.java  |   61 +-
 .../apache/uima/cas/impl/StringArrayFSImpl.java    |   62 +-
 .../org/apache/uima/cas/impl/StringConstraint.java |    2 +
 .../java/org/apache/uima/cas/impl/StringHeap.java  |  126 +-
 .../cas/impl/StringHeapDeserializationHelper.java  |    5 +-
 .../java/org/apache/uima/cas/impl/StringSet.java   |  158 +-
 .../java/org/apache/uima/cas/impl/Subiterator.java | 1036 ++-
 .../java/org/apache/uima/cas/impl/TypeImpl.java    |  984 +--
 .../org/apache/uima/cas/impl/TypeImpl_annot.java   |   74 +-
 .../apache/uima/cas/impl/TypeImpl_annotBase.java   |   75 +-
 .../org/apache/uima/cas/impl/TypeImpl_array.java   |  317 +-
 .../org/apache/uima/cas/impl/TypeImpl_list.java    |   75 +-
 .../apache/uima/cas/impl/TypeImpl_primitive.java   |   78 +-
 .../org/apache/uima/cas/impl/TypeImpl_string.java  |   97 +-
 .../uima/cas/impl/TypeImpl_stringSubtype.java      |  104 +-
 .../apache/uima/cas/impl/TypeNameSpaceImpl.java    |    1 +
 .../org/apache/uima/cas/impl/TypeSystem2Xml.java   |   74 +-
 .../apache/uima/cas/impl/TypeSystemConstants.java  |  236 +-
 .../org/apache/uima/cas/impl/TypeSystemImpl.java   | 2783 +++----
 .../org/apache/uima/cas/impl/TypeSystemUtils.java  |   87 +-
 .../org/apache/uima/cas/impl/UimaDecompiler.java   |  704 +-
 .../org/apache/uima/cas/impl/XCASDeserializer.java |  253 +-
 .../apache/uima/cas/impl/XCASParsingException.java |   52 +-
 .../org/apache/uima/cas/impl/XCASSerializer.java   |  156 +-
 .../apache/uima/cas/impl/XMLTypeSystemConsts.java  |   16 +-
 .../apache/uima/cas/impl/XmiCasDeserializer.java   | 1462 ++--
 .../org/apache/uima/cas/impl/XmiCasSerializer.java | 1035 +--
 .../uima/cas/impl/XmiSerializationSharedData.java  |  445 +-
 .../org/apache/uima/cas/text/AnnotationFS.java     |   69 +-
 .../org/apache/uima/cas/text/AnnotationIndex.java  |  245 +-
 .../apache/uima/cas/text/AnnotationPredicates.java |   15 +-
 .../org/apache/uima/cas/text/AnnotationTree.java   |    4 -
 .../apache/uima/cas/text/AnnotationTreeNode.java   |    4 -
 .../java/org/apache/uima/cas/text/Language.java    |    5 +-
 .../java/org/apache/uima/cas_data/CasData.java     |    6 +-
 .../org/apache/uima/cas_data/FeatureStructure.java |   25 +-
 .../org/apache/uima/cas_data/FeatureValue.java     |    2 +-
 .../org/apache/uima/cas_data/PrimitiveArrayFS.java |    8 +-
 .../org/apache/uima/cas_data/PrimitiveValue.java   |    7 +-
 .../org/apache/uima/cas_data/ReferenceArrayFS.java |    4 +-
 .../org/apache/uima/cas_data/ReferenceValue.java   |    4 +-
 .../org/apache/uima/cas_data/impl/CasDataImpl.java |   17 +-
 .../apache/uima/cas_data/impl/CasDataToXCas.java   |   16 +-
 .../apache/uima/cas_data/impl/CasDataUtils.java    |  118 +-
 .../uima/cas_data/impl/FeatureStructureImpl.java   |   25 +-
 .../uima/cas_data/impl/PrimitiveArrayFSImpl.java   |   14 +-
 .../uima/cas_data/impl/PrimitiveValueImpl.java     |   28 +-
 .../uima/cas_data/impl/ReferenceArrayFSImpl.java   |   11 +-
 .../uima/cas_data/impl/ReferenceValueImpl.java     |   11 +-
 .../cas_data/impl/XCasToCasDataSaxHandler.java     |   23 +-
 .../org/apache/uima/collection/CasConsumer.java    |    7 +-
 .../uima/collection/CasConsumerDescription.java    |    6 +-
 .../uima/collection/CasConsumer_ImplBase.java      |   31 +-
 .../org/apache/uima/collection/CasInitializer.java |   11 +-
 .../uima/collection/CasInitializerDescription.java |    3 +-
 .../uima/collection/CasInitializer_ImplBase.java   |    9 +-
 .../uima/collection/CollectionException.java       |   20 +-
 .../collection/CollectionProcessingEngine.java     |   43 +-
 .../collection/CollectionProcessingManager.java    |   58 +-
 .../apache/uima/collection/CollectionReader.java   |   20 +-
 .../collection/CollectionReaderDescription.java    |   10 +-
 .../uima/collection/CollectionReader_ImplBase.java |   20 +-
 .../uima/collection/EntityProcessStatus.java       |   20 +-
 .../uima/collection/StatusCallbackListener.java    |    5 +-
 .../apache/uima/collection/base_cpm/BaseCPM.java   |   68 +-
 .../collection/base_cpm/BaseCollectionReader.java  |   22 +-
 .../base_cpm/BaseStatusCallbackListener.java       |   12 +-
 .../base_cpm/CasDataCollectionReader.java          |   18 +-
 .../base_cpm/CasDataCollectionReader_ImplBase.java |    4 +
 .../uima/collection/base_cpm/CasDataConsumer.java  |   12 +-
 .../base_cpm/CasDataConsumer_ImplBase.java         |    9 +-
 .../collection/base_cpm/CasDataInitializer.java    |   13 +-
 .../base_cpm/CasDataInitializer_ImplBase.java      |   10 +-
 .../uima/collection/base_cpm/CasDataProcessor.java |   11 +-
 .../base_cpm/CasDataStatusCallbackListener.java    |    5 +-
 .../collection/base_cpm/CasObjectProcessor.java    |   13 +-
 .../uima/collection/base_cpm/CasProcessor.java     |   16 +-
 .../base_cpm/RecoverableCollectionReader.java      |   15 +-
 .../uima/collection/base_cpm/SkipCasException.java |    2 -
 .../uima/collection/base_cpm/SynchPoint.java       |   24 +-
 .../impl/CasConsumerDescription_impl.java          |   22 +-
 .../impl/CasInitializerDescription_impl.java       |   17 +-
 .../impl/CollectionReaderDescription_impl.java     |   29 +-
 ...CasProcessorConfigurationParameterSettings.java |   12 +-
 .../metadata/CasProcessorDeploymentParam.java      |   45 +-
 .../metadata/CasProcessorDeploymentParams.java     |   29 +-
 .../metadata/CasProcessorErrorHandling.java        |   22 +-
 .../metadata/CasProcessorErrorRateThreshold.java   |   38 +-
 .../collection/metadata/CasProcessorExecArg.java   |   14 +-
 .../collection/metadata/CasProcessorExecArgs.java  |   23 +-
 .../metadata/CasProcessorExecutable.java           |   39 +-
 .../collection/metadata/CasProcessorFilter.java    |   16 +-
 .../metadata/CasProcessorMaxRestarts.java          |   37 +-
 .../metadata/CasProcessorRunInSeperateProcess.java |    8 +-
 .../metadata/CasProcessorRuntimeEnvParam.java      |   28 +-
 .../collection/metadata/CasProcessorTimeout.java   |    8 +-
 .../uima/collection/metadata/CpeCasProcessor.java  |  196 +-
 .../uima/collection/metadata/CpeCasProcessors.java |   89 +-
 .../uima/collection/metadata/CpeCheckpoint.java    |   32 +-
 .../collection/metadata/CpeCollectionReader.java   |   35 +-
 .../CpeCollectionReaderCasInitializer.java         |   22 +-
 .../metadata/CpeCollectionReaderIterator.java      |   25 +-
 .../metadata/CpeComponentDescriptor.java           |   45 +-
 .../uima/collection/metadata/CpeConfiguration.java |   75 +-
 .../uima/collection/metadata/CpeDescription.java   |  188 +-
 .../uima/collection/metadata/CpeInclude.java       |    8 +-
 .../collection/metadata/CpeLocalCasProcessor.java  |   36 +-
 .../metadata/CpeResourceManagerConfiguration.java  |    8 +-
 .../uima/collection/metadata/CpeSofaMapping.java   |   14 +-
 .../uima/collection/metadata/CpeSofaMappings.java  |    7 +-
 .../apache/uima/collection/metadata/CpeTimer.java  |   11 +-
 .../uima/collection/metadata/NameValuePair.java    |    8 +-
 .../uima/collection/metadata/OutputQueue.java      |   15 +-
 .../uima/examples/SourceDocumentInformation.java   |    2 +-
 .../uima/flow/CasFlowController_ImplBase.java      |   10 +-
 .../org/apache/uima/flow/CasFlow_ImplBase.java     |   36 +-
 .../src/main/java/org/apache/uima/flow/Flow.java   |   49 +-
 .../java/org/apache/uima/flow/FlowController.java  |   56 +-
 .../uima/flow/FlowControllerDescription.java       |    2 +-
 .../apache/uima/flow/FlowController_ImplBase.java  |   29 +-
 .../uima/flow/JCasFlowController_ImplBase.java     |   12 +-
 .../org/apache/uima/flow/JCasFlow_ImplBase.java    |   33 +-
 .../java/org/apache/uima/flow/ParallelStep.java    |   19 +-
 .../main/java/org/apache/uima/flow/SimpleStep.java |    5 +-
 .../apache/uima/flow/SimpleStepWithResultSpec.java |   21 +-
 .../flow/impl/AnalysisSequenceCapabilityNode.java  |   21 +-
 .../impl/CapabilityLanguageFlowController.java     |  103 +-
 .../flow/impl/CapabilityLanguageFlowObject.java    |  364 +-
 .../apache/uima/flow/impl/FixedFlowController.java |  143 +-
 .../uima/flow/impl/FlowControllerContext_impl.java |   31 +-
 .../flow/impl/FlowControllerDescription_impl.java  |   16 +-
 .../uima/impl/AnalysisEngineFactory_impl.java      |    9 +-
 .../apache/uima/impl/CasConsumerFactory_impl.java  |   30 +-
 .../uima/impl/CasInitializerFactory_impl.java      |   29 +-
 .../apache/uima/impl/ChildUimaContext_impl.java    |   26 +-
 .../uima/impl/CollectionReaderFactory_impl.java    |   41 +-
 .../uima/impl/CompositeResourceFactory_impl.java   |   11 +-
 .../uima/impl/CustomResourceFactory_impl.java      |   58 +-
 .../uima/impl/ResourceSpecifierFactory_impl.java   |   84 +-
 .../org/apache/uima/impl/RootUimaContext_impl.java |   23 +-
 .../java/org/apache/uima/impl/SofaID_impl.java     |    4 +
 .../org/apache/uima/impl/UIMAFramework_impl.java   |   96 +-
 .../org/apache/uima/impl/UimaContext_ImplBase.java |  290 +-
 .../src/main/java/org/apache/uima/impl/Util.java   |   94 +-
 .../uima/internal/util/AnalysisEnginePool.java     |   59 +-
 .../org/apache/uima/internal/util/BinaryTree.java  |    1 -
 .../org/apache/uima/internal/util/BrowserUtil.java |   19 +-
 .../uima/internal/util/CharArraySpanMap.java       |    2 -
 .../apache/uima/internal/util/CharArrayString.java |   14 +-
 .../apache/uima/internal/util/CharacterUtils.java  |    5 +-
 .../org/apache/uima/internal/util/Class_TCCL.java  |  208 +-
 .../uima/internal/util/CommandLineParser.java      |    9 +-
 .../uima/internal/util/Common_hash_support.java    | 1103 +--
 .../uima/internal/util/ComparableFSIterator.java   |   80 +-
 .../uima/internal/util/CopyOnWriteObjHashSet.java  |  407 +-
 .../util/CopyOnWriteOrderedFsSet_array.java        |  309 +-
 .../uima/internal/util/EncodedPrintStream.java     |   10 +-
 .../org/apache/uima/internal/util/I18nUtil.java    |   33 +-
 .../org/apache/uima/internal/util/I18nx_impl.java  |  556 +-
 .../util/InstrumentationFacility_impl.java         |    7 +-
 .../internal/util/Int2IntArrayMapFixedSize.java    |  149 +-
 .../apache/uima/internal/util/Int2ObjHashMap.java  | 1215 ++-
 .../apache/uima/internal/util/Int2ObjListMap.java  |  133 +-
 .../apache/uima/internal/util/IntArrayUtils.java   |   30 +-
 .../org/apache/uima/internal/util/IntBitSet.java   |  646 +-
 .../apache/uima/internal/util/IntComparator.java   |    6 +-
 .../org/apache/uima/internal/util/IntHashSet.java  | 2088 ++---
 .../uima/internal/util/IntKeyValueIterator.java    |    2 +-
 .../apache/uima/internal/util/IntListIterator.java |   18 +-
 .../uima/internal/util/IntPointerIterator.java     |    4 +-
 .../java/org/apache/uima/internal/util/IntSet.java |   65 +-
 .../org/apache/uima/internal/util/IntStack.java    |   20 +-
 .../org/apache/uima/internal/util/IntVector.java   |  246 +-
 .../org/apache/uima/internal/util/JavaTimer.java   |    9 +-
 .../apache/uima/internal/util/JmxMBeanAgent.java   |  102 +-
 .../java/org/apache/uima/internal/util/Misc.java   | 2601 +++---
 .../internal/util/MsgLocalizationClassLoader.java  |  445 +-
 .../uima/internal/util/Obj2IntIdentityHashMap.java | 1184 +--
 .../org/apache/uima/internal/util/ObjHashSet.java  | 1404 ++--
 .../uima/internal/util/OrderedFsSet_array.java     | 1407 ++--
 .../uima/internal/util/OrderedFsSet_array2.java    | 4335 +++++-----
 .../java/org/apache/uima/internal/util/Pair.java   |  160 +-
 .../apache/uima/internal/util/PositiveIntSet.java  |  285 +-
 .../uima/internal/util/PositiveIntSet_impl.java    | 1524 ++--
 .../uima/internal/util/ReplaceStringInFiles.java   |   24 +-
 .../apache/uima/internal/util/ResourcePool.java    |   19 +-
 .../uima/internal/util/SerializationUtils.java     |   18 +-
 .../apache/uima/internal/util/SortedIntSet.java    |   19 +-
 .../apache/uima/internal/util/StringToIntMap.java  |    9 +-
 .../org/apache/uima/internal/util/StringUtils.java |   15 +-
 .../org/apache/uima/internal/util/SymbolTable.java |    5 +-
 .../uima/internal/util/TextAnalysisEnginePool.java |    9 +-
 .../uima/internal/util/TextStringTokenizer.java    |   16 +-
 .../apache/uima/internal/util/TextTokenizer.java   |   60 +-
 .../org/apache/uima/internal/util/TimeSpan.java    |   17 +-
 .../java/org/apache/uima/internal/util/Timer.java  |    1 -
 .../apache/uima/internal/util/UIMAClassLoader.java |  133 +-
 .../uima/internal/util/UIMALogFormatter.java       |    3 +-
 .../uima/internal/util/UIMAStreamHandler.java      |    1 +
 .../org/apache/uima/internal/util/UtilError.java   |    6 +-
 .../org/apache/uima/internal/util/Utilities.java   |   70 +-
 .../apache/uima/internal/util/WeakIdentityMap.java |  125 +-
 .../org/apache/uima/internal/util/XMLUtils.java    |  328 +-
 .../apache/uima/internal/util/XmlAttribute.java    |    2 +-
 .../apache/uima/internal/util/XmlElementName.java  |   12 +-
 .../internal/util/XmlElementNameAndContents.java   |   11 +-
 .../uima/internal/util/function/Consumer2.java     |   48 +-
 .../util/function/Consumer_T_withIOException.java  |   52 +-
 .../util/function/Consumer_withSaxException.java   |   52 +-
 .../internal/util/function/DeserBinaryIndexes.java |   52 +-
 .../util/function/IntConsumer_withIOException.java |   52 +-
 .../util/function/Runnable_withException.java      |   48 +-
 .../util/function/Runnable_withSaxException.java   |   52 +-
 .../uima/internal/util/function/package-info.java  |   48 +-
 .../internal/util/rb_trees/CompIntArrayRBT.java    |   11 +-
 .../uima/internal/util/rb_trees/Int2IntRBT.java    |  180 +-
 .../uima/internal/util/rb_trees/IntArrayRBT.java   |  464 +-
 .../internal/util/rb_trees/IntArrayRBTcommon.java  | 1628 ++--
 .../uima/internal/util/rb_trees/IntRBTArray.java   |   27 +-
 .../uima/internal/util/rb_trees/IntRBTNode.java    |    9 +-
 .../internal/util/rb_trees/IntRedBlackTree.java    |   13 +-
 .../uima/internal/util/rb_trees/RBTNode.java       |   19 +-
 .../uima/internal/util/rb_trees/RedBlackTree.java  |   23 +-
 .../src/main/java/org/apache/uima/jcas/JCas.java   |  628 +-
 .../java/org/apache/uima/jcas/JCasRegistry.java    |  119 +-
 .../org/apache/uima/jcas/JFSIndexRepository.java   |   36 +-
 .../org/apache/uima/jcas/cas/AnnotationBase.java   |   85 +-
 .../apache/uima/jcas/cas/AnnotationBase_Type.java  |  166 +-
 .../java/org/apache/uima/jcas/cas/ArrayFSImpl.java |   64 +-
 .../org/apache/uima/jcas/cas/BooleanArray.java     |   77 +-
 .../java/org/apache/uima/jcas/cas/ByteArray.java   |   77 +-
 .../java/org/apache/uima/jcas/cas/CommonList.java  |  659 +-
 .../apache/uima/jcas/cas/CommonPrimitiveArray.java |   85 +-
 .../java/org/apache/uima/jcas/cas/DoubleArray.java |   86 +-
 .../java/org/apache/uima/jcas/cas/EmptyFSList.java |   19 +-
 .../org/apache/uima/jcas/cas/EmptyFloatList.java   |   15 +-
 .../org/apache/uima/jcas/cas/EmptyIntegerList.java |   15 +-
 .../java/org/apache/uima/jcas/cas/EmptyList.java   |   55 +-
 .../org/apache/uima/jcas/cas/EmptyStringList.java  |   15 +-
 .../java/org/apache/uima/jcas/cas/FSArray.java     |  164 +-
 .../java/org/apache/uima/jcas/cas/FSArrayList.java |    2 +-
 .../java/org/apache/uima/jcas/cas/FSHashSet.java   |    2 +-
 .../org/apache/uima/jcas/cas/FSLinkedHashSet.java  |    2 +-
 .../main/java/org/apache/uima/jcas/cas/FSList.java |  153 +-
 .../java/org/apache/uima/jcas/cas/FloatArray.java  |   85 +-
 .../java/org/apache/uima/jcas/cas/FloatList.java   |   82 +-
 .../main/java/org/apache/uima/jcas/cas/Int2FS.java |  264 +-
 .../org/apache/uima/jcas/cas/IntegerArray.java     |   84 +-
 .../org/apache/uima/jcas/cas/IntegerArrayList.java |    2 +-
 .../java/org/apache/uima/jcas/cas/IntegerList.java |   75 +-
 .../java/org/apache/uima/jcas/cas/LongArray.java   |   90 +-
 .../org/apache/uima/jcas/cas/NonEmptyFSList.java   |  109 +-
 .../apache/uima/jcas/cas/NonEmptyFloatList.java    |  100 +-
 .../apache/uima/jcas/cas/NonEmptyIntegerList.java  |  105 +-
 .../org/apache/uima/jcas/cas/NonEmptyList.java     |   51 +-
 .../apache/uima/jcas/cas/NonEmptyStringList.java   |  106 +-
 .../apache/uima/jcas/cas/SelectViaCopyToArray.java |  191 +-
 .../java/org/apache/uima/jcas/cas/ShortArray.java  |   70 +-
 .../main/java/org/apache/uima/jcas/cas/Sofa.java   |  321 +-
 .../java/org/apache/uima/jcas/cas/StringArray.java |   69 +-
 .../java/org/apache/uima/jcas/cas/StringList.java  |   53 +-
 .../main/java/org/apache/uima/jcas/cas/TOP.java    |   72 +-
 .../java/org/apache/uima/jcas/cas/TOP_Type.java    |  430 +-
 .../org/apache/uima/jcas/impl/JCasHashMap.java     |  297 +-
 .../apache/uima/jcas/impl/JCasHashMapSubMap.java   | 1442 ++--
 .../java/org/apache/uima/jcas/impl/JCasImpl.java   |  751 +-
 .../uima/jcas/impl/JFSIndexRepositoryImpl.java     |   20 +-
 .../java/org/apache/uima/jcas/tcas/Annotation.java |  193 +-
 .../org/apache/uima/jcas/tcas/Annotation_Type.java |  275 +-
 .../uima/pear/tools/InstallationController.java    |  411 +-
 .../uima/pear/tools/InstallationDescriptor.java    |   94 +-
 .../pear/tools/InstallationDescriptorHandler.java  |   20 +-
 .../uima/pear/tools/InstallationProcessor.java     |   44 +-
 .../apache/uima/pear/tools/InstallationTester.java |  346 +-
 .../uima/pear/tools/LocalInstallationAgent.java    |   34 +-
 .../org/apache/uima/pear/tools/PackageBrowser.java |   80 +-
 .../org/apache/uima/pear/tools/PackageCreator.java |   40 +-
 .../uima/pear/tools/PackageCreatorException.java   |   16 +-
 .../apache/uima/pear/tools/PackageInstaller.java   |  459 +-
 .../uima/pear/tools/PackageInstallerException.java |   19 +-
 .../apache/uima/pear/tools/PackageSelectorGUI.java |    7 +
 .../uima/pear/tools/SimplePackageSelector.java     |   15 +-
 .../java/org/apache/uima/pear/util/FileUtil.java   |  145 +-
 .../org/apache/uima/pear/util/MessageRouter.java   |   26 +-
 .../org/apache/uima/pear/util/ProcessUtil.java     |   46 +-
 .../java/org/apache/uima/pear/util/StringUtil.java |    4 +-
 .../java/org/apache/uima/pear/util/UIMAUtil.java   |   52 +-
 .../java/org/apache/uima/pear/util/XMLUtil.java    |  179 +-
 .../org/apache/uima/resource/CasDefinition.java    |   25 +-
 .../java/org/apache/uima/resource/CasManager.java  |   59 +-
 .../ConfigurableDataResourceSpecifier.java         |    8 +-
 .../apache/uima/resource/ConfigurableResource.java |   53 +-
 .../resource/ConfigurableResource_ImplBase.java    |   13 +-
 .../apache/uima/resource/ConfigurationManager.java |   54 +-
 .../uima/resource/CustomResourceSpecifier.java     |   37 +-
 .../org/apache/uima/resource/DataResource.java     |   34 +-
 .../uima/resource/ExternalResourceDependency.java  |   22 +-
 .../uima/resource/ExternalResourceDescription.java |   21 +-
 .../resource/FileLanguageResourceSpecifier.java    |   11 +-
 .../uima/resource/FileResourceSpecifier.java       |    8 +-
 .../uima/resource/JMSMessagingSpecifier.java       |   19 +-
 .../apache/uima/resource/MQMessagingSpecifier.java |    9 +-
 .../uima/resource/MailMessagingSpecifier.java      |   17 +-
 .../org/apache/uima/resource/ManagementObject.java |   14 +-
 .../apache/uima/resource/MessagingSpecifier.java   |   41 +-
 .../uima/resource/ParameterizedDataResource.java   |    2 +-
 .../org/apache/uima/resource/PearSpecifier.java    |   42 +-
 .../apache/uima/resource/RelativePathResolver.java |   10 +-
 .../java/org/apache/uima/resource/Resource.java    |   91 +-
 .../uima/resource/ResourceAccessException.java     |   20 +-
 .../resource/ResourceConfigurationException.java   |   39 +-
 .../uima/resource/ResourceCreationSpecifier.java   |  108 +-
 .../resource/ResourceInitializationException.java  |   79 +-
 .../org/apache/uima/resource/ResourceManager.java  |  244 +-
 .../uima/resource/ResourceManagerPearWrapper.java  |   88 +-
 .../uima/resource/ResourceProcessException.java    |   17 +-
 .../uima/resource/ResourceServiceException.java    |   17 +-
 .../uima/resource/ResourceServiceSpecifier.java    |    4 +-
 .../apache/uima/resource/ResourceServiceStub.java  |    7 +-
 .../uima/resource/ResourceSpecifierList.java       |   12 +-
 .../apache/uima/resource/Resource_ImplBase.java    |   93 +-
 .../java/org/apache/uima/resource/Session.java     |   18 +-
 .../apache/uima/resource/SharedResourceObject.java |    9 +-
 .../org/apache/uima/resource/URISpecifier.java     |   28 +-
 .../apache/uima/resource/impl/CasManager_impl.java |  182 +-
 .../ConfigurableDataResourceSpecifier_impl.java    |   13 +-
 .../impl/ConfigurableDataResource_impl.java        |    7 +
 .../impl/ConfigurationManagerImplBase.java         |  117 +-
 .../resource/impl/ConfigurationManager_impl.java   |   49 +-
 .../impl/CustomResourceSpecifier_impl.java         |   44 +-
 .../uima/resource/impl/DataResource_impl.java      |   40 +-
 .../impl/ExternalResourceDependency_impl.java      |   16 +-
 .../impl/ExternalResourceDescription_impl.java     |   20 +-
 .../impl/FileLanguageResourceSpecifier_impl.java   |    9 +-
 .../resource/impl/FileLanguageResource_impl.java   |   15 +-
 .../resource/impl/FileResourceSpecifier_impl.java  |   15 +-
 .../apache/uima/resource/impl/Parameter_impl.java  |    7 +
 .../uima/resource/impl/PearSpecifier_impl.java     |   14 +-
 .../resource/impl/RelativePathResolver_impl.java   |   15 +-
 .../impl/ResourceCreationSpecifier_impl.java       |   71 +-
 .../uima/resource/impl/ResourceManager_impl.java   |  423 +-
 .../resource/impl/SessionNamespaceView_impl.java   |    3 +-
 .../apache/uima/resource/impl/Session_impl.java    |    3 +-
 .../uima/resource/impl/URISpecifier_impl.java      |   11 +
 .../uima/resource/metadata/AllowedValue.java       |    8 +-
 .../apache/uima/resource/metadata/Capability.java  |   65 +-
 .../uima/resource/metadata/ConfigurationGroup.java |   19 +-
 .../resource/metadata/ConfigurationParameter.java  |   57 +-
 .../ConfigurationParameterDeclarations.java        |   55 +-
 .../metadata/ConfigurationParameterSettings.java   |   30 +-
 .../resource/metadata/ExternalResourceBinding.java |   11 +-
 .../uima/resource/metadata/FeatureDescription.java |   20 +-
 .../uima/resource/metadata/FsIndexCollection.java  |   44 +-
 .../uima/resource/metadata/FsIndexDescription.java |   25 +-
 .../resource/metadata/FsIndexKeyDescription.java   |   20 +-
 .../org/apache/uima/resource/metadata/Import.java  |   12 +-
 .../resource/metadata/LanguagePrecondition.java    |   21 +-
 .../uima/resource/metadata/MetaDataObject.java     |   48 +-
 .../resource/metadata/MimeTypePrecondition.java    |   14 +-
 .../uima/resource/metadata/NameValuePair.java      |    8 +-
 .../resource/metadata/OperationalProperties.java   |   14 +-
 .../uima/resource/metadata/Precondition.java       |   14 +-
 .../metadata/ProcessingResourceMetaData.java       |   46 +-
 .../metadata/ResourceManagerConfiguration.java     |   52 +-
 .../uima/resource/metadata/ResourceMetaData.java   |   38 +-
 .../uima/resource/metadata/SimplePrecondition.java |   58 +-
 .../uima/resource/metadata/TypeDescription.java    |   34 +-
 .../uima/resource/metadata/TypePriorities.java     |   42 +-
 .../uima/resource/metadata/TypePriorityList.java   |   11 +-
 .../resource/metadata/TypeSystemDescription.java   |   45 +-
 .../resource/metadata/impl/AllowedValue_impl.java  |    5 +
 .../resource/metadata/impl/Capability_impl.java    |   35 +-
 .../metadata/impl/ConfigurationGroup_impl.java     |   24 +-
 .../ConfigurationParameterDeclarations_impl.java   |   41 +-
 .../impl/ConfigurationParameterSettings_impl.java  |   55 +-
 .../metadata/impl/ConfigurationParameter_impl.java |   48 +-
 .../impl/ExternalResourceBinding_impl.java         |   13 +-
 .../metadata/impl/FeatureDescription_impl.java     |   15 +-
 .../metadata/impl/FsIndexCollection_impl.java      |   55 +-
 .../metadata/impl/FsIndexDescription_impl.java     |   11 +-
 .../metadata/impl/FsIndexKeyDescription_impl.java  |   42 +-
 .../uima/resource/metadata/impl/Import_impl.java   |   60 +-
 .../metadata/impl/LanguagePrecondition_impl.java   |   37 +-
 .../impl/MetaDataObjectSerializer_indent.java      |  919 +--
 .../impl/MetaDataObjectSerializer_plain.java       |  292 +-
 .../metadata/impl/MetaDataObject_impl.java         |  754 +-
 .../metadata/impl/MimeTypePrecondition_impl.java   |   38 +-
 .../resource/metadata/impl/NameValuePair_impl.java |   11 +-
 .../metadata/impl/OperationalProperties_impl.java  |   33 +-
 .../impl/ProcessingResourceMetaData_impl.java      |    5 +-
 .../resource/metadata/impl/PropertyXmlInfo.java    |   14 +-
 .../impl/ResourceManagerConfiguration_impl.java    |  103 +-
 .../metadata/impl/ResourceMetaData_impl.java       |   54 +-
 .../metadata/impl/SimplePrecondition_impl.java     |   29 +-
 .../metadata/impl/TypeDescription_impl.java        |   20 +-
 .../metadata/impl/TypePriorities_impl.java         |   91 +-
 .../metadata/impl/TypePriorityList_impl.java       |   19 +-
 .../metadata/impl/TypeSystemDescription_impl.java  |   54 +-
 .../service/impl/ResourceServiceAdapter.java       |   10 +-
 .../service/impl/ResourceService_impl.java         |   11 +-
 .../java/org/apache/uima/search/Attribute.java     |    8 +-
 .../main/java/org/apache/uima/search/Filter.java   |   10 +-
 .../org/apache/uima/search/IndexBuildItem.java     |   36 +-
 .../uima/search/IndexBuildSpecification.java       |   24 +-
 .../java/org/apache/uima/search/IndexRule.java     |    4 +-
 .../org/apache/uima/search/IndexingException.java  |   17 +-
 .../main/java/org/apache/uima/search/Mapping.java  |    8 +-
 .../main/java/org/apache/uima/search/Style.java    |   43 +-
 .../apache/uima/search/impl/Attribute_impl.java    |    7 +
 .../org/apache/uima/search/impl/Filter_impl.java   |   15 +-
 .../uima/search/impl/IndexBuildItem_impl.java      |    7 +
 .../search/impl/IndexBuildSpecification_impl.java  |   14 +-
 .../apache/uima/search/impl/IndexRule_impl.java    |    3 +
 .../org/apache/uima/search/impl/Mapping_impl.java  |   12 +-
 .../org/apache/uima/search/impl/Style_impl.java    |   12 +-
 .../org/apache/uima/uimacpp/CppUimajEngine.java    |   20 +-
 .../uima/uimacpp/UimacppAnalysisComponent.java     |  131 +-
 .../org/apache/uima/uimacpp/UimacppEngine.java     |   78 +-
 .../org/apache/uima/uimacpp/UimacppException.java  |    6 +-
 .../util/AnalysisEnginePerformanceReports.java     |    1 +
 .../org/apache/uima/util/AnalysisEngineUtils.java  |    2 +-
 .../apache/uima/util/AutoCloseableNoException.java |   68 +-
 .../main/java/org/apache/uima/util/CasCopier.java  | 1135 +--
 .../org/apache/uima/util/CasCreationUtils.java     |  907 ++-
 .../main/java/org/apache/uima/util/CasIOUtils.java |  395 +-
 .../java/org/apache/uima/util/CasLoadMode.java     |  207 +-
 .../main/java/org/apache/uima/util/CasPool.java    |  128 +-
 .../org/apache/uima/util/CasPoolManagement.java    |   25 +-
 .../java/org/apache/uima/util/CasToInlineXml.java  |   83 +-
 .../uima/util/ConcurrentHashMapWithProducer.java   |  130 +-
 .../org/apache/uima/util/ConsumerCasUtils.java     |    6 +-
 .../main/java/org/apache/uima/util/FileUtils.java  |   46 +-
 .../apache/uima/util/InstrumentationFacility.java  |   12 +-
 .../main/java/org/apache/uima/util/IntEntry.java   |  175 +-
 .../org/apache/uima/util/InvalidXMLException.java  |   27 +-
 .../java/org/apache/uima/util/IteratorNvc.java     |   69 +-
 .../main/java/org/apache/uima/util/JCasPool.java   |    1 +
 .../src/main/java/org/apache/uima/util/Level.java  |    7 +-
 .../src/main/java/org/apache/uima/util/Logger.java |  369 +-
 .../org/apache/uima/util/LoggerPrintStream.java    |   23 +
 .../java/org/apache/uima/util/MessageReport.java   |  122 +-
 .../src/main/java/org/apache/uima/util/Misc.java   |   96 +-
 .../java/org/apache/uima/util/NameClassPair.java   |   11 +-
 .../java/org/apache/uima/util/ProcessTrace.java    |   30 +-
 .../org/apache/uima/util/ProcessTraceEvent.java    |   29 +-
 .../main/java/org/apache/uima/util/Progress.java   |   19 +-
 .../java/org/apache/uima/util/ProgressImpl.java    |    6 +
 .../java/org/apache/uima/util/SaxDeserializer.java |    2 +-
 .../main/java/org/apache/uima/util/Settings.java   |   89 +-
 .../apache/uima/util/SimpleResourceFactory.java    |   48 +-
 .../java/org/apache/uima/util/TCasFormatter.java   |    4 +-
 .../java/org/apache/uima/util/TCasToInlineXml.java |   30 +-
 .../java/org/apache/uima/util/TypeSystemUtil.java  |   19 +-
 .../main/java/org/apache/uima/util/UimaTimer.java  |   14 +-
 .../main/java/org/apache/uima/util/UriUtils.java   |  173 +-
 .../java/org/apache/uima/util/XMLInputSource.java  |   36 +-
 .../main/java/org/apache/uima/util/XMLParser.java  |  120 +-
 .../java/org/apache/uima/util/XMLSerializer.java   |  285 +-
 .../main/java/org/apache/uima/util/XMLizable.java  |   43 +-
 .../org/apache/uima/util/XmlCasDeserializer.java   |   23 +-
 .../org/apache/uima/util/XmlCasSerializer.java     |    2 +-
 .../uima/util/impl/CasPoolManagementImpl.java      |   37 +-
 .../uima/util/impl/CasPoolManagementImplMBean.java |   22 +-
 .../java/org/apache/uima/util/impl/Constants.java  |   84 +-
 .../java/org/apache/uima/util/impl/DataIO.java     |  224 +-
 .../apache/uima/util/impl/JSR47Logger_impl.java    |  123 +-
 .../apache/uima/util/impl/Log4jLogger_impl.java    |  566 +-
 .../apache/uima/util/impl/Logger_common_impl.java  | 2476 +++---
 .../org/apache/uima/util/impl/Logger_impl.java     |   53 +-
 .../org/apache/uima/util/impl/OptimizeStrings.java |  184 +-
 .../uima/util/impl/ProcessTraceEvent_impl.java     |   31 +-
 .../apache/uima/util/impl/ProcessTrace_impl.java   |   73 +-
 .../uima/util/impl/SaxDeserializer_impl.java       |   95 +-
 .../uima/util/impl/SerializationMeasures.java      |  336 +-
 .../org/apache/uima/util/impl/Settings_impl.java   |  162 +-
 .../apache/uima/util/impl/Slf4jLogger_impl.java    |  844 +-
 .../org/apache/uima/util/impl/XMLParser_impl.java  |  250 +-
 .../org/apache/uima/impl/UimaVersion.java          |  138 +-
 uimaj-core/src/test/java/aa/AbstractType.java      |    3 +-
 uimaj-core/src/test/java/aa/ConcreteType.java      |    3 +-
 .../src/test/java/aa/MissingFeatureInCas.java      |    3 +-
 uimaj-core/src/test/java/aa/MissingInCas.java      |    3 +-
 uimaj-core/src/test/java/aa/Root.java              |    3 +-
 uimaj-core/src/test/java/aa/T.java                 |    4 +-
 .../test/java/org/apache/lang/LanguagePair.java    |    4 +-
 .../uima/ae/multiplier/SimpleCasGenerator.java     |  336 +-
 .../org/apache/uima/ae/noop/NoOpAnnotator.java     |  284 +-
 .../impl/AnalysisEngineDescription_implTest.java   |  192 +-
 .../impl/AnalysisEngineManagementImplTest.java     |  135 +-
 .../impl/AnalysisEngine_implTest.java              |  653 +-
 .../analysis_engine/impl/AnnotationWriter.java     |   24 +-
 .../impl/AnnotatorContext_implTest.java            |   70 +-
 .../AnnotatorForCollectionProcessCompleteTest.java |   28 +-
 .../impl/AnnotatorMissingSuper.java                |  127 +-
 .../uima/analysis_engine/impl/BadSegmenter.java    |    6 +-
 .../uima/analysis_engine/impl/ErrorAnnotator.java  |    3 +-
 .../impl/FlowControllerForErrorTest.java           |   39 +-
 .../analysis_engine/impl/MultiViewAnnotator.java   |    4 +-
 .../MultiprocessingAnalysisEngine_implTest.java    |  244 +-
 .../analysis_engine/impl/NewlineResegmenter.java   |    9 +-
 .../analysis_engine/impl/NewlineSegmenter.java     |    6 +-
 .../impl/ParallelFlowController.java               |   32 +-
 .../impl/PearAnalysisEngineWrapperTest.java        |   36 +-
 .../uima/analysis_engine/impl/ResultSpecTest.java  |  407 +-
 .../impl/ResultSpecWithTypeSystemTest.java         |  510 +-
 .../impl/ResultSpecification_implTest.java         |  104 +-
 .../impl/SegmentDroppingFlowController.java        |    9 +-
 .../uima/analysis_engine/impl/TabSegmenter.java    |    4 +-
 .../impl/TaeDescription_implTest.java              |   48 +-
 .../uima/analysis_engine/impl/TestAnnotator.java   |   13 +-
 .../uima/analysis_engine/impl/TestAnnotator2.java  |   62 +-
 .../impl/metadata/MetaDataObjectAssert.java        |    7 +-
 .../impl/metadata/SofaMapping_implTest.java        |   19 +-
 .../sequencer/SequencerCapabilityLanguageTest.java |   48 +-
 .../impl/sequencer/SequencerFixedTest.java         |  100 +-
 .../impl/sequencer/SequencerTestAnnotator.java     |  145 +-
 .../uima/cas/impl/AnnotationIteratorTest.java      |  939 ++-
 .../uima/cas/impl/BinaryCasSerDesPerformance.java  |  162 +-
 .../java/org/apache/uima/cas/impl/CasPoolTest.java |  125 +-
 .../uima/cas/impl/CasTypeSystemMapperTest.java     |  603 +-
 .../apache/uima/cas/impl/ComponentInfoTest.java    |   33 +-
 .../impl/ConcurrentBinarySerializationTest.java    |  150 +-
 .../uima/cas/impl/CustomSerializationTest.java     |  211 +-
 .../org/apache/uima/cas/impl/FSBagIndexTest.java   |  240 +-
 .../java/org/apache/uima/cas/impl/FSIndexTest.java |   16 +-
 .../org/apache/uima/cas/impl/FeaturePathTest.java  | 1566 ++--
 .../java/org/apache/uima/cas/impl/Id2FSTest.java   |  228 +-
 .../cas/impl/IndexCorruptionReportingTest.java     |  179 +-
 .../org/apache/uima/cas/impl/JCasReinitTest.java   |  188 +-
 .../uima/cas/impl/OrderedFsSet_array_Test.java     |  434 +-
 .../org/apache/uima/cas/impl/ProtectIndexTest.java |   38 +-
 .../org/apache/uima/cas/impl/SelectFsAssert.java   |  645 +-
 .../apache/uima/cas/impl/SelectFsNoJCasTest.java   |   32 +-
 .../cas/impl/SelectFsPredicateAlignmentTest.java   |  547 +-
 .../org/apache/uima/cas/impl/SelectFsTest.java     | 3648 +++++----
 .../org/apache/uima/cas/impl/SerDesForm4Test.java  |  851 +-
 .../apache/uima/cas/impl/SerDesForm6ExtraTest.java |   28 +-
 .../org/apache/uima/cas/impl/SerDesForm6Test.java  |  626 +-
 .../org/apache/uima/cas/impl/SerDesTstCommon.java  |  487 +-
 .../uima/cas/impl/UimaV2CasCompatibilityTest.java  |   14 +-
 .../uima/cas/impl/UnambiguousIteratorTest.java     |   16 +-
 .../apache/uima/cas/impl/XCASDeserializerTest.java |  231 +-
 .../uima/cas/impl/XmiCasDeserializerTest.java      | 2042 ++---
 .../apache/uima/cas/impl/XmiCasSerializerTest.java |   70 +-
 .../java/org/apache/uima/cas/impl/XmiCompare.java  | 1062 +--
 .../apache/uima/cas/test/AnnotationIndexTest.java  |  662 +-
 .../apache/uima/cas/test/AnnotationTreeTest.java   |   22 +-
 .../java/org/apache/uima/cas/test/ArrayFSTest.java |   38 +-
 .../org/apache/uima/cas/test/ArrayIndexTest.java   |   52 +-
 .../org/apache/uima/cas/test/CASInitializer.java   |   18 +-
 .../java/org/apache/uima/cas/test/CASTest.java     |   64 +-
 .../org/apache/uima/cas/test/CASTestSetup.java     |   36 +-
 .../uima/cas/test/CompleteSerializationTest.java   |   32 +-
 .../org/apache/uima/cas/test/CrossAnnotation.java  |    3 +-
 .../org/apache/uima/cas/test/EnrichedEntity.java   |    2 +-
 .../uima/cas/test/FSCreatedInPearContextTest.java  |    9 +-
 .../java/org/apache/uima/cas/test/FeatureMap.java  |    2 +-
 .../org/apache/uima/cas/test/FeatureRecord.java    |    2 +-
 .../apache/uima/cas/test/FeatureStructureTest.java |  878 +-
 .../apache/uima/cas/test/FilteredIteratorTest.java |  117 +-
 .../org/apache/uima/cas/test/FloatArrayFSTest.java |  226 +-
 .../apache/uima/cas/test/GetAllIndexedTest.java    |   89 +-
 .../cas/test/GrowingTheCasNoJcasCacheTest.java     |   54 +-
 .../apache/uima/cas/test/GrowingTheCasTest.java    |  316 +-
 .../apache/uima/cas/test/IndexComparitorTest.java  |  108 +-
 .../uima/cas/test/IndexRepositoryMergingTest.java  |  233 +-
 .../apache/uima/cas/test/IndexRepositoryTest.java  |  170 +-
 .../uima/cas/test/IndexSerializationTest.java      |   39 +-
 .../org/apache/uima/cas/test/IntArrayFSTest.java   |   26 +-
 .../apache/uima/cas/test/IteratorSortedTest.java   |  715 +-
 .../org/apache/uima/cas/test/IteratorTest.java     |  707 +-
 .../apache/uima/cas/test/JCasClassLoaderTest.java  |  282 +-
 .../org/apache/uima/cas/test/JcasSofaTest.java     |  115 +-
 .../java/org/apache/uima/cas/test/Level_1.java     |  268 +-
 .../java/org/apache/uima/cas/test/Level_2.java     |  182 +-
 .../java/org/apache/uima/cas/test/Level_3.java     |  182 +-
 .../java/org/apache/uima/cas/test/Level_4.java     |  182 +-
 .../java/org/apache/uima/cas/test/Level_5.java     |  182 +-
 .../java/org/apache/uima/cas/test/Level_6.java     |  182 +-
 .../uima/cas/test/NewPrimitiveTypesTest.java       |  178 +-
 .../java/org/apache/uima/cas/test/Sentence.java    |    4 +-
 .../uima/cas/test/SerializationNoMDTest.java       |   30 +-
 .../uima/cas/test/SerializationReinitTest.java     |  797 +-
 .../java/org/apache/uima/cas/test/SofaTest.java    |  200 +-
 .../org/apache/uima/cas/test/StringArrayTest.java  |   67 +-
 .../uima/cas/test/StringSubtypeAnnotation.java     |    4 +-
 .../apache/uima/cas/test/StringSubtypeTest.java    |   35 +-
 .../apache/uima/cas/test/SubiteratorAnnotator.java |    6 +-
 .../org/apache/uima/cas/test/SubiteratorTest.java  |   39 +-
 .../org/apache/uima/cas/test/TestAnnotator.java    |    8 +-
 .../test/java/org/apache/uima/cas/test/Token.java  |    4 +-
 .../org/apache/uima/cas/test/TypeOrderTest.java    |   98 +-
 .../org/apache/uima/cas/test/TypePriorityTest.java |   56 +-
 .../apache/uima/cas/test/TypeSystemReinitTest.java |   47 +-
 .../org/apache/uima/cas/test/TypeSystemTest.java   |   84 +-
 .../apache/uima/cas/test/TypeSystemUtilsTest.java  |   31 +-
 .../uima/cas/test/UimacppDeserializationTest.java  |   45 +-
 .../uima/cas/text/AnnotationPredicateAssert.java   |   56 +-
 .../uima/cas/text/AnnotationPredicateTestData.java |  160 +-
 .../uima/cas/text/AnnotationPredicatesTest.java    |  347 +-
 .../cas/text/AxiomaticAnnotationPredicates.java    |   19 +-
 .../org/apache/uima/cas_data/impl/CasComparer.java |  472 +-
 .../uima/cas_data/impl/CasDataToXCasTest.java      |   25 +-
 .../cas_data/impl/XCasToCasDataSaxHandlerTest.java |   71 +-
 .../impl/CasConsumerDescription_implTest.java      |   21 +-
 .../impl/CasInitializerDescription_implTest.java   |   16 +-
 .../impl/CollectionReaderDescription_implTest.java |   17 +-
 .../uima/examples/cpm/sofa/TransAnnotator.java     |    1 +
 .../impl/CapabilityLanguageFlowControllerTest.java |   26 +-
 .../uima/flow/impl/FixedFlowControllerTest.java    |  143 +-
 .../uima/impl/AnalysisEngineFactory_implTest.java  |   21 +-
 .../uima/impl/CasConsumerFactory_implTest.java     |   21 +-
 .../impl/CollectionReaderFactory_implTest.java     |   21 +-
 .../CustomResourceSpecifierFactory_implTest.java   |   37 +-
 .../org/apache/uima/impl/SomeCustomResource.java   |   17 +-
 .../org/apache/uima/impl/UimaContext_implTest.java |  108 +-
 .../uima/internal/util/AnalysisEnginePoolTest.java |   73 +-
 .../uima/internal/util/Int2ObjHashMapTest.java     |  274 +-
 .../apache/uima/internal/util/IntBitSetTest.java   |  338 +-
 .../uima/internal/util/IntHashSetPerfTest.java     |  382 +-
 .../apache/uima/internal/util/IntHashSetTest.java  |  504 +-
 .../apache/uima/internal/util/IntVectorTest.java   |  197 +-
 .../org/apache/uima/internal/util/MiscTest.java    |   88 +-
 .../uima/internal/util/MultiThreadUtils.java       |  804 +-
 .../internal/util/Obj2IntIdentityHashMapTest.java  |  305 +-
 .../apache/uima/internal/util/ObjHashSetTest.java  |  382 +-
 .../uima/internal/util/PositiveIntSetTest.java     |  823 +-
 .../uima/internal/util/ResourcePoolTest.java       |   52 +-
 .../uima/internal/util/UIMAClassLoaderTest.java    |   64 +-
 .../uima/internal/util/WeakIdentityMapTest.java    |  117 +-
 .../apache/uima/internal/util/XmlUtilsTest.java    |   32 +-
 .../internal/util/rb_trees/Int2IntRBTTest.java     |   59 +-
 .../internal/util/rb_trees/IntArrayRBTTest.java    |  214 +-
 .../uima/jcas/impl/JCasCoverClassLoadingTest.java  |   10 +-
 .../uima/jcas/impl/JCasHashMapCompareTest.java     |  434 +-
 .../org/apache/uima/jcas/impl/JCasHashMapTest.java | 1156 +--
 .../org/apache/uima/jcas/tcas/AnnotationTest.java  |  285 +-
 .../org/apache/uima/jcas/test/CASInitializer.java  |    5 +-
 .../org/apache/uima/jcas/test/CASTestSetup.java    |   20 +-
 .../org/apache/uima/jcas/test/FSArrayListTest.java |  182 +-
 .../org/apache/uima/jcas/test/FSHashSetTest.java   |  236 +-
 .../uima/jcas/test/IntegerArrayListTest.java       |  180 +-
 .../java/org/apache/uima/jcas/test/JCasTest.java   | 1581 ++--
 .../java/org/apache/uima/jcas/test/JCasTest2.java  |  203 +-
 .../uima/pear/util/ComponentCategoryTest.java      |   33 +-
 .../apache/uima/pear/util/PearEncodingTest.java    |   33 +-
 .../util/PearInstallationVerificationTest.java     |   42 +-
 .../apache/uima/pear/util/PearInstallerTest.java   |   61 +-
 .../org/apache/uima/pear/util/PearRuntimeTest.java |  117 +-
 .../resource/ConfigurableResource_implTest.java    |   52 +-
 .../org/apache/uima/resource/TestCasConsumer.java  |    2 +-
 .../uima/resource/impl/CasManager_implTest.java    |   37 +-
 ...ConfigurableDataResourceSpecifier_implTest.java |   12 +-
 .../impl/ConfigurableDataResource_implTest.java    |   24 +-
 .../uima/resource/impl/DataResource_implTest.java  |   27 +-
 .../impl/FileLanguageResource_implTest.java        |   30 +-
 .../uima/resource/impl/PearSpecifier_implTest.java |   62 +-
 .../impl/RelativePathResolver_implTest.java        |   19 +-
 .../impl/ResourceCreationSpecifier_implTest.java   |    7 +-
 .../resource/impl/ResourceManager_implTest.java    |   87 +-
 .../resource/impl/TestResourceInterface_impl.java  |   17 +-
 .../uima/resource/impl/URISpecifier_implTest.java  |   16 +-
 ...onfigurationParameterDeclarations_implTest.java |   19 +-
 .../metadata/impl/FsIndexCollection_implTest.java  |   50 +-
 .../resource/metadata/impl/Import_implTest.java    |   49 +-
 .../metadata/impl/MetaDataObject_implTest.java     |   96 +-
 .../ResourceManagerConfiguration_implTest.java     |   55 +-
 .../resource/metadata/impl/TestFruitBagObject.java |   32 +-
 .../resource/metadata/impl/TestFruitObject.java    |   55 +-
 .../metadata/impl/TypePriorities_implTest.java     |   53 +-
 .../impl/TypeSystemDescription_implTest.java       |   85 +-
 .../impl/ResourceServiceAdapter_implTest.java      |   28 +-
 .../service/impl/ResourceService_implTest.java     |   23 +-
 .../service/impl/TestResourceServiceStub.java      |    4 +-
 .../uima/testTypeSystem_arrays/OfShorts.java       |    4 +-
 .../uima/testTypeSystem_arrays/OfStrings.java      |    4 +-
 .../java/org/apache/uima/util/CasCopierTest.java   |  186 +-
 .../org/apache/uima/util/CasCreationUtilsTest.java |  208 +-
 .../uima/util/CasIOUtilsAlwaysHoldOnTest.java      |   35 +-
 .../java/org/apache/uima/util/CasIOUtilsTest.java  |  177 +-
 .../org/apache/uima/util/CasToInlineXmlTest.java   |  104 +-
 .../org/apache/uima/util/CasWrapperForTstng.java   |  683 +-
 .../java/org/apache/uima/util/FileUtilsTest.java   |   24 +-
 .../test/java/org/apache/uima/util/LevelTest.java  |   20 +-
 .../org/apache/uima/util/TestCollectionReader.java |    5 +-
 .../org/apache/uima/util/TypeSystemUtilTest.java   |   30 +-
 .../apache/uima/util/UimaContextHolderTest.java    |    4 +-
 .../org/apache/uima/util/XMLSerializerTest.java    |  282 +-
 .../uima/util/impl/JSR47Logger_implTest.java       |  444 +-
 .../uima/util/impl/Log4jLogger_implTest.java       |  652 +-
 .../org/apache/uima/util/impl/Logger_implTest.java |  121 +-
 .../org/apache/uima/util/impl/LoggingTest.java     |   26 +-
 .../apache/uima/util/impl/OptimizeStringsTest.java |  121 +-
 .../uima/util/impl/ProcessTrace_implTest.java      |   26 +-
 .../apache/uima/util/impl/XMLParser_implTest.java  |  100 +-
 .../src/test/java/sofa/test/CrossAnnotation.java   |    2 +-
 uimaj-core/src/test/java/x/y/z/EndOfSentence.java  |    4 +-
 uimaj-core/src/test/java/x/y/z/Sentence.java       |    4 +-
 uimaj-core/src/test/java/x/y/z/Separator.java      |    4 +-
 uimaj-core/src/test/java/x/y/z/Token.java          |    4 +-
 uimaj-core/src/test/java/x/y/z/TokenType.java      |    4 +-
 uimaj-core/src/test/java/x/y/z/Word.java           |    4 +-
 uimaj-cpe/.gitignore                               |    4 +-
 uimaj-cpe/pom.xml                                  |    2 +-
 .../cas_data/impl/vinci/VinciCasDataConverter.java |    3 +-
 .../apache/uima/collection/impl/CasConverter.java  |    5 +-
 .../impl/CollectionProcessingEngine_impl.java      |   14 +
 .../collection/impl/EntityProcessStatusImpl.java   |    6 +
 .../container/CasProcessorConfiguration.java       |   42 +-
 .../base_cpm/container/CasProcessorController.java |   24 +-
 .../impl/base_cpm/container/RunnableContainer.java |    4 +-
 .../base_cpm/container/deployer/CPEDeployer.java   |    2 +-
 .../container/deployer/CasProcessorDeployer.java   |    8 +-
 .../deployer/CasProcessorDeploymentException.java  |    1 -
 .../apache/uima/collection/impl/cpm/CPMImpl.java   |    9 +
 .../impl/cpm/StatusCallbackListenerImpl.java       |    7 +
 .../CasProcessorConfigurationJAXBImpl.java         |   21 +
 .../cpm/container/NetworkCasProcessorImpl.java     |    7 +
 .../container/deployer/CPEDeployerDefaultImpl.java |    4 +
 .../container/deployer/FencedProcessReaper.java    |    1 -
 .../cpm/container/deployer/NonJavaApplication.java |    2 +-
 .../deployer/socket/OFSocketTransportImpl.java     |    1 -
 .../deployer/socket/ProcessControllerAdapter.java  |    4 +-
 .../container/deployer/socket/SocketTransport.java |    8 +-
 .../container/deployer/vns/VinciServiceInfo.java   |    1 +
 .../impl/cpm/engine/CPMChunkTimeoutException.java  |    1 -
 .../collection/impl/cpm/engine/CPMThreadGroup.java |    1 -
 .../collection/impl/cpm/engine/ProcessingUnit.java |    1 -
 .../uima/collection/impl/cpm/engine/WorkUnit.java  |    1 -
 .../uima/collection/impl/cpm/utils/Execute.java    |    1 -
 .../collection/impl/cpm/utils/ExpirationTimer.java |    1 -
 .../uima/collection/impl/cpm/utils/Timer.java      |   14 +-
 .../impl/metadata/cpe/CpeCasProcessorsImpl.java    |    1 -
 .../impl/metadata/cpe/CpeDescriptionImpl.java      |    1 -
 .../cpe/CpeIntegratedCasProcessorImpl.java         |    1 -
 .../metadata/cpe/CpeLocalCasProcessorImpl.java     |    3 -
 .../metadata/cpe/CpeRemoteCasProcessorImpl.java    |    1 -
 .../impl/SofaNamingInAggregateTest.java            |   42 +-
 .../uima/analysis_engine/impl/TestAnnotator.java   |    3 +
 .../impl/CasHeapSizeTestCollectionReader.java      |    6 +-
 .../impl/CollectionProcessingEngine_implTest.java  |   37 +-
 .../collection/impl/SingleDocCollectionReader.java |    4 +
 .../uima/collection/impl/TestCasInitializer.java   |    1 +
 .../uima/collection/impl/TestCasMultiplier.java    |    6 +-
 .../uima/collection/impl/cpm/CasPoolTest.java      |   21 +-
 .../impl/cpm/CpeCasProcessorAPI_Test.java          |   18 +-
 .../impl/cpm/CpeDescriptorSerialization_Test.java  |   28 +-
 .../uima/collection/impl/cpm/CpeImportTest.java    |   32 +-
 .../uima/collection/impl/cpm/CpmAE_ErrorTest.java  |   60 +-
 .../impl/cpm/CpmCasConsumer_ErrorTest.java         |   37 +-
 .../impl/cpm/CpmCollectionReader_ErrorTest.java    |   56 +-
 .../uima/collection/impl/cpm/CpmInitTest.java      |   22 +-
 .../collection/impl/cpm/CpmProcessingTest.java     |   32 +-
 .../uima/collection/impl/cpm/CpmStopTest.java      |   25 +-
 .../uima/collection/impl/cpm/PearCasPoolTest.java  |   29 +-
 .../impl/cpm/SofaCPE_SofaUnawareCC_Test.java       |   78 +-
 .../uima/collection/impl/cpm/SofaCPE_Test.java     |   78 +-
 .../collection/impl/cpm/SofaMixedCPE_Test.java     |   75 +-
 .../impl/cpm/utils/ErrorTestAnnotator.java         |    4 +-
 .../impl/cpm/utils/ErrorTestCasConsumer.java       |    3 +-
 .../impl/cpm/utils/ErrorTestCollectionReader.java  |    5 +
 .../collection/impl/cpm/utils/SlowAnnotator.java   |    1 +
 .../impl/cpm/utils/TestStatusCallbackListener.java |    7 +
 .../uima/examples/cpm/sofa/SofaCasConsumer.java    |    4 +-
 .../uima/examples/cpm/sofa/SofaCasInitializer.java |    1 +
 .../examples/cpm/sofa/SofaCollectionReader.java    |    5 +-
 .../examples/cpm/sofa/SofaUnawareCasConsumer.java  |    4 +-
 .../examples/cpm/sofa/TcasCollectionReader.java    |    4 +
 .../uima/examples/cpm/sofa/TcasTransAnnotator.java |    1 +
 .../uima/examples/cpm/sofa/TransAnnotator.java     |    1 +
 .../uima/pear/util/ComponentCategoryTest.java      |   10 +-
 .../resource/impl/TestResourceInterface_impl.java  |    6 +-
 uimaj-document-annotation/.gitignore               |    2 +
 uimaj-document-annotation/pom.xml                  |    2 +-
 .../apache/uima/jcas/tcas/DocumentAnnotation.java  |    1 +
 .../java/org/apache/uima/jcas/tcas/DocMeta.java    |    6 +-
 .../uima/jcas/tcas/DocumentAnnotationTest.java     |   21 +-
 uimaj-eclipse-feature-runtime/.gitignore           |    4 +-
 uimaj-eclipse-feature-runtime/pom.xml              |    2 +-
 uimaj-eclipse-feature-tools/.gitignore             |    4 +-
 uimaj-eclipse-feature-tools/pom.xml                |    2 +-
 uimaj-eclipse-update-site/pom.xml                  |  484 +-
 uimaj-ep-cas-editor-ide/.gitignore                 |    2 +
 uimaj-ep-cas-editor-ide/pom.xml                    |    6 +-
 .../uima/caseditor/ide/CasEditorIdePlugin.java     |  358 +-
 .../ide/CasEditorIdePreferenceInitializer.java     |    3 +-
 .../caseditor/ide/CasEditorIdePreferencePage.java  |    1 +
 .../caseditor/ide/CasEditorPerspectiveFactory.java |  191 +-
 .../caseditor/ide/CasEditorPreferencePage.java     |   87 +-
 .../caseditor/ide/DefaultCasDocumentProvider.java  |    5 +
 .../org/apache/uima/caseditor/ide/NlpProject.java  |    4 +
 .../searchstrategy/ITypeSystemSearchStrategy.java  |   56 +-
 .../TypeSystemSearchStrategyFactory.java           |  162 +-
 .../ide/wizards/ContainerElementFilter.java        |   84 +-
 .../wizards/DocumentImportStructureProvider.java   |  423 +-
 .../ide/wizards/ImportDocumentWizard.java          |  279 +-
 .../ide/wizards/ImportDocumentWizardPage.java      |  993 +--
 .../uima/caseditor/ide/wizards/OverwriteQuery.java |    2 +
 uimaj-ep-cas-editor/.gitignore                     |    2 +
 uimaj-ep-cas-editor/pom.xml                        |   13 +-
 .../org/apache/uima/caseditor/CasEditorPlugin.java |  382 +-
 .../java/org/apache/uima/caseditor/Images.java     |  166 +-
 .../org/apache/uima/caseditor/core/TaeError.java   |   98 +-
 .../caseditor/core/model/dotcorpus/DotCorpus.java  |  618 +-
 .../core/model/dotcorpus/DotCorpusSerializer.java  |  652 +-
 .../editor/AbstractAnnotationDocumentListener.java |  228 +-
 .../uima/caseditor/editor/AbstractDocument.java    |  430 +-
 .../caseditor/editor/AbstractDocumentListener.java |  154 +-
 .../uima/caseditor/editor/AnnotationDocument.java  |  624 +-
 .../uima/caseditor/editor/AnnotationEditor.java    | 3976 +++++-----
 .../editor/AnnotationEditorActionContributor.java  |  166 +-
 .../caseditor/editor/AnnotationEditorView.java     |  210 +-
 .../editor/AnnotationInformationProvider.java      |  186 +-
 .../editor/AnnotationSelectionListener.java        |  102 +-
 .../uima/caseditor/editor/AnnotationStyle.java     |  776 +-
 .../apache/uima/caseditor/editor/ArrayValue.java   |  376 +-
 .../uima/caseditor/editor/CasDocumentProvider.java |  462 +-
 .../uima/caseditor/editor/CasEditorView.java       |  520 +-
 .../uima/caseditor/editor/ChangeModeAction.java    |  142 +-
 .../caseditor/editor/CustomInformationControl.java |  368 +-
 .../uima/caseditor/editor/DocumentUimaImpl.java    |  838 +-
 .../editor/FeatureStructureSelection.java          |  204 +-
 .../editor/FeatureStructureSelectionIterator.java  |  190 +-
 .../editor/FeatureStructureSelectionProvider.java  |  280 +-
 .../apache/uima/caseditor/editor/FeatureValue.java |  256 +-
 .../editor/IAnnotationEditorModifyListener.java    |  102 +-
 .../apache/uima/caseditor/editor/ICasDocument.java |  290 +-
 .../caseditor/editor/ICasDocumentListener.java     |  188 +-
 .../caseditor/editor/ICasEditorInputListener.java  |   98 +-
 .../ICustomInformationControlContentHandler.java   |   68 +-
 .../caseditor/editor/IEditorSelectionListener.java |   78 +-
 .../caseditor/editor/ModelFeatureStructure.java    |  334 +-
 .../caseditor/editor/QuickTypeSelectionDialog.java |  796 +-
 .../action/DeleteFeatureStructureAction.java       |  138 +-
 .../action/LowerLeftAnnotationSideAction.java      |  184 +-
 .../action/LowerRightAnnotationSideAction.java     |  186 +-
 .../editor/action/MergeAnnotationAction.java       |  160 +-
 .../action/WideLeftAnnotationSideAction.java       |  186 +-
 .../action/WideRightAnnotationSideAction.java      |  184 +-
 .../annotation/BackgroundDrawingStrategy.java      |  288 +-
 .../editor/annotation/BoxDrawingStrategy.java      |  152 +-
 .../editor/annotation/BracketDrawingStrategy.java  |  176 +-
 .../caseditor/editor/annotation/DrawingStyle.java  |  150 +-
 .../editor/annotation/EclipseAnnotationPeer.java   |  158 +-
 .../annotation/TextColorDrawingStrategy.java       |  110 +-
 .../editor/annotation/TokenDrawingStrategy.java    |  182 +-
 .../annotation/UnderlineDrawingStrategy.java       |  136 +-
 .../editor/context/AnnotationEditingControl.java   |  108 +-
 .../context/AnnotationEditingControlCreator.java   |  134 +-
 .../editview/CreateFeatureStructureDialog.java     |  512 +-
 .../uima/caseditor/editor/editview/EditView.java   |  112 +-
 .../caseditor/editor/editview/EditViewPage.java    | 1710 ++--
 .../editview/FeatureColumnLabelProvider.java       |  108 +-
 .../editview/FeatureStructureContentProvider.java  |  562 +-
 .../editor/editview/ValueColumnLabelProvider.java  |  164 +-
 .../validator/ByteCellEditorValidator.java         |  100 +-
 .../validator/CellEditorValidatorFacotory.java     |  130 +-
 .../validator/FloatCellEditorValidator.java        |  102 +-
 .../validator/IntegerCellEditorValidator.java      |  102 +-
 .../validator/LongCellEditorValidator.java         |  100 +-
 .../validator/ShortCellEditorValidator.java        |  104 +-
 .../editor/fsview/FeatureStructureBrowserView.java |  114 +-
 .../fsview/FeatureStructureBrowserViewPage.java    | 1136 +--
 .../fsview/FeatureStructureLabelProvider.java      |  192 +-
 .../caseditor/editor/fsview/ITypePaneListener.java |   70 +-
 .../editor/outline/AnnotationOutline.java          |  892 +--
 .../editor/outline/AnnotationTreeNode.java         |  294 +-
 .../editor/outline/AnnotationTreeNodeList.java     |  268 +-
 .../editor/outline/OutlineLabelProvider.java       |  188 +-
 .../editor/outline/OutlineTableSorter.java         |  134 +-
 .../editor/util/AnnotationComparator.java          |   94 +-
 .../caseditor/editor/util/AnnotationSelection.java |  294 +-
 .../editor/util/ContainingConstraint.java          |  174 +-
 .../editor/util/FeatureStructureTransfer.java      |  114 +-
 .../uima/caseditor/editor/util/IDGenerator.java    |  182 +-
 .../uima/caseditor/editor/util/ObjectTransfer.java |  168 +-
 .../uima/caseditor/editor/util/Primitives.java     |  348 +-
 .../apache/uima/caseditor/editor/util/Span.java    |  318 +-
 .../editor/util/StrictTypeConstraint.java          |  116 +-
 .../uima/caseditor/editor/util/UimaUtil.java       |   98 +-
 .../ui/property/AnnotationPropertyPage.java        | 1292 +--
 .../core/model/dotcorpus/AnnotationStyleTest.java  |  130 +-
 .../model/dotcorpus/DotCorpusSerializerTest.java   |  124 +-
 .../apache/uima/caseditor/core/util/SpanTest.java  |  317 +-
 .../uima/caseditor/editor/AnnotationStyleTest.java |  117 +-
 .../uima/caseditor/editor/util/SpanTest.java       |  314 +-
 uimaj-ep-configurator/.gitignore                   |    2 +
 uimaj-ep-configurator/pom.xml                      |    2 +-
 .../uima/taeconfigurator/CDEpropertyPage.java      |    1 -
 .../uima/taeconfigurator/InternalErrorCDE.java     |    1 -
 .../uima/taeconfigurator/StandardStrings.java      |   26 +-
 .../taeconfigurator/TAEConfiguratorPlugin.java     |    1 -
 .../taeconfigurator/editors/MultiPageEditor.java   | 8377 ++++++++++----------
 .../editors/MultiPageEditorContributor.java        |   10 +-
 .../editors/point/IUimaEditorExtension.java        |    6 +-
 .../editors/point/IUimaMultiPageEditor.java        |    8 +-
 .../ui/dialogs/AbstractDialogKeyVerify.java        |    3 +-
 .../dialogs/AbstractDialogKeyVerifyJavaNames.java  |    3 +-
 .../ui/dialogs/AbstractDialogMultiColTable.java    |    6 +-
 .../editors/ui/dialogs/AddAllowedValueDialog.java  |    5 +-
 .../AddExternalResourceDependencyDialog.java       |    7 +-
 .../ui/dialogs/AddExternalResourceDialog.java      |   15 +-
 .../editors/ui/dialogs/AddIndexKeyDialog.java      |   11 +-
 .../editors/ui/dialogs/AddRemoteServiceDialog.java |    5 +-
 .../editors/ui/dialogs/AddSofaDialog.java          |    7 +-
 .../ui/dialogs/AddTypeToPriorityListDialog.java    |    5 +-
 .../editors/ui/dialogs/CommonInputDialog.java      |    3 +-
 .../editors/ui/dialogs/EditSofaBindingsDialog.java |    3 +-
 .../ui/dialogs/ExportImportablePartDialog.java     |    5 +-
 .../editors/ui/dialogs/FindComponentDialog.java    |    5 +-
 .../editors/ui/dialogs/PickTaeForTypesDialog.java  |   13 +-
 .../editors/ui/dialogs/SearchThread.java           |   13 +-
 .../editors/xml/NonRuleBasedDamagerRepairer.java   |    2 +-
 .../uima/taeconfigurator/editors/xml/TagRule.java  |    4 +-
 .../editors/xml/XMLConfiguration.java              |    3 +-
 .../editors/xml/XMLDoubleClickStrategy.java        |    5 +-
 .../taeconfigurator/editors/xml/XMLEditor.java     |    5 +-
 .../editors/xml/XMLPartitionScanner.java           |    6 +-
 .../taeconfigurator/editors/xml/XMLScanner.java    |    9 +-
 .../taeconfigurator/editors/xml/XMLTagScanner.java |    9 +-
 ...MultiResourceSelectionDialogWithFlowOption.java |    9 +-
 .../taeconfigurator/wizards/AbstractNewWizard.java |    6 +-
 .../wizards/AbstractNewWizardPage.java             |    3 +-
 uimaj-ep-debug/.gitignore                          |    2 +
 uimaj-ep-debug/pom.xml                             |    2 +-
 .../java/org/apache/uima/ep_debug/DebugPlugin.java |    3 -
 .../apache/uima/ep_debug/DebugPluginStartup.java   |  132 +-
 uimaj-ep-jcasgen/.gitignore                        |    2 +
 uimaj-ep-jcasgen/pom.xml                           |    2 +-
 .../org/apache/uima/jcas/jcasgenp/JgPlugin.java    |    1 -
 uimaj-ep-launcher/.gitignore                       |    2 +
 uimaj-ep-launcher/pom.xml                          |    2 +-
 .../apache/uima/ep_launcher/RemoteLauncher.java    |    2 +
 .../uima/ep_launcher/ui/AnalysisEngineMainTab.java |   28 +-
 .../ep_launcher/ui/AnalysisEngineTabGroup.java     |    1 +
 uimaj-ep-pear-packager/.gitignore                  |    2 +
 uimaj-ep-pear-packager/pom.xml                     |    2 +-
 .../java/org/apache/uima/pear/PearException.java   |  309 +-
 .../main/java/org/apache/uima/pear/PearPlugin.java |  181 +-
 .../uima/pear/actions/AddUimaNatureAction.java     |  280 +-
 .../actions/EditInstallationDescriptorAction.java  |  223 +-
 .../uima/pear/actions/GeneratePearFileAction.java  |  313 +-
 .../actions/PearProjectCustomizationException.java |  299 +-
 .../uima/pear/generate/GeneratePearWizard.java     |  510 +-
 .../org/apache/uima/pear/generate/PearExport.java  |  104 +-
 .../uima/pear/generate/PearExportMessages.java     |  146 +-
 .../uima/pear/generate/PearExportOperation.java    |  392 +-
 .../pear/generate/PearFileResourceExportPage.java  |  826 +-
 .../edit/EditInstallationDescriptorWizard.java     |  444 +-
 .../uima/pear/insd/edit/INSDComponentPage.java     |  817 +-
 .../uima/pear/insd/edit/INSDEnvironmentPage.java   | 1055 ++-
 .../apache/uima/pear/insd/edit/InsdConstants.java  |  128 +-
 .../pear/insd/edit/PearInstallationDescriptor.java |  277 +-
 .../edit/vars/AbstractVarValViewerHandler.java     |  721 +-
 .../pear/insd/edit/vars/IVarValListViewer.java     |   96 +-
 .../apache/uima/pear/insd/edit/vars/VarVal.java    |  203 +-
 .../pear/insd/edit/vars/VarValCellModifier.java    |  253 +-
 .../pear/insd/edit/vars/VarValLabelProvider.java   |  144 +-
 .../uima/pear/insd/edit/vars/VarValList.java       |  325 +-
 .../uima/pear/insd/edit/vars/VarValSorter.java     |  177 +-
 .../pear/insd/edit/vars/VarValViewerHandler.java   |  219 +-
 .../apache/uima/pear/nature/ProjectCustomizer.java |  477 +-
 .../org/apache/uima/pear/nature/UimaNature.java    |  159 +-
 uimaj-ep-runtime/.gitignore                        |    2 +
 uimaj-ep-runtime/pom.xml                           |    2 +-
 uimaj-examples/.gitignore                          |    2 +
 uimaj-examples/pom.xml                             |    2 +-
 .../src/main/java/example/PersonTitle.java         |    7 +-
 .../apache/uima/examples/ExampleApplication.java   |    1 -
 .../main/java/org/apache/uima/examples/RunAE.java  |    7 +
 .../apache/uima/examples/SofaExampleAnnotator.java |    1 +
 .../uima/examples/SofaExampleApplication.java      |    3 -
 .../uima/examples/SourceDocumentInformation.java   |    4 +-
 .../java/org/apache/uima/examples/XmlDetagger.java |    7 +
 .../uima/examples/cas/PersonTitleAnnotator.java    |    3 +
 .../apache/uima/examples/cas/RegExAnnotator.java   |    3 +
 .../examples/casMultiplier/SimpleTextMerger.java   |  330 +-
 .../casMultiplier/SimpleTextSegmenter.java         |    4 +
 .../uima/examples/cpe/AnnotationPrinter.java       |    6 +
 .../examples/cpe/FileSystemCollectionReader.java   |  436 +-
 .../uima/examples/cpe/InlineXmlCasConsumer.java    |    2 +
 .../cpe/PersonTitleDBWriterCasConsumer.java        |    3 +
 .../org/apache/uima/examples/cpe/SimpleRunCPM.java |    7 +
 .../uima/examples/cpe/XCasWriterCasConsumer.java   |    2 +
 .../examples/flow/AdvancedFixedFlowController.java |  608 +-
 .../examples/flow/WhiteboardFlowController.java    |    3 +
 .../examples/flow/WhiteboardFlowController2.java   |    4 +
 .../apache/uima/examples/tokenizer/Sentence.java   |    9 +-
 .../tokenizer/SimpleTokenAndSentenceAnnotator.java |    3 +
 .../org/apache/uima/examples/tokenizer/Token.java  |    9 +-
 .../uima/examples/xmi/XmiCollectionReader.java     |  243 +-
 .../uima/examples/xmi/XmiEcoreCasConsumer.java     |    1 +
 .../uima/examples/xmi/XmiWriterCasConsumer.java    |    2 +
 .../java/org/apache/uima/tutorial/DateAnnot.java   |    9 +-
 .../org/apache/uima/tutorial/DateTimeAnnot.java    |    7 +-
 .../java/org/apache/uima/tutorial/Meeting.java     |    8 +-
 .../java/org/apache/uima/tutorial/RoomNumber.java  |    7 +-
 .../org/apache/uima/tutorial/SentenceAnnot.java    |    6 +-
 .../java/org/apache/uima/tutorial/TimeAnnot.java   |    9 +-
 .../java/org/apache/uima/tutorial/UimaAcronym.java |    7 +-
 .../java/org/apache/uima/tutorial/UimaMeeting.java |    9 +-
 .../java/org/apache/uima/tutorial/WordAnnot.java   |    6 +-
 .../uima/tutorial/ex1/RoomNumberAnnotator.java     |    1 +
 .../uima/tutorial/ex2/RoomNumberAnnotator.java     |    2 +
 .../apache/uima/tutorial/ex3/TutorialDateTime.java |    3 +
 .../apache/uima/tutorial/ex4/MeetingAnnotator.java |    2 +
 .../uima/tutorial/ex5/RoomNumberAnnotator.java     |    2 +
 .../uima/tutorial/ex6/StringMapResource.java       |    2 +-
 .../uima/tutorial/ex6/StringMapResource_impl.java  |    2 +
 .../uima/tutorial/ex6/UimaAcronymAnnotator.java    |    2 +
 .../src/org/apache/uima/util/jet/JetExpander.java  |  548 +-
 uimaj-json/.gitignore                              |    2 +
 uimaj-json/pom.xml                                 |    2 +-
 .../org/apache/uima/json/JsonCasSerializer.java    | 2872 +++----
 .../apache/uima/json/JsonMetaDataSerializer.java   |  316 +-
 .../impl/JsonContentHandlerJacksonWrapper.java     |  757 +-
 .../json/impl/MetaDataObjectSerializer_json.java   |  406 +-
 .../apache/uima/json/JsonCasSerializerTest.java    | 1220 +--
 .../apache/uima/json/JsonMetaDataObjectTest.java   |  380 +-
 .../apache/uima/json/JsonXmiCasSerializerTest.java |   74 +-
 .../resource/metadata/impl/TestFruitBagObject.java |  149 +-
 .../resource/metadata/impl/TestFruitObject.java    |  323 +-
 .../test/java/org/apache/uima/test/AllTypes.java   |   14 +-
 .../test/java/org/apache/uima/test/RefTypes.java   |    6 +-
 uimaj-parent/pom.xml                               |   26 +-
 uimaj-test-util/.gitignore                         |    2 +
 uimaj-test-util/pom.xml                            |   15 +-
 .../uima/test/junit_extension/TeePrintStream.java  |   24 +
 .../test/junit_extension/UIMAResultPrinter.java    |   14 +
 uimaj-tools/.gitignore                             |    2 +
 uimaj-tools/pom.xml                                |    2 +-
 .../uima/tools/AnnotationFeaturesViewer.java       |    2 -
 .../apache/uima/tools/AnnotationViewerMain.java    |    4 +-
 .../components/FileSystemCollectionReader.java     |    5 +
 .../tools/components/InlineXmlCasConsumer.java     |    2 +
 .../tools/components/XCasWriterCasConsumer.java    |    2 +
 .../tools/components/XmiWriterCasConsumer.java     |    2 +
 .../apache/uima/tools/components/XmlDetagger.java  |   10 +-
 .../java/org/apache/uima/tools/cpm/CpmFrame.java   |    2 +-
 .../java/org/apache/uima/tools/cpm/CpmPanel.java   | 4377 +++++-----
 .../uima/tools/cpm/JTabbedPaneWithCloseIcons.java  |    1 -
 .../apache/uima/tools/cpm/TabClosedListener.java   |    2 +-
 .../cvd/AnnotationDisplayCustomizationFrame.java   |    1 -
 .../apache/uima/tools/cvd/AnnotationExtent.java    |    1 -
 .../java/org/apache/uima/tools/cvd/ArrayNode.java  |    1 -
 .../main/java/org/apache/uima/tools/cvd/CVD.java   |  445 +-
 .../java/org/apache/uima/tools/cvd/ColorIcon.java  |    1 -
 .../java/org/apache/uima/tools/cvd/FSNode.java     |    2 -
 .../org/apache/uima/tools/cvd/FSTreeModel.java     |    1 -
 .../java/org/apache/uima/tools/cvd/FSTreeNode.java |    1 -
 .../org/apache/uima/tools/cvd/IndexTreeNode.java   |    2 -
 .../org/apache/uima/tools/cvd/LogFileViewer.java   |    1 -
 .../java/org/apache/uima/tools/cvd/MainFrame.java  | 5699 +++++++------
 .../org/apache/uima/tools/cvd/MarkupExtent.java    |    1 -
 .../uima/tools/cvd/MultiAnnotViewerFrame.java      |    1 -
 .../org/apache/uima/tools/cvd/RecentFilesList.java |  261 +-
 .../uima/tools/cvd/StringFsPopupEventAdapter.java  |  262 +-
 .../org/apache/uima/tools/cvd/TypeTreeNode.java    |    2 -
 .../cvd/control/AnnotatorOpenEventHandler.java     |    1 -
 .../tools/cvd/control/FileOpenEventHandler.java    |    1 -
 .../tools/cvd/control/FileSaveAsEventHandler.java  |    1 -
 .../tools/cvd/control/FileSaveEventHandler.java    |    1 -
 .../control/LoadRecentDescFileEventHandler.java    |    1 -
 .../control/LoadRecentTextFileEventHandler.java    |    1 -
 .../tools/cvd/control/NewTextEventHandler.java     |    1 -
 .../uima/tools/cvd/control/PopupHandler.java       |    1 -
 .../tools/cvd/control/SetLogConfigHandler.java     |    1 -
 .../uima/tools/cvd/control/TreeFocusHandler.java   |    1 -
 .../control/TypeSystemFileOpenEventHandler.java    |    1 -
 .../cvd/control/XCASFileOpenEventHandler.java      |    1 -
 .../tools/cvd/control/XmiCasFileOpenHandler.java   |  154 +-
 .../uima/tools/cvd/control/XmiCasSaveHandler.java  |  191 +-
 .../uima/tools/cvd/tsview/FeatureTableModel.java   |    2 -
 .../apache/uima/tools/cvd/tsview/MainFrame.java    |    1 -
 .../tools/docanalyzer/FileSelectorListener.java    |    2 +-
 .../java/org/apache/uima/tools/jcasgen/GUI.java    |    1 -
 .../java/org/apache/uima/tools/jcasgen/IError.java |    8 +-
 .../java/org/apache/uima/tools/jcasgen/IMerge.java |    2 +-
 .../uima/tools/jcasgen/IProgressMonitor.java       |    8 +-
 .../uima/tools/jcasgen/JCasTypeTemplate.java       |    4 +-
 .../java/org/apache/uima/tools/jcasgen/Jg.java     |    2 +-
 .../uima/tools/pear/install/InstallPear.java       |    1 -
 .../uima/tools/pear/merger/PMController.java       |  917 +--
 .../uima/tools/pear/merger/PMControllerHelper.java |  466 +-
 .../apache/uima/tools/pear/merger/PMUimaAgent.java |  724 +-
 .../uima/tools/pear/packager/PearPackager.java     |  414 +-
 .../tools/stylemap/AnnotationFeaturesViewer.java   |    2 -
 .../apache/uima/tools/stylemap/ColorRenderer.java  |    2 -
 .../uima/tools/util/gui/FileSelectorListener.java  |    2 +-
 .../apache/uima/tools/util/gui/IntegerField.java   |    2 -
 .../tools/util/gui/TransportControlListener.java   |    8 +-
 .../uima/tools/viewer/CasAnnotationViewer.java     |    1 -
 .../apache/uima/tools/viewer/CasTreeViewer.java    |    2 -
 .../apache/uima/tools/viewer/EntityResolver.java   |  134 +-
 .../uima/tools/pear/merger/PearMergerTest.java     |  290 +-
 .../uima/tools/viewer/CasAnnotationViewerTest.java |  648 +-
 uimaj-v3migration-jcas/pom.xml                     |    2 +-
 .../apache/uima/migratev3/jcas/MigrateJCas.java    | 7120 ++++++++---------
 .../apache/uima/cas/impl/AnnotationIndexImpl.java  |  442 +-
 .../cas/impl/FSIteratorWrapperDoubleCheck.java     |  312 +-
 .../apache/uima/cas/impl/FSListIteratorImpl.java   |  322 +-
 .../src/org/apache/uima/cas/impl/FSRBTIndex.java   |  302 +-
 .../org/apache/uima/cas/impl/FeatureArrayImpl.java |  118 +-
 .../apache/uima/cas/impl/FeatureGetter_int.java    |   52 +-
 .../apache/uima/cas/impl/FeatureGetter_ref.java    |   52 +-
 .../apache/uima/cas/impl/FeatureSetter_int.java    |   50 +-
 .../apache/uima/cas/impl/FeatureSetter_ref.java    |   50 +-
 .../uima/cas/impl/FeatureStructureClassGen.java    |  978 +--
 .../src/org/apache/uima/cas/impl/FsIndex_aggr.java |  466 +-
 .../uima/cas/impl/FsIterator_set_sorted.java       |  528 +-
 .../impl/FsIterator_set_sorted_navset_version.java |  540 +-
 .../apache/uima/cas/impl/FsIterator_subtypes.java  |  116 +-
 .../cas/impl/FsIterator_subtypes_list_unused.java  |   68 +-
 .../uima/cas/impl/JCasCoverClassFactoryTest.java   |  123 +-
 .../src/org/apache/uima/cas/impl/TypeImplList.java |   72 +-
 .../src/org/apache/uima/cas/impl/TypeImplMap.java  |   90 +-
 .../impl/XXXdont_use_JCasCoverClassFactory.java    | 1010 +--
 .../impl/JCasCoverClassFactoryTest.java            |  129 +-
 .../util/ComparableIntPointerIterator.java         |   94 +-
 .../apache/uima/internal/util/Int2IntHashMap.java  | 1034 +--
 .../uima/internal/util/Int2IntHashMapTest.java     |  179 +-
 .../apache/uima/internal/util/Int2IntPerfTest.java |  310 +-
 .../internal/util/UIMATypeSystemClassLoader.java   |  308 +-
 .../util/UIMATypeSystemClassLoaderInjector.java    |  238 +-
 .../org/apache/uima/jcas/cas/JavaObjectArray.java  |  386 +-
 .../src/org/apache/uima/jcas/impl/CASMetadata.java |   82 +-
 .../uima/jcas/impl/JCasCoverClassFactory.java      |  704 +-
 .../uima/jcas/impl/JCasCoverClassFactoryTest.java  |  122 +-
 .../src/org/apache/uima/jcas/impl/JCasHashMap.java |  888 +--
 .../uima/jcas/impl/JCasHashMapCompareTest.java     |  400 +-
 .../apache/uima/jcas/impl/JCasHashMapSubMap.java   |  836 +-
 .../org/apache/uima/jcas/impl/JCasHashMapTest.java |  945 +--
 .../apache/uima/jcasgen/JCasClassDefinition.java   |  134 +-
 .../uima/jcasgen/impl/JCasClassConversion.java     |  508 +-
 .../uima/tools/jcas/internal/AnalyzeContent.java   |  690 +-
 .../uima/tools/jcasgen/DecompiledFilter.java       |  312 +-
 .../src/study/asm/decompiled/AnnotationDumpV3.java |  568 +-
 1457 files changed, 139641 insertions(+), 132440 deletions(-)
 create mode 100644 PearPackagingMavenPlugin/.gitignore
 create mode 100755 installEclipseSettings.sh
 create mode 100644 jVinci/.gitignore
 create mode 100644 jcasgen-maven-plugin/.gitignore
 create mode 100644 src/main/eclipse/org.eclipse.jdt.core.prefs
 create mode 100644 src/main/eclipse/org.eclipse.jdt.ui.prefs
 create mode 100644 uimaj-adapter-soap/.gitignore
 create mode 100644 uimaj-adapter-vinci/.gitignore
 create mode 100644 uimaj-bootstrap/.gitignore
 create mode 100644 uimaj-component-test-util/.gitignore
 create mode 100644 uimaj-core/.gitignore
 create mode 100644 uimaj-document-annotation/.gitignore
 create mode 100644 uimaj-ep-cas-editor-ide/.gitignore
 create mode 100644 uimaj-ep-cas-editor/.gitignore
 create mode 100644 uimaj-ep-configurator/.gitignore
 create mode 100644 uimaj-ep-debug/.gitignore
 create mode 100644 uimaj-ep-jcasgen/.gitignore
 create mode 100644 uimaj-ep-launcher/.gitignore
 create mode 100644 uimaj-ep-pear-packager/.gitignore
 create mode 100644 uimaj-ep-runtime/.gitignore
 create mode 100644 uimaj-examples/.gitignore
 create mode 100644 uimaj-json/.gitignore
 create mode 100644 uimaj-test-util/.gitignore
 create mode 100644 uimaj-tools/.gitignore

[uima-uimaj] 01/01: Merge branch 'main' into bugfix/UIMA-6377-Spurious-multipleReferencesAllowed-warning-when-serializing-empty-arrays

Posted by re...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rec pushed a commit to branch bugfix/UIMA-6377-Spurious-multipleReferencesAllowed-warning-when-serializing-empty-arrays
in repository https://gitbox.apache.org/repos/asf/uima-uimaj.git

commit d60316a7d6336f5f033583f6ee2897e237bf71e8
Merge: ee7fef8 58f220a
Author: Richard Eckart de Castilho <re...@apache.org>
AuthorDate: Fri Jul 9 14:40:20 2021 +0200

    Merge branch 'main' into bugfix/UIMA-6377-Spurious-multipleReferencesAllowed-warning-when-serializing-empty-arrays
    
    * main: (41 commits)
      [UIMA-6372] Upgrade from JUnit 3 to JUnit 4 to JUnit 5
      [UIMA-6372] Upgrade from JUnit 3 to JUnit 4 to JUnit 5
      [UIMA-6372] Upgrade from JUnit 3 to JUnit 4 to JUnit 5
      [UIMA-6373] Format UIMA Core Java SDK codebase
      [UIMA-6373] Format UIMA Core Java SDK codebase
      [UIMA-6372] Upgrade from JUnit 3 to JUnit 4 to JUnit 5
      [UIMA-6373] Format UIMA Core Java SDK codebase
      [UIMA-6373] Format UIMA Core Java SDK codebase
      [UIMA-6373] Format UIMA Core Java SDK codebase
      [UIMA-6373] Format UIMA Core Java SDK codebase
      [UIMA-6373] Format UIMA Core Java SDK codebase
      [UIMA-6373] Format UIMA Core Java SDK codebase
      [UIMA-6373] Format UIMA Core Java SDK codebase
      [UIMA-6373] Format UIMA Core Java SDK codebase
      [UIMA-6373] Format UIMA Core Java SDK codebase
      [UIMA-6373] Format UIMA Core Java SDK codebase
      [UIMA-6373] Format UIMA Core Java SDK codebase
      [UIMA-6373] Format UIMA Core Java SDK codebase
      [UIMA-6373] Format UIMA Core Java SDK codebase
      [UIMA-6373] Format UIMA Core Java SDK codebase
      ...
    
    # Conflicts:
    #	uimaj-core/src/main/java/org/apache/uima/cas/impl/CasSerializerSupport.java

 .gitignore                                         |    2 +
 PearPackagingMavenPlugin/.gitignore                |    2 +
 PearPackagingMavenPlugin/pom.xml                   |    2 +-
 .../apache/uima/pear/tools/PearPackagingMojo.java  |    7 +-
 aggregate-uimaj-docbooks/pom.xml                   |    2 +-
 aggregate-uimaj-eclipse-plugins/pom.xml            |    2 +-
 aggregate-uimaj/pom.xml                            |    2 +-
 installEclipseSettings.sh                          |   71 +
 jVinci/.gitignore                                  |    2 +
 jVinci/pom.xml                                     |    2 +-
 .../org/apache/vinci/transport/Attributes.java     |    4 +-
 .../org/apache/vinci/transport/BaseServer.java     |    3 +-
 .../apache/vinci/transport/BaseServerRunnable.java |    1 +
 .../org/apache/vinci/transport/ErrorFrame.java     |    1 -
 .../java/org/apache/vinci/transport/Frame.java     |    3 +
 .../java/org/apache/vinci/transport/FrameLeaf.java |    1 +
 .../apache/vinci/transport/LeafCastException.java  |    1 -
 .../vinci/transport/SimpleTransportable.java       |    2 +
 .../org/apache/vinci/transport/VinciClient.java    |    3 +-
 .../org/apache/vinci/transport/VinciFrame.java     |    7 +
 .../vinci/transport/VinciServableAdapter.java      |    3 +
 .../org/apache/vinci/transport/VinciServer.java    |    2 +
 .../vinci/transport/VinciServerRunnable.java       |    1 +
 .../apache/vinci/transport/XTalkTransporter.java   |    2 +
 .../vinci/transport/context/VinciContext.java      |    1 +
 .../apache/vinci/transport/document/AFrame.java    |    5 +
 .../vinci/transport/document/AFrameLeaf.java       |    2 +
 .../vinci/transport/document/XMLToVinci.java       |   18 +-
 .../vinci/transport/document/XMLToXTalk.java       |    3 +
 .../vinci/transport/document/XTalkToSAX.java       |    3 +-
 .../transport/util/Base64FormatException.java      |    1 -
 .../vinci/transport/vns/client/ResolveResult.java  |    4 +
 .../vinci/transport/vns/client/ServeonResult.java  |    2 +
 .../vinci/transport/vns/service/Service.java       |    4 +
 .../vinci/transport/vns/service/ServiceAlias.java  |    1 +
 .../vinci/transport/vns/service/ServiceInfo.java   |    1 +
 .../transport/vns/service/ServiceInterface.java    |    2 +-
 .../transport/vns/service/ServiceRegistry.java     |    4 +-
 .../apache/vinci/transport/vns/service/VNS.java    |    7 +
 jcasgen-maven-plugin/.gitignore                    |    2 +
 jcasgen-maven-plugin/pom.xml                       |   13 +-
 .../uima/tools/jcasgen/maven/JCasGenM2ETest.java   |   12 +-
 .../uima/tools/jcasgen/maven/JCasGenMojo.java      |    6 +
 .../uima/tools/jcasgen/maven/JCasGenMojoTest.java  |   22 +-
 .../src/test/resources/invalidFeature/pom.xml      |   88 +-
 pom.xml                                            |    5 +-
 src/main/eclipse/org.eclipse.jdt.core.prefs        |  398 +
 src/main/eclipse/org.eclipse.jdt.ui.prefs          |  121 +
 uima-doc-v3-users-guide/pom.xml                    |    2 +-
 uima-docbook-overview-and-setup/pom.xml            |    2 +-
 uima-docbook-references/pom.xml                    |    2 +-
 uima-docbook-tools/pom.xml                         |    2 +-
 uima-docbook-tutorials-and-users-guides/pom.xml    |    2 +-
 uimaj-adapter-soap/.gitignore                      |    2 +
 uimaj-adapter-soap/pom.xml                         |    2 +-
 uimaj-adapter-vinci/.gitignore                     |    2 +
 uimaj-adapter-vinci/pom.xml                        |   13 +-
 .../uima/adapter/vinci/CASTransportable.java       |   19 +-
 .../vinci/VinciAnalysisEngineServiceAdapter.java   |    1 +
 .../VinciBinaryAnalysisEngineServiceStub.java      |    5 +
 .../VinciBinaryAnalysisEngineService_impl.java     |    3 +
 .../apache/uima/adapter/vinci/util/Descriptor.java |    1 +
 .../adapter/vinci/util/SaxVinciFrameBuilder.java   |    7 +-
 .../vinci/util/UimaSaxVinciFrameBuilder.java       |    1 +
 .../uima/adapter/vinci/util/VinciSaxParser.java    |    7 +-
 .../VinciAnalysisEngineServiceAdapterTest.java     |   78 +-
 uimaj-bootstrap/.gitignore                         |    2 +
 uimaj-bootstrap/pom.xml                            |    2 +-
 .../org/apache/uima/bootstrap/UimaBootstrap.java   |  417 +-
 uimaj-component-test-util/.gitignore               |    2 +
 uimaj-component-test-util/pom.xml                  |   11 +-
 .../AnnotatorPerformanceTester.java                |    4 +-
 .../uima/test/junit_extension/AnnotatorTester.java |   77 +-
 .../junit_extension/PerformanceTestResult.java     |   36 +-
 uimaj-core/.gitignore                              |    2 +
 uimaj-core/pom.xml                                 |   12 +-
 .../org/apache/uima/CompositeResourceFactory.java  |    6 +-
 .../src/main/java/org/apache/uima/Constants.java   |   15 +-
 .../main/java/org/apache/uima/I18nExceptionI.java  |  200 +-
 .../apache/uima/InternationalizedException.java    |  381 +-
 .../uima/InternationalizedRuntimeException.java    |   68 +-
 .../main/java/org/apache/uima/List_of_ints.java    |  864 +-
 .../main/java/org/apache/uima/ResourceFactory.java |   37 +-
 .../org/apache/uima/ResourceSpecifierFactory.java  |  141 +-
 .../main/java/org/apache/uima/UIMAException.java   |   97 +-
 .../main/java/org/apache/uima/UIMAFramework.java   |  511 +-
 .../java/org/apache/uima/UIMARuntimeException.java |  144 +-
 .../apache/uima/UIMA_IllegalArgumentException.java |   17 +-
 .../apache/uima/UIMA_IllegalStateException.java    |   40 +-
 .../uima/UIMA_UnsupportedOperationException.java   |   20 +-
 .../src/main/java/org/apache/uima/UimaContext.java |  241 +-
 .../java/org/apache/uima/UimaContextAdmin.java     |   71 +-
 .../java/org/apache/uima/UimaContextHolder.java    |   24 +-
 .../java/org/apache/uima/UimaSerializable.java     |   99 +-
 .../java/org/apache/uima/UimaSerializableFSs.java  |   75 +-
 .../uima/analysis_component/AnalysisComponent.java |   24 +-
 .../AnalysisComponent_ImplBase.java                |   27 +-
 .../analysis_component/Annotator_ImplBase.java     |    3 +
 .../analysis_component/CasAnnotator_ImplBase.java  |   17 +-
 .../analysis_component/CasMultiplier_ImplBase.java |   24 +-
 .../analysis_component/JCasAnnotator_ImplBase.java |    9 +-
 .../JCasMultiplier_ImplBase.java                   |   16 +-
 .../uima/analysis_engine/AnalysisEngine.java       |  286 +-
 .../analysis_engine/AnalysisEngineDescription.java |  106 +-
 .../analysis_engine/AnalysisEngineManagement.java  |   26 +-
 .../AnalysisEngineProcessException.java            |   29 +-
 .../analysis_engine/AnalysisEngineServiceStub.java |   20 +-
 .../uima/analysis_engine/AnalysisProcessData.java  |   12 +-
 .../apache/uima/analysis_engine/CasIterator.java   |   11 +-
 .../apache/uima/analysis_engine/JCasIterator.java  |   11 +-
 .../ResultNotSupportedException.java               |   20 +-
 .../uima/analysis_engine/ResultSpecification.java  |  302 +-
 .../uima/analysis_engine/TaeDescription.java       |    1 -
 .../uima/analysis_engine/TextAnalysisEngine.java   |    1 -
 .../apache/uima/analysis_engine/TypeOrFeature.java |   15 +-
 .../annotator/AnnotatorConfigurationException.java |   27 +-
 .../annotator/AnnotatorContext.java                |  186 +-
 .../annotator/AnnotatorContextException.java       |   20 +-
 .../AnnotatorInitializationException.java          |   23 +-
 .../annotator/AnnotatorProcessException.java       |   18 +-
 .../annotator/Annotator_ImplBase.java              |   19 +-
 .../analysis_engine/annotator/BaseAnnotator.java   |   17 +-
 .../annotator/GenericAnnotator.java                |    4 +-
 .../annotator/GenericAnnotator_ImplBase.java       |    6 +-
 .../analysis_engine/annotator/JTextAnnotator.java  |    4 +-
 .../annotator/JTextAnnotator_ImplBase.java         |    2 +-
 .../analysis_engine/annotator/TextAnnotator.java   |    4 +-
 .../org/apache/uima/analysis_engine/asb/ASB.java   |   48 +-
 .../uima/analysis_engine/asb/impl/ASB_impl.java    |  205 +-
 .../analysis_engine/asb/impl/FlowContainer.java    |   34 +-
 .../asb/impl/FlowControllerContainer.java          |  115 +-
 .../impl/AggregateAnalysisEngine_impl.java         |  109 +-
 .../impl/AnalysisEngineDescription_impl.java       |  273 +-
 .../impl/AnalysisEngineImplBase.java               |  255 +-
 .../impl/AnalysisEngineManagementImpl.java         |  101 +-
 .../impl/AnalysisEngineManagementImplMBean.java    |   12 +-
 .../impl/AnalysisProcessData_impl.java             |   20 +-
 .../impl/AnnotatorContext_impl.java                |   49 +-
 .../analysis_engine/impl/EmptyCasIterator.java     |    3 +
 .../analysis_engine/impl/JCasIteratorWrapper.java  |    3 +
 .../impl/MultiprocessingAnalysisEngine_impl.java   |  160 +-
 .../impl/PearAnalysisEngineWrapper.java            |  655 +-
 .../impl/PrimitiveAnalysisEngine_impl.java         |  315 +-
 .../impl/ResultSpecification_impl.java             |  305 +-
 .../apache/uima/analysis_engine/impl/RsFeat.java   |  106 +-
 .../apache/uima/analysis_engine/impl/RsFeats.java  |  265 +-
 .../uima/analysis_engine/impl/RsFullFeatNames.java |  122 +-
 .../apache/uima/analysis_engine/impl/RsLang.java   |  115 +-
 .../apache/uima/analysis_engine/impl/RsLangs.java  |  728 +-
 .../apache/uima/analysis_engine/impl/RsType.java   |  294 +-
 .../uima/analysis_engine/impl/RsTypesMap.java      |  553 +-
 .../analysis_engine/impl/TaeDescription_impl.java  |    4 +-
 .../analysis_engine/impl/TypeOrFeature_impl.java   |   36 +-
 .../impl/UimacppAnalysisEngineImpl.java            |  126 +-
 .../AnalysisComponentAdapterFactory.java           |    7 +-
 .../impl/compatibility/AnnotatorAdapter.java       |   41 +-
 .../impl/compatibility/CasConsumerAdapter.java     |   21 +-
 .../compatibility/CollectionReaderAdapter.java     |   23 +-
 .../metadata/AnalysisEngineMetaData.java           |   26 +-
 .../metadata/CapabilityLanguageFlow.java           |   13 +-
 .../uima/analysis_engine/metadata/FixedFlow.java   |   20 +-
 .../analysis_engine/metadata/FlowConstraints.java  |   10 +-
 .../metadata/FlowControllerDeclaration.java        |   32 +-
 .../uima/analysis_engine/metadata/SofaMapping.java |   18 +-
 .../metadata/impl/AnalysisEngineMetaData_impl.java |   55 +-
 .../metadata/impl/CapabilityLanguageFlow_impl.java |   19 +-
 .../metadata/impl/FixedFlow_impl.java              |    5 +
 .../impl/FlowControllerDeclaration_impl.java       |   32 +-
 .../metadata/impl/SofaMapping_impl.java            |   15 +-
 .../service/impl/AnalysisEngineServiceAdapter.java |   20 +-
 .../service/impl/AnalysisEngineService_impl.java   |   25 +-
 .../service/impl/ServiceDataCargo.java             |   33 +-
 .../main/java/org/apache/uima/cas/AbstractCas.java |    3 +-
 .../org/apache/uima/cas/AbstractCas_ImplBase.java  |    5 +-
 .../java/org/apache/uima/cas/AnnotationBaseFS.java |    4 +-
 .../src/main/java/org/apache/uima/cas/ArrayFS.java |   42 +-
 .../java/org/apache/uima/cas/BooleanArrayFS.java   |   14 +-
 .../main/java/org/apache/uima/cas/ByteArrayFS.java |   13 +-
 .../src/main/java/org/apache/uima/cas/CAS.java     |  633 +-
 .../java/org/apache/uima/cas/CASException.java     |   23 +-
 .../org/apache/uima/cas/CASRuntimeException.java   |  459 +-
 .../main/java/org/apache/uima/cas/CasOwner.java    |    5 +-
 .../java/org/apache/uima/cas/CommonArrayFS.java    |   52 +-
 .../org/apache/uima/cas/ConstraintFactory.java     |    7 +-
 .../java/org/apache/uima/cas/DoubleArrayFS.java    |    8 +-
 .../org/apache/uima/cas/FSBooleanConstraint.java   |  101 +-
 .../java/org/apache/uima/cas/FSComparators.java    |   66 +-
 .../src/main/java/org/apache/uima/cas/FSIndex.java |  229 +-
 .../org/apache/uima/cas/FSIndexRepository.java     |  176 +-
 .../main/java/org/apache/uima/cas/FSIterator.java  |  203 +-
 .../src/main/java/org/apache/uima/cas/Feature.java |   28 +-
 .../main/java/org/apache/uima/cas/FeaturePath.java |  473 +-
 .../java/org/apache/uima/cas/FeatureStructure.java |   81 +-
 .../java/org/apache/uima/cas/FeatureValuePath.java |   72 +-
 .../java/org/apache/uima/cas/FloatArrayFS.java     |   12 +-
 .../main/java/org/apache/uima/cas/IntArrayFS.java  |   14 +-
 .../main/java/org/apache/uima/cas/LongArrayFS.java |   15 +-
 .../src/main/java/org/apache/uima/cas/Marker.java  |   53 +-
 .../java/org/apache/uima/cas/ParsingException.java |    5 +-
 .../main/java/org/apache/uima/cas/SelectFSs.java   | 1835 +++--
 .../java/org/apache/uima/cas/SerialFormat.java     |   53 +-
 .../java/org/apache/uima/cas/ShortArrayFS.java     |   13 +-
 .../src/main/java/org/apache/uima/cas/SofaFS.java  |   45 +-
 .../src/main/java/org/apache/uima/cas/SofaID.java  |   16 +-
 .../java/org/apache/uima/cas/StringArrayFS.java    |   73 +-
 .../src/main/java/org/apache/uima/cas/Type.java    |   25 +-
 .../main/java/org/apache/uima/cas/TypeClass.java   |   51 +-
 .../java/org/apache/uima/cas/TypeNameSpace.java    |    2 -
 .../main/java/org/apache/uima/cas/TypeSystem.java  |   40 +-
 .../apache/uima/cas/admin/CASAdminException.java   |   35 +-
 .../java/org/apache/uima/cas/admin/CASFactory.java |   15 +-
 .../java/org/apache/uima/cas/admin/CASMgr.java     |   17 +-
 .../apache/uima/cas/admin/FSIndexComparator.java   |   27 +-
 .../uima/cas/admin/FSIndexRepositoryMgr.java       |   15 +-
 .../org/apache/uima/cas/admin/LinearTypeOrder.java |   27 +-
 .../uima/cas/admin/LinearTypeOrderBuilder.java     |   10 +-
 .../org/apache/uima/cas/admin/TypeSystemMgr.java   |  114 +-
 .../main/java/org/apache/uima/cas/impl/AllFSs.java |  383 +-
 .../apache/uima/cas/impl/AllowPreexistingFS.java   |   48 +-
 .../apache/uima/cas/impl/AnnotationBaseImpl.java   |   61 +-
 .../org/apache/uima/cas/impl/AnnotationImpl.java   |   61 +-
 .../uima/cas/impl/AnnotationImplException.java     |   12 +-
 .../apache/uima/cas/impl/AnnotationTreeImpl.java   |    4 +-
 .../uima/cas/impl/AnnotationTreeNodeImpl.java      |   13 +-
 .../org/apache/uima/cas/impl/BinaryCasSerDes.java  | 4049 +++++-----
 .../org/apache/uima/cas/impl/BinaryCasSerDes4.java | 3150 ++++----
 .../org/apache/uima/cas/impl/BinaryCasSerDes6.java | 2943 +++----
 .../apache/uima/cas/impl/BooleanArrayFSImpl.java   |   62 +-
 .../apache/uima/cas/impl/BooleanConstraint.java    |  130 +-
 .../org/apache/uima/cas/impl/BuiltinTypeKinds.java |  358 +-
 .../org/apache/uima/cas/impl/ByteArrayFSImpl.java  |   62 +-
 .../java/org/apache/uima/cas/impl/ByteHeap.java    |  237 +-
 .../uima/cas/impl/CASCompleteSerializer.java       |    3 +-
 .../java/org/apache/uima/cas/impl/CASImpl.java     | 3825 ++++-----
 .../org/apache/uima/cas/impl/CASMgrSerializer.java |  147 +-
 .../org/apache/uima/cas/impl/CASSerializer.java    |  756 +-
 .../java/org/apache/uima/cas/impl/CasCompare.java  | 4436 ++++++-----
 .../org/apache/uima/cas/impl/CasSeqAddrMaps.java   |  127 +-
 .../apache/uima/cas/impl/CasSerializerSupport.java | 2871 +++----
 .../java/org/apache/uima/cas/impl/CasState.java    |  117 +-
 .../apache/uima/cas/impl/CasTypeSystemMapper.java  |  143 +-
 .../apache/uima/cas/impl/CommonArrayFSImpl.java    |   61 +-
 .../org/apache/uima/cas/impl/CommonAuxHeap.java    |  402 +-
 .../org/apache/uima/cas/impl/CommonSerDes.java     |  566 +-
 .../uima/cas/impl/CommonSerDesSequential.java      |  432 +-
 .../uima/cas/impl/ConjunctiveConstraint.java       |    3 +-
 .../uima/cas/impl/ConstraintFactoryImpl.java       |  116 +-
 .../apache/uima/cas/impl/CopyOnWriteIndexPart.java |  117 +-
 .../uima/cas/impl/DebugFSLogicalStructure.java     |   29 +-
 .../apache/uima/cas/impl/DebugNameValuePair.java   |    1 +
 .../apache/uima/cas/impl/DeferredIndexUpdates.java |  146 +-
 .../uima/cas/impl/DisjunctiveConstraint.java       |    3 +-
 .../apache/uima/cas/impl/DoubleArrayFSImpl.java    |   62 +-
 .../apache/uima/cas/impl/EmbeddedConstraint.java   |    2 +
 .../uima/cas/impl/FSBooleanConstraintImpl.java     |  132 +-
 .../org/apache/uima/cas/impl/FSClassRegistry.java  | 1770 +++--
 .../org/apache/uima/cas/impl/FSComparator.java     |    5 +-
 .../java/org/apache/uima/cas/impl/FSGenerator.java |   73 +-
 .../org/apache/uima/cas/impl/FSImplComparator.java |    8 +-
 .../uima/cas/impl/FSIndexComparatorImpl.java       |   81 +-
 .../uima/cas/impl/FSIndexRepositoryImpl.java       | 1695 ++--
 .../apache/uima/cas/impl/FSIntConstraintImpl.java  |    7 +
 .../apache/uima/cas/impl/FSIteratorImplBase.java   |  223 +-
 .../uima/cas/impl/FSStringConstraintImpl.java      |    1 -
 .../apache/uima/cas/impl/FSTypeConstraintImpl.java |  112 +-
 .../org/apache/uima/cas/impl/FSsTobeAddedback.java |  109 +-
 .../java/org/apache/uima/cas/impl/FeatureImpl.java |  267 +-
 .../uima/cas/impl/FeatureImpl_jcas_only.java       |   92 +-
 .../org/apache/uima/cas/impl/FeaturePathImpl.java  |  443 +-
 .../apache/uima/cas/impl/FeatureStructureImpl.java |   12 +-
 .../uima/cas/impl/FeatureStructureImplC.java       | 1868 +++--
 .../apache/uima/cas/impl/FeatureValuePathImpl.java | 2125 ++---
 .../org/apache/uima/cas/impl/FilteredIterator.java |   49 +-
 .../org/apache/uima/cas/impl/FloatArrayFSImpl.java |   62 +-
 .../org/apache/uima/cas/impl/FsGenerator3.java     |   64 +-
 .../org/apache/uima/cas/impl/FsGeneratorArray.java |   65 +-
 .../apache/uima/cas/impl/FsIndex_annotation.java   |  316 +-
 .../java/org/apache/uima/cas/impl/FsIndex_bag.java |  171 +-
 .../org/apache/uima/cas/impl/FsIndex_flat.java     |  466 +-
 .../org/apache/uima/cas/impl/FsIndex_iicp.java     | 1263 +--
 .../apache/uima/cas/impl/FsIndex_set_sorted.java   |  572 +-
 .../apache/uima/cas/impl/FsIndex_singletype.java   |  212 +-
 .../org/apache/uima/cas/impl/FsIndex_snapshot.java |  344 +-
 .../cas/impl/FsIterator_aggregation_common.java    |  604 +-
 .../apache/uima/cas/impl/FsIterator_backwards.java |  296 +-
 .../org/apache/uima/cas/impl/FsIterator_bag.java   |  404 +-
 .../apache/uima/cas/impl/FsIterator_bag_pear.java  |   97 +-
 .../apache/uima/cas/impl/FsIterator_limited.java   |  457 +-
 .../uima/cas/impl/FsIterator_multiple_indexes.java |  414 +-
 .../uima/cas/impl/FsIterator_set_sorted2.java      |  677 +-
 .../uima/cas/impl/FsIterator_set_sorted_pear.java  |   99 +-
 .../uima/cas/impl/FsIterator_singletype.java       |  203 +-
 .../uima/cas/impl/FsIterator_subtypes_ordered.java | 1266 +--
 .../cas/impl/FsIterator_subtypes_snapshot.java     |  557 +-
 .../main/java/org/apache/uima/cas/impl/Heap.java   |  627 +-
 .../main/java/org/apache/uima/cas/impl/Id2FS.java  |  704 +-
 .../org/apache/uima/cas/impl/IntArrayFSImpl.java   |   62 +-
 .../org/apache/uima/cas/impl/IntConstraint.java    |    2 +
 .../uima/cas/impl/LLUnambiguousIteratorImpl.java   |   31 +-
 .../uima/cas/impl/LinearTypeOrderBuilderImpl.java  |  152 +-
 .../org/apache/uima/cas/impl/LongArrayFSImpl.java  |   62 +-
 .../java/org/apache/uima/cas/impl/LongHeap.java    |  228 +-
 .../java/org/apache/uima/cas/impl/LongSet.java     |  155 +-
 .../java/org/apache/uima/cas/impl/LowLevelCAS.java |  127 +-
 .../apache/uima/cas/impl/LowLevelException.java    |   13 +-
 .../org/apache/uima/cas/impl/LowLevelIndex.java    |  150 +-
 .../uima/cas/impl/LowLevelIndexRepository.java     |   11 +-
 .../org/apache/uima/cas/impl/LowLevelIterator.java |   87 +-
 .../uima/cas/impl/LowLevelIterator_empty.java      |  176 +-
 .../apache/uima/cas/impl/LowLevelTypeSystem.java   |   45 +-
 .../java/org/apache/uima/cas/impl/MarkerImpl.java  |   52 +-
 .../apache/uima/cas/impl/MethodHandlesLookup.java  |   65 +-
 .../apache/uima/cas/impl/OutOfTypeSystemData.java  |   27 +-
 .../org/apache/uima/cas/impl/PathConstraint.java   |    1 -
 .../org/apache/uima/cas/impl/SelectFSs_impl.java   | 3612 ++++-----
 .../org/apache/uima/cas/impl/Serialization.java    |  334 +-
 .../org/apache/uima/cas/impl/ShortArrayFSImpl.java |   62 +-
 .../java/org/apache/uima/cas/impl/ShortHeap.java   |  214 +-
 .../java/org/apache/uima/cas/impl/SlotKinds.java   |   90 +-
 .../apache/uima/cas/impl/SlotKindsConstants.java   |  139 +-
 .../java/org/apache/uima/cas/impl/SofaFSImpl.java  |   61 +-
 .../apache/uima/cas/impl/StringArrayFSImpl.java    |   62 +-
 .../org/apache/uima/cas/impl/StringConstraint.java |    2 +
 .../java/org/apache/uima/cas/impl/StringHeap.java  |  126 +-
 .../cas/impl/StringHeapDeserializationHelper.java  |    5 +-
 .../java/org/apache/uima/cas/impl/StringSet.java   |  158 +-
 .../java/org/apache/uima/cas/impl/Subiterator.java | 1036 ++-
 .../java/org/apache/uima/cas/impl/TypeImpl.java    |  984 +--
 .../org/apache/uima/cas/impl/TypeImpl_annot.java   |   74 +-
 .../apache/uima/cas/impl/TypeImpl_annotBase.java   |   75 +-
 .../org/apache/uima/cas/impl/TypeImpl_array.java   |  317 +-
 .../org/apache/uima/cas/impl/TypeImpl_list.java    |   75 +-
 .../apache/uima/cas/impl/TypeImpl_primitive.java   |   78 +-
 .../org/apache/uima/cas/impl/TypeImpl_string.java  |   97 +-
 .../uima/cas/impl/TypeImpl_stringSubtype.java      |  104 +-
 .../apache/uima/cas/impl/TypeNameSpaceImpl.java    |    1 +
 .../org/apache/uima/cas/impl/TypeSystem2Xml.java   |   74 +-
 .../apache/uima/cas/impl/TypeSystemConstants.java  |  236 +-
 .../org/apache/uima/cas/impl/TypeSystemImpl.java   | 2783 +++----
 .../org/apache/uima/cas/impl/TypeSystemUtils.java  |   87 +-
 .../org/apache/uima/cas/impl/UimaDecompiler.java   |  704 +-
 .../org/apache/uima/cas/impl/XCASDeserializer.java |  253 +-
 .../apache/uima/cas/impl/XCASParsingException.java |   52 +-
 .../org/apache/uima/cas/impl/XCASSerializer.java   |  156 +-
 .../apache/uima/cas/impl/XMLTypeSystemConsts.java  |   16 +-
 .../apache/uima/cas/impl/XmiCasDeserializer.java   | 1462 ++--
 .../org/apache/uima/cas/impl/XmiCasSerializer.java | 1035 +--
 .../uima/cas/impl/XmiSerializationSharedData.java  |  445 +-
 .../org/apache/uima/cas/text/AnnotationFS.java     |   69 +-
 .../org/apache/uima/cas/text/AnnotationIndex.java  |  245 +-
 .../apache/uima/cas/text/AnnotationPredicates.java |   15 +-
 .../org/apache/uima/cas/text/AnnotationTree.java   |    4 -
 .../apache/uima/cas/text/AnnotationTreeNode.java   |    4 -
 .../java/org/apache/uima/cas/text/Language.java    |    5 +-
 .../java/org/apache/uima/cas_data/CasData.java     |    6 +-
 .../org/apache/uima/cas_data/FeatureStructure.java |   25 +-
 .../org/apache/uima/cas_data/FeatureValue.java     |    2 +-
 .../org/apache/uima/cas_data/PrimitiveArrayFS.java |    8 +-
 .../org/apache/uima/cas_data/PrimitiveValue.java   |    7 +-
 .../org/apache/uima/cas_data/ReferenceArrayFS.java |    4 +-
 .../org/apache/uima/cas_data/ReferenceValue.java   |    4 +-
 .../org/apache/uima/cas_data/impl/CasDataImpl.java |   17 +-
 .../apache/uima/cas_data/impl/CasDataToXCas.java   |   16 +-
 .../apache/uima/cas_data/impl/CasDataUtils.java    |  118 +-
 .../uima/cas_data/impl/FeatureStructureImpl.java   |   25 +-
 .../uima/cas_data/impl/PrimitiveArrayFSImpl.java   |   14 +-
 .../uima/cas_data/impl/PrimitiveValueImpl.java     |   28 +-
 .../uima/cas_data/impl/ReferenceArrayFSImpl.java   |   11 +-
 .../uima/cas_data/impl/ReferenceValueImpl.java     |   11 +-
 .../cas_data/impl/XCasToCasDataSaxHandler.java     |   23 +-
 .../org/apache/uima/collection/CasConsumer.java    |    7 +-
 .../uima/collection/CasConsumerDescription.java    |    6 +-
 .../uima/collection/CasConsumer_ImplBase.java      |   31 +-
 .../org/apache/uima/collection/CasInitializer.java |   11 +-
 .../uima/collection/CasInitializerDescription.java |    3 +-
 .../uima/collection/CasInitializer_ImplBase.java   |    9 +-
 .../uima/collection/CollectionException.java       |   20 +-
 .../collection/CollectionProcessingEngine.java     |   43 +-
 .../collection/CollectionProcessingManager.java    |   58 +-
 .../apache/uima/collection/CollectionReader.java   |   20 +-
 .../collection/CollectionReaderDescription.java    |   10 +-
 .../uima/collection/CollectionReader_ImplBase.java |   20 +-
 .../uima/collection/EntityProcessStatus.java       |   20 +-
 .../uima/collection/StatusCallbackListener.java    |    5 +-
 .../apache/uima/collection/base_cpm/BaseCPM.java   |   68 +-
 .../collection/base_cpm/BaseCollectionReader.java  |   22 +-
 .../base_cpm/BaseStatusCallbackListener.java       |   12 +-
 .../base_cpm/CasDataCollectionReader.java          |   18 +-
 .../base_cpm/CasDataCollectionReader_ImplBase.java |    4 +
 .../uima/collection/base_cpm/CasDataConsumer.java  |   12 +-
 .../base_cpm/CasDataConsumer_ImplBase.java         |    9 +-
 .../collection/base_cpm/CasDataInitializer.java    |   13 +-
 .../base_cpm/CasDataInitializer_ImplBase.java      |   10 +-
 .../uima/collection/base_cpm/CasDataProcessor.java |   11 +-
 .../base_cpm/CasDataStatusCallbackListener.java    |    5 +-
 .../collection/base_cpm/CasObjectProcessor.java    |   13 +-
 .../uima/collection/base_cpm/CasProcessor.java     |   16 +-
 .../base_cpm/RecoverableCollectionReader.java      |   15 +-
 .../uima/collection/base_cpm/SkipCasException.java |    2 -
 .../uima/collection/base_cpm/SynchPoint.java       |   24 +-
 .../impl/CasConsumerDescription_impl.java          |   22 +-
 .../impl/CasInitializerDescription_impl.java       |   17 +-
 .../impl/CollectionReaderDescription_impl.java     |   29 +-
 ...CasProcessorConfigurationParameterSettings.java |   12 +-
 .../metadata/CasProcessorDeploymentParam.java      |   45 +-
 .../metadata/CasProcessorDeploymentParams.java     |   29 +-
 .../metadata/CasProcessorErrorHandling.java        |   22 +-
 .../metadata/CasProcessorErrorRateThreshold.java   |   38 +-
 .../collection/metadata/CasProcessorExecArg.java   |   14 +-
 .../collection/metadata/CasProcessorExecArgs.java  |   23 +-
 .../metadata/CasProcessorExecutable.java           |   39 +-
 .../collection/metadata/CasProcessorFilter.java    |   16 +-
 .../metadata/CasProcessorMaxRestarts.java          |   37 +-
 .../metadata/CasProcessorRunInSeperateProcess.java |    8 +-
 .../metadata/CasProcessorRuntimeEnvParam.java      |   28 +-
 .../collection/metadata/CasProcessorTimeout.java   |    8 +-
 .../uima/collection/metadata/CpeCasProcessor.java  |  196 +-
 .../uima/collection/metadata/CpeCasProcessors.java |   89 +-
 .../uima/collection/metadata/CpeCheckpoint.java    |   32 +-
 .../collection/metadata/CpeCollectionReader.java   |   35 +-
 .../CpeCollectionReaderCasInitializer.java         |   22 +-
 .../metadata/CpeCollectionReaderIterator.java      |   25 +-
 .../metadata/CpeComponentDescriptor.java           |   45 +-
 .../uima/collection/metadata/CpeConfiguration.java |   75 +-
 .../uima/collection/metadata/CpeDescription.java   |  188 +-
 .../uima/collection/metadata/CpeInclude.java       |    8 +-
 .../collection/metadata/CpeLocalCasProcessor.java  |   36 +-
 .../metadata/CpeResourceManagerConfiguration.java  |    8 +-
 .../uima/collection/metadata/CpeSofaMapping.java   |   14 +-
 .../uima/collection/metadata/CpeSofaMappings.java  |    7 +-
 .../apache/uima/collection/metadata/CpeTimer.java  |   11 +-
 .../uima/collection/metadata/NameValuePair.java    |    8 +-
 .../uima/collection/metadata/OutputQueue.java      |   15 +-
 .../uima/examples/SourceDocumentInformation.java   |    2 +-
 .../uima/flow/CasFlowController_ImplBase.java      |   10 +-
 .../org/apache/uima/flow/CasFlow_ImplBase.java     |   36 +-
 .../src/main/java/org/apache/uima/flow/Flow.java   |   49 +-
 .../java/org/apache/uima/flow/FlowController.java  |   56 +-
 .../uima/flow/FlowControllerDescription.java       |    2 +-
 .../apache/uima/flow/FlowController_ImplBase.java  |   29 +-
 .../uima/flow/JCasFlowController_ImplBase.java     |   12 +-
 .../org/apache/uima/flow/JCasFlow_ImplBase.java    |   33 +-
 .../java/org/apache/uima/flow/ParallelStep.java    |   19 +-
 .../main/java/org/apache/uima/flow/SimpleStep.java |    5 +-
 .../apache/uima/flow/SimpleStepWithResultSpec.java |   21 +-
 .../flow/impl/AnalysisSequenceCapabilityNode.java  |   21 +-
 .../impl/CapabilityLanguageFlowController.java     |  103 +-
 .../flow/impl/CapabilityLanguageFlowObject.java    |  364 +-
 .../apache/uima/flow/impl/FixedFlowController.java |  143 +-
 .../uima/flow/impl/FlowControllerContext_impl.java |   31 +-
 .../flow/impl/FlowControllerDescription_impl.java  |   16 +-
 .../uima/impl/AnalysisEngineFactory_impl.java      |    9 +-
 .../apache/uima/impl/CasConsumerFactory_impl.java  |   30 +-
 .../uima/impl/CasInitializerFactory_impl.java      |   29 +-
 .../apache/uima/impl/ChildUimaContext_impl.java    |   26 +-
 .../uima/impl/CollectionReaderFactory_impl.java    |   41 +-
 .../uima/impl/CompositeResourceFactory_impl.java   |   11 +-
 .../uima/impl/CustomResourceFactory_impl.java      |   58 +-
 .../uima/impl/ResourceSpecifierFactory_impl.java   |   84 +-
 .../org/apache/uima/impl/RootUimaContext_impl.java |   23 +-
 .../java/org/apache/uima/impl/SofaID_impl.java     |    4 +
 .../org/apache/uima/impl/UIMAFramework_impl.java   |   96 +-
 .../org/apache/uima/impl/UimaContext_ImplBase.java |  290 +-
 .../src/main/java/org/apache/uima/impl/Util.java   |   94 +-
 .../uima/internal/util/AnalysisEnginePool.java     |   59 +-
 .../org/apache/uima/internal/util/BinaryTree.java  |    1 -
 .../org/apache/uima/internal/util/BrowserUtil.java |   19 +-
 .../uima/internal/util/CharArraySpanMap.java       |    2 -
 .../apache/uima/internal/util/CharArrayString.java |   14 +-
 .../apache/uima/internal/util/CharacterUtils.java  |    5 +-
 .../org/apache/uima/internal/util/Class_TCCL.java  |  208 +-
 .../uima/internal/util/CommandLineParser.java      |    9 +-
 .../uima/internal/util/Common_hash_support.java    | 1103 +--
 .../uima/internal/util/ComparableFSIterator.java   |   80 +-
 .../uima/internal/util/CopyOnWriteObjHashSet.java  |  407 +-
 .../util/CopyOnWriteOrderedFsSet_array.java        |  309 +-
 .../uima/internal/util/EncodedPrintStream.java     |   10 +-
 .../org/apache/uima/internal/util/I18nUtil.java    |   33 +-
 .../org/apache/uima/internal/util/I18nx_impl.java  |  556 +-
 .../util/InstrumentationFacility_impl.java         |    7 +-
 .../internal/util/Int2IntArrayMapFixedSize.java    |  149 +-
 .../apache/uima/internal/util/Int2ObjHashMap.java  | 1215 ++-
 .../apache/uima/internal/util/Int2ObjListMap.java  |  133 +-
 .../apache/uima/internal/util/IntArrayUtils.java   |   30 +-
 .../org/apache/uima/internal/util/IntBitSet.java   |  646 +-
 .../apache/uima/internal/util/IntComparator.java   |    6 +-
 .../org/apache/uima/internal/util/IntHashSet.java  | 2088 ++---
 .../uima/internal/util/IntKeyValueIterator.java    |    2 +-
 .../apache/uima/internal/util/IntListIterator.java |   18 +-
 .../uima/internal/util/IntPointerIterator.java     |    4 +-
 .../java/org/apache/uima/internal/util/IntSet.java |   65 +-
 .../org/apache/uima/internal/util/IntStack.java    |   20 +-
 .../org/apache/uima/internal/util/IntVector.java   |  246 +-
 .../org/apache/uima/internal/util/JavaTimer.java   |    9 +-
 .../apache/uima/internal/util/JmxMBeanAgent.java   |  102 +-
 .../java/org/apache/uima/internal/util/Misc.java   | 2601 +++---
 .../internal/util/MsgLocalizationClassLoader.java  |  445 +-
 .../uima/internal/util/Obj2IntIdentityHashMap.java | 1184 +--
 .../org/apache/uima/internal/util/ObjHashSet.java  | 1404 ++--
 .../uima/internal/util/OrderedFsSet_array.java     | 1407 ++--
 .../uima/internal/util/OrderedFsSet_array2.java    | 4335 +++++-----
 .../java/org/apache/uima/internal/util/Pair.java   |  160 +-
 .../apache/uima/internal/util/PositiveIntSet.java  |  285 +-
 .../uima/internal/util/PositiveIntSet_impl.java    | 1524 ++--
 .../uima/internal/util/ReplaceStringInFiles.java   |   24 +-
 .../apache/uima/internal/util/ResourcePool.java    |   19 +-
 .../uima/internal/util/SerializationUtils.java     |   18 +-
 .../apache/uima/internal/util/SortedIntSet.java    |   19 +-
 .../apache/uima/internal/util/StringToIntMap.java  |    9 +-
 .../org/apache/uima/internal/util/StringUtils.java |   15 +-
 .../org/apache/uima/internal/util/SymbolTable.java |    5 +-
 .../uima/internal/util/TextAnalysisEnginePool.java |    9 +-
 .../uima/internal/util/TextStringTokenizer.java    |   16 +-
 .../apache/uima/internal/util/TextTokenizer.java   |   60 +-
 .../org/apache/uima/internal/util/TimeSpan.java    |   17 +-
 .../java/org/apache/uima/internal/util/Timer.java  |    1 -
 .../apache/uima/internal/util/UIMAClassLoader.java |  133 +-
 .../uima/internal/util/UIMALogFormatter.java       |    3 +-
 .../uima/internal/util/UIMAStreamHandler.java      |    1 +
 .../org/apache/uima/internal/util/UtilError.java   |    6 +-
 .../org/apache/uima/internal/util/Utilities.java   |   70 +-
 .../apache/uima/internal/util/WeakIdentityMap.java |  125 +-
 .../org/apache/uima/internal/util/XMLUtils.java    |  328 +-
 .../apache/uima/internal/util/XmlAttribute.java    |    2 +-
 .../apache/uima/internal/util/XmlElementName.java  |   12 +-
 .../internal/util/XmlElementNameAndContents.java   |   11 +-
 .../uima/internal/util/function/Consumer2.java     |   48 +-
 .../util/function/Consumer_T_withIOException.java  |   52 +-
 .../util/function/Consumer_withSaxException.java   |   52 +-
 .../internal/util/function/DeserBinaryIndexes.java |   52 +-
 .../util/function/IntConsumer_withIOException.java |   52 +-
 .../util/function/Runnable_withException.java      |   48 +-
 .../util/function/Runnable_withSaxException.java   |   52 +-
 .../uima/internal/util/function/package-info.java  |   48 +-
 .../internal/util/rb_trees/CompIntArrayRBT.java    |   11 +-
 .../uima/internal/util/rb_trees/Int2IntRBT.java    |  180 +-
 .../uima/internal/util/rb_trees/IntArrayRBT.java   |  464 +-
 .../internal/util/rb_trees/IntArrayRBTcommon.java  | 1628 ++--
 .../uima/internal/util/rb_trees/IntRBTArray.java   |   27 +-
 .../uima/internal/util/rb_trees/IntRBTNode.java    |    9 +-
 .../internal/util/rb_trees/IntRedBlackTree.java    |   13 +-
 .../uima/internal/util/rb_trees/RBTNode.java       |   19 +-
 .../uima/internal/util/rb_trees/RedBlackTree.java  |   23 +-
 .../src/main/java/org/apache/uima/jcas/JCas.java   |  628 +-
 .../java/org/apache/uima/jcas/JCasRegistry.java    |  119 +-
 .../org/apache/uima/jcas/JFSIndexRepository.java   |   36 +-
 .../org/apache/uima/jcas/cas/AnnotationBase.java   |   85 +-
 .../apache/uima/jcas/cas/AnnotationBase_Type.java  |  166 +-
 .../java/org/apache/uima/jcas/cas/ArrayFSImpl.java |   64 +-
 .../org/apache/uima/jcas/cas/BooleanArray.java     |   77 +-
 .../java/org/apache/uima/jcas/cas/ByteArray.java   |   77 +-
 .../java/org/apache/uima/jcas/cas/CommonList.java  |  659 +-
 .../apache/uima/jcas/cas/CommonPrimitiveArray.java |   85 +-
 .../java/org/apache/uima/jcas/cas/DoubleArray.java |   86 +-
 .../java/org/apache/uima/jcas/cas/EmptyFSList.java |   19 +-
 .../org/apache/uima/jcas/cas/EmptyFloatList.java   |   15 +-
 .../org/apache/uima/jcas/cas/EmptyIntegerList.java |   15 +-
 .../java/org/apache/uima/jcas/cas/EmptyList.java   |   55 +-
 .../org/apache/uima/jcas/cas/EmptyStringList.java  |   15 +-
 .../java/org/apache/uima/jcas/cas/FSArray.java     |  164 +-
 .../java/org/apache/uima/jcas/cas/FSArrayList.java |    2 +-
 .../java/org/apache/uima/jcas/cas/FSHashSet.java   |    2 +-
 .../org/apache/uima/jcas/cas/FSLinkedHashSet.java  |    2 +-
 .../main/java/org/apache/uima/jcas/cas/FSList.java |  153 +-
 .../java/org/apache/uima/jcas/cas/FloatArray.java  |   85 +-
 .../java/org/apache/uima/jcas/cas/FloatList.java   |   82 +-
 .../main/java/org/apache/uima/jcas/cas/Int2FS.java |  264 +-
 .../org/apache/uima/jcas/cas/IntegerArray.java     |   84 +-
 .../org/apache/uima/jcas/cas/IntegerArrayList.java |    2 +-
 .../java/org/apache/uima/jcas/cas/IntegerList.java |   75 +-
 .../java/org/apache/uima/jcas/cas/LongArray.java   |   90 +-
 .../org/apache/uima/jcas/cas/NonEmptyFSList.java   |  109 +-
 .../apache/uima/jcas/cas/NonEmptyFloatList.java    |  100 +-
 .../apache/uima/jcas/cas/NonEmptyIntegerList.java  |  105 +-
 .../org/apache/uima/jcas/cas/NonEmptyList.java     |   51 +-
 .../apache/uima/jcas/cas/NonEmptyStringList.java   |  106 +-
 .../apache/uima/jcas/cas/SelectViaCopyToArray.java |  191 +-
 .../java/org/apache/uima/jcas/cas/ShortArray.java  |   70 +-
 .../main/java/org/apache/uima/jcas/cas/Sofa.java   |  321 +-
 .../java/org/apache/uima/jcas/cas/StringArray.java |   69 +-
 .../java/org/apache/uima/jcas/cas/StringList.java  |   53 +-
 .../main/java/org/apache/uima/jcas/cas/TOP.java    |   72 +-
 .../java/org/apache/uima/jcas/cas/TOP_Type.java    |  430 +-
 .../org/apache/uima/jcas/impl/JCasHashMap.java     |  297 +-
 .../apache/uima/jcas/impl/JCasHashMapSubMap.java   | 1442 ++--
 .../java/org/apache/uima/jcas/impl/JCasImpl.java   |  751 +-
 .../uima/jcas/impl/JFSIndexRepositoryImpl.java     |   20 +-
 .../java/org/apache/uima/jcas/tcas/Annotation.java |  193 +-
 .../org/apache/uima/jcas/tcas/Annotation_Type.java |  275 +-
 .../uima/pear/tools/InstallationController.java    |  411 +-
 .../uima/pear/tools/InstallationDescriptor.java    |   94 +-
 .../pear/tools/InstallationDescriptorHandler.java  |   20 +-
 .../uima/pear/tools/InstallationProcessor.java     |   44 +-
 .../apache/uima/pear/tools/InstallationTester.java |  346 +-
 .../uima/pear/tools/LocalInstallationAgent.java    |   34 +-
 .../org/apache/uima/pear/tools/PackageBrowser.java |   80 +-
 .../org/apache/uima/pear/tools/PackageCreator.java |   40 +-
 .../uima/pear/tools/PackageCreatorException.java   |   16 +-
 .../apache/uima/pear/tools/PackageInstaller.java   |  459 +-
 .../uima/pear/tools/PackageInstallerException.java |   19 +-
 .../apache/uima/pear/tools/PackageSelectorGUI.java |    7 +
 .../uima/pear/tools/SimplePackageSelector.java     |   15 +-
 .../java/org/apache/uima/pear/util/FileUtil.java   |  145 +-
 .../org/apache/uima/pear/util/MessageRouter.java   |   26 +-
 .../org/apache/uima/pear/util/ProcessUtil.java     |   46 +-
 .../java/org/apache/uima/pear/util/StringUtil.java |    4 +-
 .../java/org/apache/uima/pear/util/UIMAUtil.java   |   52 +-
 .../java/org/apache/uima/pear/util/XMLUtil.java    |  179 +-
 .../org/apache/uima/resource/CasDefinition.java    |   25 +-
 .../java/org/apache/uima/resource/CasManager.java  |   59 +-
 .../ConfigurableDataResourceSpecifier.java         |    8 +-
 .../apache/uima/resource/ConfigurableResource.java |   53 +-
 .../resource/ConfigurableResource_ImplBase.java    |   13 +-
 .../apache/uima/resource/ConfigurationManager.java |   54 +-
 .../uima/resource/CustomResourceSpecifier.java     |   37 +-
 .../org/apache/uima/resource/DataResource.java     |   34 +-
 .../uima/resource/ExternalResourceDependency.java  |   22 +-
 .../uima/resource/ExternalResourceDescription.java |   21 +-
 .../resource/FileLanguageResourceSpecifier.java    |   11 +-
 .../uima/resource/FileResourceSpecifier.java       |    8 +-
 .../uima/resource/JMSMessagingSpecifier.java       |   19 +-
 .../apache/uima/resource/MQMessagingSpecifier.java |    9 +-
 .../uima/resource/MailMessagingSpecifier.java      |   17 +-
 .../org/apache/uima/resource/ManagementObject.java |   14 +-
 .../apache/uima/resource/MessagingSpecifier.java   |   41 +-
 .../uima/resource/ParameterizedDataResource.java   |    2 +-
 .../org/apache/uima/resource/PearSpecifier.java    |   42 +-
 .../apache/uima/resource/RelativePathResolver.java |   10 +-
 .../java/org/apache/uima/resource/Resource.java    |   91 +-
 .../uima/resource/ResourceAccessException.java     |   20 +-
 .../resource/ResourceConfigurationException.java   |   39 +-
 .../uima/resource/ResourceCreationSpecifier.java   |  108 +-
 .../resource/ResourceInitializationException.java  |   79 +-
 .../org/apache/uima/resource/ResourceManager.java  |  244 +-
 .../uima/resource/ResourceManagerPearWrapper.java  |   88 +-
 .../uima/resource/ResourceProcessException.java    |   17 +-
 .../uima/resource/ResourceServiceException.java    |   17 +-
 .../uima/resource/ResourceServiceSpecifier.java    |    4 +-
 .../apache/uima/resource/ResourceServiceStub.java  |    7 +-
 .../uima/resource/ResourceSpecifierList.java       |   12 +-
 .../apache/uima/resource/Resource_ImplBase.java    |   93 +-
 .../java/org/apache/uima/resource/Session.java     |   18 +-
 .../apache/uima/resource/SharedResourceObject.java |    9 +-
 .../org/apache/uima/resource/URISpecifier.java     |   28 +-
 .../apache/uima/resource/impl/CasManager_impl.java |  182 +-
 .../ConfigurableDataResourceSpecifier_impl.java    |   13 +-
 .../impl/ConfigurableDataResource_impl.java        |    7 +
 .../impl/ConfigurationManagerImplBase.java         |  117 +-
 .../resource/impl/ConfigurationManager_impl.java   |   49 +-
 .../impl/CustomResourceSpecifier_impl.java         |   44 +-
 .../uima/resource/impl/DataResource_impl.java      |   40 +-
 .../impl/ExternalResourceDependency_impl.java      |   16 +-
 .../impl/ExternalResourceDescription_impl.java     |   20 +-
 .../impl/FileLanguageResourceSpecifier_impl.java   |    9 +-
 .../resource/impl/FileLanguageResource_impl.java   |   15 +-
 .../resource/impl/FileResourceSpecifier_impl.java  |   15 +-
 .../apache/uima/resource/impl/Parameter_impl.java  |    7 +
 .../uima/resource/impl/PearSpecifier_impl.java     |   14 +-
 .../resource/impl/RelativePathResolver_impl.java   |   15 +-
 .../impl/ResourceCreationSpecifier_impl.java       |   71 +-
 .../uima/resource/impl/ResourceManager_impl.java   |  423 +-
 .../resource/impl/SessionNamespaceView_impl.java   |    3 +-
 .../apache/uima/resource/impl/Session_impl.java    |    3 +-
 .../uima/resource/impl/URISpecifier_impl.java      |   11 +
 .../uima/resource/metadata/AllowedValue.java       |    8 +-
 .../apache/uima/resource/metadata/Capability.java  |   65 +-
 .../uima/resource/metadata/ConfigurationGroup.java |   19 +-
 .../resource/metadata/ConfigurationParameter.java  |   57 +-
 .../ConfigurationParameterDeclarations.java        |   55 +-
 .../metadata/ConfigurationParameterSettings.java   |   30 +-
 .../resource/metadata/ExternalResourceBinding.java |   11 +-
 .../uima/resource/metadata/FeatureDescription.java |   20 +-
 .../uima/resource/metadata/FsIndexCollection.java  |   44 +-
 .../uima/resource/metadata/FsIndexDescription.java |   25 +-
 .../resource/metadata/FsIndexKeyDescription.java   |   20 +-
 .../org/apache/uima/resource/metadata/Import.java  |   12 +-
 .../resource/metadata/LanguagePrecondition.java    |   21 +-
 .../uima/resource/metadata/MetaDataObject.java     |   48 +-
 .../resource/metadata/MimeTypePrecondition.java    |   14 +-
 .../uima/resource/metadata/NameValuePair.java      |    8 +-
 .../resource/metadata/OperationalProperties.java   |   14 +-
 .../uima/resource/metadata/Precondition.java       |   14 +-
 .../metadata/ProcessingResourceMetaData.java       |   46 +-
 .../metadata/ResourceManagerConfiguration.java     |   52 +-
 .../uima/resource/metadata/ResourceMetaData.java   |   38 +-
 .../uima/resource/metadata/SimplePrecondition.java |   58 +-
 .../uima/resource/metadata/TypeDescription.java    |   34 +-
 .../uima/resource/metadata/TypePriorities.java     |   42 +-
 .../uima/resource/metadata/TypePriorityList.java   |   11 +-
 .../resource/metadata/TypeSystemDescription.java   |   45 +-
 .../resource/metadata/impl/AllowedValue_impl.java  |    5 +
 .../resource/metadata/impl/Capability_impl.java    |   35 +-
 .../metadata/impl/ConfigurationGroup_impl.java     |   24 +-
 .../ConfigurationParameterDeclarations_impl.java   |   41 +-
 .../impl/ConfigurationParameterSettings_impl.java  |   55 +-
 .../metadata/impl/ConfigurationParameter_impl.java |   48 +-
 .../impl/ExternalResourceBinding_impl.java         |   13 +-
 .../metadata/impl/FeatureDescription_impl.java     |   15 +-
 .../metadata/impl/FsIndexCollection_impl.java      |   55 +-
 .../metadata/impl/FsIndexDescription_impl.java     |   11 +-
 .../metadata/impl/FsIndexKeyDescription_impl.java  |   42 +-
 .../uima/resource/metadata/impl/Import_impl.java   |   60 +-
 .../metadata/impl/LanguagePrecondition_impl.java   |   37 +-
 .../impl/MetaDataObjectSerializer_indent.java      |  919 +--
 .../impl/MetaDataObjectSerializer_plain.java       |  292 +-
 .../metadata/impl/MetaDataObject_impl.java         |  754 +-
 .../metadata/impl/MimeTypePrecondition_impl.java   |   38 +-
 .../resource/metadata/impl/NameValuePair_impl.java |   11 +-
 .../metadata/impl/OperationalProperties_impl.java  |   33 +-
 .../impl/ProcessingResourceMetaData_impl.java      |    5 +-
 .../resource/metadata/impl/PropertyXmlInfo.java    |   14 +-
 .../impl/ResourceManagerConfiguration_impl.java    |  103 +-
 .../metadata/impl/ResourceMetaData_impl.java       |   54 +-
 .../metadata/impl/SimplePrecondition_impl.java     |   29 +-
 .../metadata/impl/TypeDescription_impl.java        |   20 +-
 .../metadata/impl/TypePriorities_impl.java         |   91 +-
 .../metadata/impl/TypePriorityList_impl.java       |   19 +-
 .../metadata/impl/TypeSystemDescription_impl.java  |   54 +-
 .../service/impl/ResourceServiceAdapter.java       |   10 +-
 .../service/impl/ResourceService_impl.java         |   11 +-
 .../java/org/apache/uima/search/Attribute.java     |    8 +-
 .../main/java/org/apache/uima/search/Filter.java   |   10 +-
 .../org/apache/uima/search/IndexBuildItem.java     |   36 +-
 .../uima/search/IndexBuildSpecification.java       |   24 +-
 .../java/org/apache/uima/search/IndexRule.java     |    4 +-
 .../org/apache/uima/search/IndexingException.java  |   17 +-
 .../main/java/org/apache/uima/search/Mapping.java  |    8 +-
 .../main/java/org/apache/uima/search/Style.java    |   43 +-
 .../apache/uima/search/impl/Attribute_impl.java    |    7 +
 .../org/apache/uima/search/impl/Filter_impl.java   |   15 +-
 .../uima/search/impl/IndexBuildItem_impl.java      |    7 +
 .../search/impl/IndexBuildSpecification_impl.java  |   14 +-
 .../apache/uima/search/impl/IndexRule_impl.java    |    3 +
 .../org/apache/uima/search/impl/Mapping_impl.java  |   12 +-
 .../org/apache/uima/search/impl/Style_impl.java    |   12 +-
 .../org/apache/uima/uimacpp/CppUimajEngine.java    |   20 +-
 .../uima/uimacpp/UimacppAnalysisComponent.java     |  131 +-
 .../org/apache/uima/uimacpp/UimacppEngine.java     |   78 +-
 .../org/apache/uima/uimacpp/UimacppException.java  |    6 +-
 .../util/AnalysisEnginePerformanceReports.java     |    1 +
 .../org/apache/uima/util/AnalysisEngineUtils.java  |    2 +-
 .../apache/uima/util/AutoCloseableNoException.java |   68 +-
 .../main/java/org/apache/uima/util/CasCopier.java  | 1135 +--
 .../org/apache/uima/util/CasCreationUtils.java     |  907 ++-
 .../main/java/org/apache/uima/util/CasIOUtils.java |  395 +-
 .../java/org/apache/uima/util/CasLoadMode.java     |  207 +-
 .../main/java/org/apache/uima/util/CasPool.java    |  128 +-
 .../org/apache/uima/util/CasPoolManagement.java    |   25 +-
 .../java/org/apache/uima/util/CasToInlineXml.java  |   83 +-
 .../uima/util/ConcurrentHashMapWithProducer.java   |  130 +-
 .../org/apache/uima/util/ConsumerCasUtils.java     |    6 +-
 .../main/java/org/apache/uima/util/FileUtils.java  |   46 +-
 .../apache/uima/util/InstrumentationFacility.java  |   12 +-
 .../main/java/org/apache/uima/util/IntEntry.java   |  175 +-
 .../org/apache/uima/util/InvalidXMLException.java  |   27 +-
 .../java/org/apache/uima/util/IteratorNvc.java     |   69 +-
 .../main/java/org/apache/uima/util/JCasPool.java   |    1 +
 .../src/main/java/org/apache/uima/util/Level.java  |    7 +-
 .../src/main/java/org/apache/uima/util/Logger.java |  369 +-
 .../org/apache/uima/util/LoggerPrintStream.java    |   23 +
 .../java/org/apache/uima/util/MessageReport.java   |  122 +-
 .../src/main/java/org/apache/uima/util/Misc.java   |   96 +-
 .../java/org/apache/uima/util/NameClassPair.java   |   11 +-
 .../java/org/apache/uima/util/ProcessTrace.java    |   30 +-
 .../org/apache/uima/util/ProcessTraceEvent.java    |   29 +-
 .../main/java/org/apache/uima/util/Progress.java   |   19 +-
 .../java/org/apache/uima/util/ProgressImpl.java    |    6 +
 .../java/org/apache/uima/util/SaxDeserializer.java |    2 +-
 .../main/java/org/apache/uima/util/Settings.java   |   89 +-
 .../apache/uima/util/SimpleResourceFactory.java    |   48 +-
 .../java/org/apache/uima/util/TCasFormatter.java   |    4 +-
 .../java/org/apache/uima/util/TCasToInlineXml.java |   30 +-
 .../java/org/apache/uima/util/TypeSystemUtil.java  |   19 +-
 .../main/java/org/apache/uima/util/UimaTimer.java  |   14 +-
 .../main/java/org/apache/uima/util/UriUtils.java   |  173 +-
 .../java/org/apache/uima/util/XMLInputSource.java  |   36 +-
 .../main/java/org/apache/uima/util/XMLParser.java  |  120 +-
 .../java/org/apache/uima/util/XMLSerializer.java   |  285 +-
 .../main/java/org/apache/uima/util/XMLizable.java  |   43 +-
 .../org/apache/uima/util/XmlCasDeserializer.java   |   23 +-
 .../org/apache/uima/util/XmlCasSerializer.java     |    2 +-
 .../uima/util/impl/CasPoolManagementImpl.java      |   37 +-
 .../uima/util/impl/CasPoolManagementImplMBean.java |   22 +-
 .../java/org/apache/uima/util/impl/Constants.java  |   84 +-
 .../java/org/apache/uima/util/impl/DataIO.java     |  224 +-
 .../apache/uima/util/impl/JSR47Logger_impl.java    |  123 +-
 .../apache/uima/util/impl/Log4jLogger_impl.java    |  566 +-
 .../apache/uima/util/impl/Logger_common_impl.java  | 2476 +++---
 .../org/apache/uima/util/impl/Logger_impl.java     |   53 +-
 .../org/apache/uima/util/impl/OptimizeStrings.java |  184 +-
 .../uima/util/impl/ProcessTraceEvent_impl.java     |   31 +-
 .../apache/uima/util/impl/ProcessTrace_impl.java   |   73 +-
 .../uima/util/impl/SaxDeserializer_impl.java       |   95 +-
 .../uima/util/impl/SerializationMeasures.java      |  336 +-
 .../org/apache/uima/util/impl/Settings_impl.java   |  162 +-
 .../apache/uima/util/impl/Slf4jLogger_impl.java    |  844 +-
 .../org/apache/uima/util/impl/XMLParser_impl.java  |  250 +-
 .../org/apache/uima/impl/UimaVersion.java          |  138 +-
 uimaj-core/src/test/java/aa/AbstractType.java      |    3 +-
 uimaj-core/src/test/java/aa/ConcreteType.java      |    3 +-
 .../src/test/java/aa/MissingFeatureInCas.java      |    3 +-
 uimaj-core/src/test/java/aa/MissingInCas.java      |    3 +-
 uimaj-core/src/test/java/aa/Root.java              |    3 +-
 uimaj-core/src/test/java/aa/T.java                 |    4 +-
 .../test/java/org/apache/lang/LanguagePair.java    |    4 +-
 .../uima/ae/multiplier/SimpleCasGenerator.java     |  336 +-
 .../org/apache/uima/ae/noop/NoOpAnnotator.java     |  284 +-
 .../impl/AnalysisEngineDescription_implTest.java   |  192 +-
 .../impl/AnalysisEngineManagementImplTest.java     |  135 +-
 .../impl/AnalysisEngine_implTest.java              |  653 +-
 .../analysis_engine/impl/AnnotationWriter.java     |   24 +-
 .../impl/AnnotatorContext_implTest.java            |   70 +-
 .../AnnotatorForCollectionProcessCompleteTest.java |   28 +-
 .../impl/AnnotatorMissingSuper.java                |  127 +-
 .../uima/analysis_engine/impl/BadSegmenter.java    |    6 +-
 .../uima/analysis_engine/impl/ErrorAnnotator.java  |    3 +-
 .../impl/FlowControllerForErrorTest.java           |   39 +-
 .../analysis_engine/impl/MultiViewAnnotator.java   |    4 +-
 .../MultiprocessingAnalysisEngine_implTest.java    |  244 +-
 .../analysis_engine/impl/NewlineResegmenter.java   |    9 +-
 .../analysis_engine/impl/NewlineSegmenter.java     |    6 +-
 .../impl/ParallelFlowController.java               |   32 +-
 .../impl/PearAnalysisEngineWrapperTest.java        |   36 +-
 .../uima/analysis_engine/impl/ResultSpecTest.java  |  407 +-
 .../impl/ResultSpecWithTypeSystemTest.java         |  510 +-
 .../impl/ResultSpecification_implTest.java         |  104 +-
 .../impl/SegmentDroppingFlowController.java        |    9 +-
 .../uima/analysis_engine/impl/TabSegmenter.java    |    4 +-
 .../impl/TaeDescription_implTest.java              |   48 +-
 .../uima/analysis_engine/impl/TestAnnotator.java   |   13 +-
 .../uima/analysis_engine/impl/TestAnnotator2.java  |   62 +-
 .../impl/metadata/MetaDataObjectAssert.java        |    7 +-
 .../impl/metadata/SofaMapping_implTest.java        |   19 +-
 .../sequencer/SequencerCapabilityLanguageTest.java |   48 +-
 .../impl/sequencer/SequencerFixedTest.java         |  100 +-
 .../impl/sequencer/SequencerTestAnnotator.java     |  145 +-
 .../uima/cas/impl/AnnotationIteratorTest.java      |  939 ++-
 .../uima/cas/impl/BinaryCasSerDesPerformance.java  |  162 +-
 .../java/org/apache/uima/cas/impl/CasPoolTest.java |  125 +-
 .../uima/cas/impl/CasTypeSystemMapperTest.java     |  603 +-
 .../apache/uima/cas/impl/ComponentInfoTest.java    |   33 +-
 .../impl/ConcurrentBinarySerializationTest.java    |  150 +-
 .../uima/cas/impl/CustomSerializationTest.java     |  211 +-
 .../org/apache/uima/cas/impl/FSBagIndexTest.java   |  240 +-
 .../java/org/apache/uima/cas/impl/FSIndexTest.java |   16 +-
 .../org/apache/uima/cas/impl/FeaturePathTest.java  | 1566 ++--
 .../java/org/apache/uima/cas/impl/Id2FSTest.java   |  228 +-
 .../cas/impl/IndexCorruptionReportingTest.java     |  179 +-
 .../org/apache/uima/cas/impl/JCasReinitTest.java   |  188 +-
 .../uima/cas/impl/OrderedFsSet_array_Test.java     |  434 +-
 .../org/apache/uima/cas/impl/ProtectIndexTest.java |   38 +-
 .../org/apache/uima/cas/impl/SelectFsAssert.java   |  645 +-
 .../apache/uima/cas/impl/SelectFsNoJCasTest.java   |   32 +-
 .../cas/impl/SelectFsPredicateAlignmentTest.java   |  547 +-
 .../org/apache/uima/cas/impl/SelectFsTest.java     | 3648 +++++----
 .../org/apache/uima/cas/impl/SerDesForm4Test.java  |  851 +-
 .../apache/uima/cas/impl/SerDesForm6ExtraTest.java |   28 +-
 .../org/apache/uima/cas/impl/SerDesForm6Test.java  |  626 +-
 .../org/apache/uima/cas/impl/SerDesTstCommon.java  |  487 +-
 .../uima/cas/impl/UimaV2CasCompatibilityTest.java  |   14 +-
 .../uima/cas/impl/UnambiguousIteratorTest.java     |   16 +-
 .../apache/uima/cas/impl/XCASDeserializerTest.java |  231 +-
 .../uima/cas/impl/XmiCasDeserializerTest.java      | 2042 ++---
 .../apache/uima/cas/impl/XmiCasSerializerTest.java |   70 +-
 .../java/org/apache/uima/cas/impl/XmiCompare.java  | 1062 +--
 .../apache/uima/cas/test/AnnotationIndexTest.java  |  662 +-
 .../apache/uima/cas/test/AnnotationTreeTest.java   |   22 +-
 .../java/org/apache/uima/cas/test/ArrayFSTest.java |   38 +-
 .../org/apache/uima/cas/test/ArrayIndexTest.java   |   52 +-
 .../org/apache/uima/cas/test/CASInitializer.java   |   18 +-
 .../java/org/apache/uima/cas/test/CASTest.java     |   64 +-
 .../org/apache/uima/cas/test/CASTestSetup.java     |   36 +-
 .../uima/cas/test/CompleteSerializationTest.java   |   32 +-
 .../org/apache/uima/cas/test/CrossAnnotation.java  |    3 +-
 .../org/apache/uima/cas/test/EnrichedEntity.java   |    2 +-
 .../uima/cas/test/FSCreatedInPearContextTest.java  |    9 +-
 .../java/org/apache/uima/cas/test/FeatureMap.java  |    2 +-
 .../org/apache/uima/cas/test/FeatureRecord.java    |    2 +-
 .../apache/uima/cas/test/FeatureStructureTest.java |  878 +-
 .../apache/uima/cas/test/FilteredIteratorTest.java |  117 +-
 .../org/apache/uima/cas/test/FloatArrayFSTest.java |  226 +-
 .../apache/uima/cas/test/GetAllIndexedTest.java    |   89 +-
 .../cas/test/GrowingTheCasNoJcasCacheTest.java     |   54 +-
 .../apache/uima/cas/test/GrowingTheCasTest.java    |  316 +-
 .../apache/uima/cas/test/IndexComparitorTest.java  |  108 +-
 .../uima/cas/test/IndexRepositoryMergingTest.java  |  233 +-
 .../apache/uima/cas/test/IndexRepositoryTest.java  |  170 +-
 .../uima/cas/test/IndexSerializationTest.java      |   39 +-
 .../org/apache/uima/cas/test/IntArrayFSTest.java   |   26 +-
 .../apache/uima/cas/test/IteratorSortedTest.java   |  715 +-
 .../org/apache/uima/cas/test/IteratorTest.java     |  707 +-
 .../apache/uima/cas/test/JCasClassLoaderTest.java  |  282 +-
 .../org/apache/uima/cas/test/JcasSofaTest.java     |  115 +-
 .../java/org/apache/uima/cas/test/Level_1.java     |  268 +-
 .../java/org/apache/uima/cas/test/Level_2.java     |  182 +-
 .../java/org/apache/uima/cas/test/Level_3.java     |  182 +-
 .../java/org/apache/uima/cas/test/Level_4.java     |  182 +-
 .../java/org/apache/uima/cas/test/Level_5.java     |  182 +-
 .../java/org/apache/uima/cas/test/Level_6.java     |  182 +-
 .../uima/cas/test/NewPrimitiveTypesTest.java       |  178 +-
 .../java/org/apache/uima/cas/test/Sentence.java    |    4 +-
 .../uima/cas/test/SerializationNoMDTest.java       |   30 +-
 .../uima/cas/test/SerializationReinitTest.java     |  797 +-
 .../java/org/apache/uima/cas/test/SofaTest.java    |  200 +-
 .../org/apache/uima/cas/test/StringArrayTest.java  |   67 +-
 .../uima/cas/test/StringSubtypeAnnotation.java     |    4 +-
 .../apache/uima/cas/test/StringSubtypeTest.java    |   35 +-
 .../apache/uima/cas/test/SubiteratorAnnotator.java |    6 +-
 .../org/apache/uima/cas/test/SubiteratorTest.java  |   39 +-
 .../org/apache/uima/cas/test/TestAnnotator.java    |    8 +-
 .../test/java/org/apache/uima/cas/test/Token.java  |    4 +-
 .../org/apache/uima/cas/test/TypeOrderTest.java    |   98 +-
 .../org/apache/uima/cas/test/TypePriorityTest.java |   56 +-
 .../apache/uima/cas/test/TypeSystemReinitTest.java |   47 +-
 .../org/apache/uima/cas/test/TypeSystemTest.java   |   84 +-
 .../apache/uima/cas/test/TypeSystemUtilsTest.java  |   31 +-
 .../uima/cas/test/UimacppDeserializationTest.java  |   45 +-
 .../uima/cas/text/AnnotationPredicateAssert.java   |   56 +-
 .../uima/cas/text/AnnotationPredicateTestData.java |  160 +-
 .../uima/cas/text/AnnotationPredicatesTest.java    |  347 +-
 .../cas/text/AxiomaticAnnotationPredicates.java    |   19 +-
 .../org/apache/uima/cas_data/impl/CasComparer.java |  472 +-
 .../uima/cas_data/impl/CasDataToXCasTest.java      |   25 +-
 .../cas_data/impl/XCasToCasDataSaxHandlerTest.java |   71 +-
 .../impl/CasConsumerDescription_implTest.java      |   21 +-
 .../impl/CasInitializerDescription_implTest.java   |   16 +-
 .../impl/CollectionReaderDescription_implTest.java |   17 +-
 .../uima/examples/cpm/sofa/TransAnnotator.java     |    1 +
 .../impl/CapabilityLanguageFlowControllerTest.java |   26 +-
 .../uima/flow/impl/FixedFlowControllerTest.java    |  143 +-
 .../uima/impl/AnalysisEngineFactory_implTest.java  |   21 +-
 .../uima/impl/CasConsumerFactory_implTest.java     |   21 +-
 .../impl/CollectionReaderFactory_implTest.java     |   21 +-
 .../CustomResourceSpecifierFactory_implTest.java   |   37 +-
 .../org/apache/uima/impl/SomeCustomResource.java   |   17 +-
 .../org/apache/uima/impl/UimaContext_implTest.java |  108 +-
 .../uima/internal/util/AnalysisEnginePoolTest.java |   73 +-
 .../uima/internal/util/Int2ObjHashMapTest.java     |  274 +-
 .../apache/uima/internal/util/IntBitSetTest.java   |  338 +-
 .../uima/internal/util/IntHashSetPerfTest.java     |  382 +-
 .../apache/uima/internal/util/IntHashSetTest.java  |  504 +-
 .../apache/uima/internal/util/IntVectorTest.java   |  197 +-
 .../org/apache/uima/internal/util/MiscTest.java    |   88 +-
 .../uima/internal/util/MultiThreadUtils.java       |  804 +-
 .../internal/util/Obj2IntIdentityHashMapTest.java  |  305 +-
 .../apache/uima/internal/util/ObjHashSetTest.java  |  382 +-
 .../uima/internal/util/PositiveIntSetTest.java     |  823 +-
 .../uima/internal/util/ResourcePoolTest.java       |   52 +-
 .../uima/internal/util/UIMAClassLoaderTest.java    |   64 +-
 .../uima/internal/util/WeakIdentityMapTest.java    |  117 +-
 .../apache/uima/internal/util/XmlUtilsTest.java    |   32 +-
 .../internal/util/rb_trees/Int2IntRBTTest.java     |   59 +-
 .../internal/util/rb_trees/IntArrayRBTTest.java    |  214 +-
 .../uima/jcas/impl/JCasCoverClassLoadingTest.java  |   10 +-
 .../uima/jcas/impl/JCasHashMapCompareTest.java     |  434 +-
 .../org/apache/uima/jcas/impl/JCasHashMapTest.java | 1156 +--
 .../org/apache/uima/jcas/tcas/AnnotationTest.java  |  285 +-
 .../org/apache/uima/jcas/test/CASInitializer.java  |    5 +-
 .../org/apache/uima/jcas/test/CASTestSetup.java    |   20 +-
 .../org/apache/uima/jcas/test/FSArrayListTest.java |  182 +-
 .../org/apache/uima/jcas/test/FSHashSetTest.java   |  236 +-
 .../uima/jcas/test/IntegerArrayListTest.java       |  180 +-
 .../java/org/apache/uima/jcas/test/JCasTest.java   | 1581 ++--
 .../java/org/apache/uima/jcas/test/JCasTest2.java  |  203 +-
 .../uima/pear/util/ComponentCategoryTest.java      |   33 +-
 .../apache/uima/pear/util/PearEncodingTest.java    |   33 +-
 .../util/PearInstallationVerificationTest.java     |   42 +-
 .../apache/uima/pear/util/PearInstallerTest.java   |   61 +-
 .../org/apache/uima/pear/util/PearRuntimeTest.java |  117 +-
 .../resource/ConfigurableResource_implTest.java    |   52 +-
 .../org/apache/uima/resource/TestCasConsumer.java  |    2 +-
 .../uima/resource/impl/CasManager_implTest.java    |   37 +-
 ...ConfigurableDataResourceSpecifier_implTest.java |   12 +-
 .../impl/ConfigurableDataResource_implTest.java    |   24 +-
 .../uima/resource/impl/DataResource_implTest.java  |   27 +-
 .../impl/FileLanguageResource_implTest.java        |   30 +-
 .../uima/resource/impl/PearSpecifier_implTest.java |   62 +-
 .../impl/RelativePathResolver_implTest.java        |   19 +-
 .../impl/ResourceCreationSpecifier_implTest.java   |    7 +-
 .../resource/impl/ResourceManager_implTest.java    |   87 +-
 .../resource/impl/TestResourceInterface_impl.java  |   17 +-
 .../uima/resource/impl/URISpecifier_implTest.java  |   16 +-
 ...onfigurationParameterDeclarations_implTest.java |   19 +-
 .../metadata/impl/FsIndexCollection_implTest.java  |   50 +-
 .../resource/metadata/impl/Import_implTest.java    |   49 +-
 .../metadata/impl/MetaDataObject_implTest.java     |   96 +-
 .../ResourceManagerConfiguration_implTest.java     |   55 +-
 .../resource/metadata/impl/TestFruitBagObject.java |   32 +-
 .../resource/metadata/impl/TestFruitObject.java    |   55 +-
 .../metadata/impl/TypePriorities_implTest.java     |   53 +-
 .../impl/TypeSystemDescription_implTest.java       |   85 +-
 .../impl/ResourceServiceAdapter_implTest.java      |   28 +-
 .../service/impl/ResourceService_implTest.java     |   23 +-
 .../service/impl/TestResourceServiceStub.java      |    4 +-
 .../uima/testTypeSystem_arrays/OfShorts.java       |    4 +-
 .../uima/testTypeSystem_arrays/OfStrings.java      |    4 +-
 .../java/org/apache/uima/util/CasCopierTest.java   |  186 +-
 .../org/apache/uima/util/CasCreationUtilsTest.java |  208 +-
 .../uima/util/CasIOUtilsAlwaysHoldOnTest.java      |   35 +-
 .../java/org/apache/uima/util/CasIOUtilsTest.java  |  177 +-
 .../org/apache/uima/util/CasToInlineXmlTest.java   |  104 +-
 .../org/apache/uima/util/CasWrapperForTstng.java   |  683 +-
 .../java/org/apache/uima/util/FileUtilsTest.java   |   24 +-
 .../test/java/org/apache/uima/util/LevelTest.java  |   20 +-
 .../org/apache/uima/util/TestCollectionReader.java |    5 +-
 .../org/apache/uima/util/TypeSystemUtilTest.java   |   30 +-
 .../apache/uima/util/UimaContextHolderTest.java    |    4 +-
 .../org/apache/uima/util/XMLSerializerTest.java    |  282 +-
 .../uima/util/impl/JSR47Logger_implTest.java       |  444 +-
 .../uima/util/impl/Log4jLogger_implTest.java       |  652 +-
 .../org/apache/uima/util/impl/Logger_implTest.java |  121 +-
 .../org/apache/uima/util/impl/LoggingTest.java     |   26 +-
 .../apache/uima/util/impl/OptimizeStringsTest.java |  121 +-
 .../uima/util/impl/ProcessTrace_implTest.java      |   26 +-
 .../apache/uima/util/impl/XMLParser_implTest.java  |  100 +-
 .../src/test/java/sofa/test/CrossAnnotation.java   |    2 +-
 uimaj-core/src/test/java/x/y/z/EndOfSentence.java  |    4 +-
 uimaj-core/src/test/java/x/y/z/Sentence.java       |    4 +-
 uimaj-core/src/test/java/x/y/z/Separator.java      |    4 +-
 uimaj-core/src/test/java/x/y/z/Token.java          |    4 +-
 uimaj-core/src/test/java/x/y/z/TokenType.java      |    4 +-
 uimaj-core/src/test/java/x/y/z/Word.java           |    4 +-
 uimaj-cpe/.gitignore                               |    4 +-
 uimaj-cpe/pom.xml                                  |    2 +-
 .../cas_data/impl/vinci/VinciCasDataConverter.java |    3 +-
 .../apache/uima/collection/impl/CasConverter.java  |    5 +-
 .../impl/CollectionProcessingEngine_impl.java      |   14 +
 .../collection/impl/EntityProcessStatusImpl.java   |    6 +
 .../container/CasProcessorConfiguration.java       |   42 +-
 .../base_cpm/container/CasProcessorController.java |   24 +-
 .../impl/base_cpm/container/RunnableContainer.java |    4 +-
 .../base_cpm/container/deployer/CPEDeployer.java   |    2 +-
 .../container/deployer/CasProcessorDeployer.java   |    8 +-
 .../deployer/CasProcessorDeploymentException.java  |    1 -
 .../apache/uima/collection/impl/cpm/CPMImpl.java   |    9 +
 .../impl/cpm/StatusCallbackListenerImpl.java       |    7 +
 .../CasProcessorConfigurationJAXBImpl.java         |   21 +
 .../cpm/container/NetworkCasProcessorImpl.java     |    7 +
 .../container/deployer/CPEDeployerDefaultImpl.java |    4 +
 .../container/deployer/FencedProcessReaper.java    |    1 -
 .../cpm/container/deployer/NonJavaApplication.java |    2 +-
 .../deployer/socket/OFSocketTransportImpl.java     |    1 -
 .../deployer/socket/ProcessControllerAdapter.java  |    4 +-
 .../container/deployer/socket/SocketTransport.java |    8 +-
 .../container/deployer/vns/VinciServiceInfo.java   |    1 +
 .../impl/cpm/engine/CPMChunkTimeoutException.java  |    1 -
 .../collection/impl/cpm/engine/CPMThreadGroup.java |    1 -
 .../collection/impl/cpm/engine/ProcessingUnit.java |    1 -
 .../uima/collection/impl/cpm/engine/WorkUnit.java  |    1 -
 .../uima/collection/impl/cpm/utils/Execute.java    |    1 -
 .../collection/impl/cpm/utils/ExpirationTimer.java |    1 -
 .../uima/collection/impl/cpm/utils/Timer.java      |   14 +-
 .../impl/metadata/cpe/CpeCasProcessorsImpl.java    |    1 -
 .../impl/metadata/cpe/CpeDescriptionImpl.java      |    1 -
 .../cpe/CpeIntegratedCasProcessorImpl.java         |    1 -
 .../metadata/cpe/CpeLocalCasProcessorImpl.java     |    3 -
 .../metadata/cpe/CpeRemoteCasProcessorImpl.java    |    1 -
 .../impl/SofaNamingInAggregateTest.java            |   42 +-
 .../uima/analysis_engine/impl/TestAnnotator.java   |    3 +
 .../impl/CasHeapSizeTestCollectionReader.java      |    6 +-
 .../impl/CollectionProcessingEngine_implTest.java  |   37 +-
 .../collection/impl/SingleDocCollectionReader.java |    4 +
 .../uima/collection/impl/TestCasInitializer.java   |    1 +
 .../uima/collection/impl/TestCasMultiplier.java    |    6 +-
 .../uima/collection/impl/cpm/CasPoolTest.java      |   21 +-
 .../impl/cpm/CpeCasProcessorAPI_Test.java          |   18 +-
 .../impl/cpm/CpeDescriptorSerialization_Test.java  |   28 +-
 .../uima/collection/impl/cpm/CpeImportTest.java    |   32 +-
 .../uima/collection/impl/cpm/CpmAE_ErrorTest.java  |   60 +-
 .../impl/cpm/CpmCasConsumer_ErrorTest.java         |   37 +-
 .../impl/cpm/CpmCollectionReader_ErrorTest.java    |   56 +-
 .../uima/collection/impl/cpm/CpmInitTest.java      |   22 +-
 .../collection/impl/cpm/CpmProcessingTest.java     |   32 +-
 .../uima/collection/impl/cpm/CpmStopTest.java      |   25 +-
 .../uima/collection/impl/cpm/PearCasPoolTest.java  |   29 +-
 .../impl/cpm/SofaCPE_SofaUnawareCC_Test.java       |   78 +-
 .../uima/collection/impl/cpm/SofaCPE_Test.java     |   78 +-
 .../collection/impl/cpm/SofaMixedCPE_Test.java     |   75 +-
 .../impl/cpm/utils/ErrorTestAnnotator.java         |    4 +-
 .../impl/cpm/utils/ErrorTestCasConsumer.java       |    3 +-
 .../impl/cpm/utils/ErrorTestCollectionReader.java  |    5 +
 .../collection/impl/cpm/utils/SlowAnnotator.java   |    1 +
 .../impl/cpm/utils/TestStatusCallbackListener.java |    7 +
 .../uima/examples/cpm/sofa/SofaCasConsumer.java    |    4 +-
 .../uima/examples/cpm/sofa/SofaCasInitializer.java |    1 +
 .../examples/cpm/sofa/SofaCollectionReader.java    |    5 +-
 .../examples/cpm/sofa/SofaUnawareCasConsumer.java  |    4 +-
 .../examples/cpm/sofa/TcasCollectionReader.java    |    4 +
 .../uima/examples/cpm/sofa/TcasTransAnnotator.java |    1 +
 .../uima/examples/cpm/sofa/TransAnnotator.java     |    1 +
 .../uima/pear/util/ComponentCategoryTest.java      |   10 +-
 .../resource/impl/TestResourceInterface_impl.java  |    6 +-
 uimaj-document-annotation/.gitignore               |    2 +
 uimaj-document-annotation/pom.xml                  |    2 +-
 .../apache/uima/jcas/tcas/DocumentAnnotation.java  |    1 +
 .../java/org/apache/uima/jcas/tcas/DocMeta.java    |    6 +-
 .../uima/jcas/tcas/DocumentAnnotationTest.java     |   21 +-
 uimaj-eclipse-feature-runtime/.gitignore           |    4 +-
 uimaj-eclipse-feature-runtime/pom.xml              |    2 +-
 uimaj-eclipse-feature-tools/.gitignore             |    4 +-
 uimaj-eclipse-feature-tools/pom.xml                |    2 +-
 uimaj-eclipse-update-site/pom.xml                  |  484 +-
 uimaj-ep-cas-editor-ide/.gitignore                 |    2 +
 uimaj-ep-cas-editor-ide/pom.xml                    |    6 +-
 .../uima/caseditor/ide/CasEditorIdePlugin.java     |  358 +-
 .../ide/CasEditorIdePreferenceInitializer.java     |    3 +-
 .../caseditor/ide/CasEditorIdePreferencePage.java  |    1 +
 .../caseditor/ide/CasEditorPerspectiveFactory.java |  191 +-
 .../caseditor/ide/CasEditorPreferencePage.java     |   87 +-
 .../caseditor/ide/DefaultCasDocumentProvider.java  |    5 +
 .../org/apache/uima/caseditor/ide/NlpProject.java  |    4 +
 .../searchstrategy/ITypeSystemSearchStrategy.java  |   56 +-
 .../TypeSystemSearchStrategyFactory.java           |  162 +-
 .../ide/wizards/ContainerElementFilter.java        |   84 +-
 .../wizards/DocumentImportStructureProvider.java   |  423 +-
 .../ide/wizards/ImportDocumentWizard.java          |  279 +-
 .../ide/wizards/ImportDocumentWizardPage.java      |  993 +--
 .../uima/caseditor/ide/wizards/OverwriteQuery.java |    2 +
 uimaj-ep-cas-editor/.gitignore                     |    2 +
 uimaj-ep-cas-editor/pom.xml                        |   13 +-
 .../org/apache/uima/caseditor/CasEditorPlugin.java |  382 +-
 .../java/org/apache/uima/caseditor/Images.java     |  166 +-
 .../org/apache/uima/caseditor/core/TaeError.java   |   98 +-
 .../caseditor/core/model/dotcorpus/DotCorpus.java  |  618 +-
 .../core/model/dotcorpus/DotCorpusSerializer.java  |  652 +-
 .../editor/AbstractAnnotationDocumentListener.java |  228 +-
 .../uima/caseditor/editor/AbstractDocument.java    |  430 +-
 .../caseditor/editor/AbstractDocumentListener.java |  154 +-
 .../uima/caseditor/editor/AnnotationDocument.java  |  624 +-
 .../uima/caseditor/editor/AnnotationEditor.java    | 3976 +++++-----
 .../editor/AnnotationEditorActionContributor.java  |  166 +-
 .../caseditor/editor/AnnotationEditorView.java     |  210 +-
 .../editor/AnnotationInformationProvider.java      |  186 +-
 .../editor/AnnotationSelectionListener.java        |  102 +-
 .../uima/caseditor/editor/AnnotationStyle.java     |  776 +-
 .../apache/uima/caseditor/editor/ArrayValue.java   |  376 +-
 .../uima/caseditor/editor/CasDocumentProvider.java |  462 +-
 .../uima/caseditor/editor/CasEditorView.java       |  520 +-
 .../uima/caseditor/editor/ChangeModeAction.java    |  142 +-
 .../caseditor/editor/CustomInformationControl.java |  368 +-
 .../uima/caseditor/editor/DocumentUimaImpl.java    |  838 +-
 .../editor/FeatureStructureSelection.java          |  204 +-
 .../editor/FeatureStructureSelectionIterator.java  |  190 +-
 .../editor/FeatureStructureSelectionProvider.java  |  280 +-
 .../apache/uima/caseditor/editor/FeatureValue.java |  256 +-
 .../editor/IAnnotationEditorModifyListener.java    |  102 +-
 .../apache/uima/caseditor/editor/ICasDocument.java |  290 +-
 .../caseditor/editor/ICasDocumentListener.java     |  188 +-
 .../caseditor/editor/ICasEditorInputListener.java  |   98 +-
 .../ICustomInformationControlContentHandler.java   |   68 +-
 .../caseditor/editor/IEditorSelectionListener.java |   78 +-
 .../caseditor/editor/ModelFeatureStructure.java    |  334 +-
 .../caseditor/editor/QuickTypeSelectionDialog.java |  796 +-
 .../action/DeleteFeatureStructureAction.java       |  138 +-
 .../action/LowerLeftAnnotationSideAction.java      |  184 +-
 .../action/LowerRightAnnotationSideAction.java     |  186 +-
 .../editor/action/MergeAnnotationAction.java       |  160 +-
 .../action/WideLeftAnnotationSideAction.java       |  186 +-
 .../action/WideRightAnnotationSideAction.java      |  184 +-
 .../annotation/BackgroundDrawingStrategy.java      |  288 +-
 .../editor/annotation/BoxDrawingStrategy.java      |  152 +-
 .../editor/annotation/BracketDrawingStrategy.java  |  176 +-
 .../caseditor/editor/annotation/DrawingStyle.java  |  150 +-
 .../editor/annotation/EclipseAnnotationPeer.java   |  158 +-
 .../annotation/TextColorDrawingStrategy.java       |  110 +-
 .../editor/annotation/TokenDrawingStrategy.java    |  182 +-
 .../annotation/UnderlineDrawingStrategy.java       |  136 +-
 .../editor/context/AnnotationEditingControl.java   |  108 +-
 .../context/AnnotationEditingControlCreator.java   |  134 +-
 .../editview/CreateFeatureStructureDialog.java     |  512 +-
 .../uima/caseditor/editor/editview/EditView.java   |  112 +-
 .../caseditor/editor/editview/EditViewPage.java    | 1710 ++--
 .../editview/FeatureColumnLabelProvider.java       |  108 +-
 .../editview/FeatureStructureContentProvider.java  |  562 +-
 .../editor/editview/ValueColumnLabelProvider.java  |  164 +-
 .../validator/ByteCellEditorValidator.java         |  100 +-
 .../validator/CellEditorValidatorFacotory.java     |  130 +-
 .../validator/FloatCellEditorValidator.java        |  102 +-
 .../validator/IntegerCellEditorValidator.java      |  102 +-
 .../validator/LongCellEditorValidator.java         |  100 +-
 .../validator/ShortCellEditorValidator.java        |  104 +-
 .../editor/fsview/FeatureStructureBrowserView.java |  114 +-
 .../fsview/FeatureStructureBrowserViewPage.java    | 1136 +--
 .../fsview/FeatureStructureLabelProvider.java      |  192 +-
 .../caseditor/editor/fsview/ITypePaneListener.java |   70 +-
 .../editor/outline/AnnotationOutline.java          |  892 +--
 .../editor/outline/AnnotationTreeNode.java         |  294 +-
 .../editor/outline/AnnotationTreeNodeList.java     |  268 +-
 .../editor/outline/OutlineLabelProvider.java       |  188 +-
 .../editor/outline/OutlineTableSorter.java         |  134 +-
 .../editor/util/AnnotationComparator.java          |   94 +-
 .../caseditor/editor/util/AnnotationSelection.java |  294 +-
 .../editor/util/ContainingConstraint.java          |  174 +-
 .../editor/util/FeatureStructureTransfer.java      |  114 +-
 .../uima/caseditor/editor/util/IDGenerator.java    |  182 +-
 .../uima/caseditor/editor/util/ObjectTransfer.java |  168 +-
 .../uima/caseditor/editor/util/Primitives.java     |  348 +-
 .../apache/uima/caseditor/editor/util/Span.java    |  318 +-
 .../editor/util/StrictTypeConstraint.java          |  116 +-
 .../uima/caseditor/editor/util/UimaUtil.java       |   98 +-
 .../ui/property/AnnotationPropertyPage.java        | 1292 +--
 .../core/model/dotcorpus/AnnotationStyleTest.java  |  130 +-
 .../model/dotcorpus/DotCorpusSerializerTest.java   |  124 +-
 .../apache/uima/caseditor/core/util/SpanTest.java  |  317 +-
 .../uima/caseditor/editor/AnnotationStyleTest.java |  117 +-
 .../uima/caseditor/editor/util/SpanTest.java       |  314 +-
 uimaj-ep-configurator/.gitignore                   |    2 +
 uimaj-ep-configurator/pom.xml                      |    2 +-
 .../uima/taeconfigurator/CDEpropertyPage.java      |    1 -
 .../uima/taeconfigurator/InternalErrorCDE.java     |    1 -
 .../uima/taeconfigurator/StandardStrings.java      |   26 +-
 .../taeconfigurator/TAEConfiguratorPlugin.java     |    1 -
 .../taeconfigurator/editors/MultiPageEditor.java   | 8377 ++++++++++----------
 .../editors/MultiPageEditorContributor.java        |   10 +-
 .../editors/point/IUimaEditorExtension.java        |    6 +-
 .../editors/point/IUimaMultiPageEditor.java        |    8 +-
 .../ui/dialogs/AbstractDialogKeyVerify.java        |    3 +-
 .../dialogs/AbstractDialogKeyVerifyJavaNames.java  |    3 +-
 .../ui/dialogs/AbstractDialogMultiColTable.java    |    6 +-
 .../editors/ui/dialogs/AddAllowedValueDialog.java  |    5 +-
 .../AddExternalResourceDependencyDialog.java       |    7 +-
 .../ui/dialogs/AddExternalResourceDialog.java      |   15 +-
 .../editors/ui/dialogs/AddIndexKeyDialog.java      |   11 +-
 .../editors/ui/dialogs/AddRemoteServiceDialog.java |    5 +-
 .../editors/ui/dialogs/AddSofaDialog.java          |    7 +-
 .../ui/dialogs/AddTypeToPriorityListDialog.java    |    5 +-
 .../editors/ui/dialogs/CommonInputDialog.java      |    3 +-
 .../editors/ui/dialogs/EditSofaBindingsDialog.java |    3 +-
 .../ui/dialogs/ExportImportablePartDialog.java     |    5 +-
 .../editors/ui/dialogs/FindComponentDialog.java    |    5 +-
 .../editors/ui/dialogs/PickTaeForTypesDialog.java  |   13 +-
 .../editors/ui/dialogs/SearchThread.java           |   13 +-
 .../editors/xml/NonRuleBasedDamagerRepairer.java   |    2 +-
 .../uima/taeconfigurator/editors/xml/TagRule.java  |    4 +-
 .../editors/xml/XMLConfiguration.java              |    3 +-
 .../editors/xml/XMLDoubleClickStrategy.java        |    5 +-
 .../taeconfigurator/editors/xml/XMLEditor.java     |    5 +-
 .../editors/xml/XMLPartitionScanner.java           |    6 +-
 .../taeconfigurator/editors/xml/XMLScanner.java    |    9 +-
 .../taeconfigurator/editors/xml/XMLTagScanner.java |    9 +-
 ...MultiResourceSelectionDialogWithFlowOption.java |    9 +-
 .../taeconfigurator/wizards/AbstractNewWizard.java |    6 +-
 .../wizards/AbstractNewWizardPage.java             |    3 +-
 uimaj-ep-debug/.gitignore                          |    2 +
 uimaj-ep-debug/pom.xml                             |    2 +-
 .../java/org/apache/uima/ep_debug/DebugPlugin.java |    3 -
 .../apache/uima/ep_debug/DebugPluginStartup.java   |  132 +-
 uimaj-ep-jcasgen/.gitignore                        |    2 +
 uimaj-ep-jcasgen/pom.xml                           |    2 +-
 .../org/apache/uima/jcas/jcasgenp/JgPlugin.java    |    1 -
 uimaj-ep-launcher/.gitignore                       |    2 +
 uimaj-ep-launcher/pom.xml                          |    2 +-
 .../apache/uima/ep_launcher/RemoteLauncher.java    |    2 +
 .../uima/ep_launcher/ui/AnalysisEngineMainTab.java |   28 +-
 .../ep_launcher/ui/AnalysisEngineTabGroup.java     |    1 +
 uimaj-ep-pear-packager/.gitignore                  |    2 +
 uimaj-ep-pear-packager/pom.xml                     |    2 +-
 .../java/org/apache/uima/pear/PearException.java   |  309 +-
 .../main/java/org/apache/uima/pear/PearPlugin.java |  181 +-
 .../uima/pear/actions/AddUimaNatureAction.java     |  280 +-
 .../actions/EditInstallationDescriptorAction.java  |  223 +-
 .../uima/pear/actions/GeneratePearFileAction.java  |  313 +-
 .../actions/PearProjectCustomizationException.java |  299 +-
 .../uima/pear/generate/GeneratePearWizard.java     |  510 +-
 .../org/apache/uima/pear/generate/PearExport.java  |  104 +-
 .../uima/pear/generate/PearExportMessages.java     |  146 +-
 .../uima/pear/generate/PearExportOperation.java    |  392 +-
 .../pear/generate/PearFileResourceExportPage.java  |  826 +-
 .../edit/EditInstallationDescriptorWizard.java     |  444 +-
 .../uima/pear/insd/edit/INSDComponentPage.java     |  817 +-
 .../uima/pear/insd/edit/INSDEnvironmentPage.java   | 1055 ++-
 .../apache/uima/pear/insd/edit/InsdConstants.java  |  128 +-
 .../pear/insd/edit/PearInstallationDescriptor.java |  277 +-
 .../edit/vars/AbstractVarValViewerHandler.java     |  721 +-
 .../pear/insd/edit/vars/IVarValListViewer.java     |   96 +-
 .../apache/uima/pear/insd/edit/vars/VarVal.java    |  203 +-
 .../pear/insd/edit/vars/VarValCellModifier.java    |  253 +-
 .../pear/insd/edit/vars/VarValLabelProvider.java   |  144 +-
 .../uima/pear/insd/edit/vars/VarValList.java       |  325 +-
 .../uima/pear/insd/edit/vars/VarValSorter.java     |  177 +-
 .../pear/insd/edit/vars/VarValViewerHandler.java   |  219 +-
 .../apache/uima/pear/nature/ProjectCustomizer.java |  477 +-
 .../org/apache/uima/pear/nature/UimaNature.java    |  159 +-
 uimaj-ep-runtime/.gitignore                        |    2 +
 uimaj-ep-runtime/pom.xml                           |    2 +-
 uimaj-examples/.gitignore                          |    2 +
 uimaj-examples/pom.xml                             |    2 +-
 .../src/main/java/example/PersonTitle.java         |    7 +-
 .../apache/uima/examples/ExampleApplication.java   |    1 -
 .../main/java/org/apache/uima/examples/RunAE.java  |    7 +
 .../apache/uima/examples/SofaExampleAnnotator.java |    1 +
 .../uima/examples/SofaExampleApplication.java      |    3 -
 .../uima/examples/SourceDocumentInformation.java   |    4 +-
 .../java/org/apache/uima/examples/XmlDetagger.java |    7 +
 .../uima/examples/cas/PersonTitleAnnotator.java    |    3 +
 .../apache/uima/examples/cas/RegExAnnotator.java   |    3 +
 .../examples/casMultiplier/SimpleTextMerger.java   |  330 +-
 .../casMultiplier/SimpleTextSegmenter.java         |    4 +
 .../uima/examples/cpe/AnnotationPrinter.java       |    6 +
 .../examples/cpe/FileSystemCollectionReader.java   |  436 +-
 .../uima/examples/cpe/InlineXmlCasConsumer.java    |    2 +
 .../cpe/PersonTitleDBWriterCasConsumer.java        |    3 +
 .../org/apache/uima/examples/cpe/SimpleRunCPM.java |    7 +
 .../uima/examples/cpe/XCasWriterCasConsumer.java   |    2 +
 .../examples/flow/AdvancedFixedFlowController.java |  608 +-
 .../examples/flow/WhiteboardFlowController.java    |    3 +
 .../examples/flow/WhiteboardFlowController2.java   |    4 +
 .../apache/uima/examples/tokenizer/Sentence.java   |    9 +-
 .../tokenizer/SimpleTokenAndSentenceAnnotator.java |    3 +
 .../org/apache/uima/examples/tokenizer/Token.java  |    9 +-
 .../uima/examples/xmi/XmiCollectionReader.java     |  243 +-
 .../uima/examples/xmi/XmiEcoreCasConsumer.java     |    1 +
 .../uima/examples/xmi/XmiWriterCasConsumer.java    |    2 +
 .../java/org/apache/uima/tutorial/DateAnnot.java   |    9 +-
 .../org/apache/uima/tutorial/DateTimeAnnot.java    |    7 +-
 .../java/org/apache/uima/tutorial/Meeting.java     |    8 +-
 .../java/org/apache/uima/tutorial/RoomNumber.java  |    7 +-
 .../org/apache/uima/tutorial/SentenceAnnot.java    |    6 +-
 .../java/org/apache/uima/tutorial/TimeAnnot.java   |    9 +-
 .../java/org/apache/uima/tutorial/UimaAcronym.java |    7 +-
 .../java/org/apache/uima/tutorial/UimaMeeting.java |    9 +-
 .../java/org/apache/uima/tutorial/WordAnnot.java   |    6 +-
 .../uima/tutorial/ex1/RoomNumberAnnotator.java     |    1 +
 .../uima/tutorial/ex2/RoomNumberAnnotator.java     |    2 +
 .../apache/uima/tutorial/ex3/TutorialDateTime.java |    3 +
 .../apache/uima/tutorial/ex4/MeetingAnnotator.java |    2 +
 .../uima/tutorial/ex5/RoomNumberAnnotator.java     |    2 +
 .../uima/tutorial/ex6/StringMapResource.java       |    2 +-
 .../uima/tutorial/ex6/StringMapResource_impl.java  |    2 +
 .../uima/tutorial/ex6/UimaAcronymAnnotator.java    |    2 +
 .../src/org/apache/uima/util/jet/JetExpander.java  |  548 +-
 uimaj-json/.gitignore                              |    2 +
 uimaj-json/pom.xml                                 |    2 +-
 .../org/apache/uima/json/JsonCasSerializer.java    | 2872 +++----
 .../apache/uima/json/JsonMetaDataSerializer.java   |  316 +-
 .../impl/JsonContentHandlerJacksonWrapper.java     |  757 +-
 .../json/impl/MetaDataObjectSerializer_json.java   |  406 +-
 .../apache/uima/json/JsonCasSerializerTest.java    | 1220 +--
 .../apache/uima/json/JsonMetaDataObjectTest.java   |  380 +-
 .../apache/uima/json/JsonXmiCasSerializerTest.java |   74 +-
 .../resource/metadata/impl/TestFruitBagObject.java |  149 +-
 .../resource/metadata/impl/TestFruitObject.java    |  323 +-
 .../test/java/org/apache/uima/test/AllTypes.java   |   14 +-
 .../test/java/org/apache/uima/test/RefTypes.java   |    6 +-
 uimaj-parent/pom.xml                               |   26 +-
 uimaj-test-util/.gitignore                         |    2 +
 uimaj-test-util/pom.xml                            |   15 +-
 .../uima/test/junit_extension/TeePrintStream.java  |   24 +
 .../test/junit_extension/UIMAResultPrinter.java    |   14 +
 uimaj-tools/.gitignore                             |    2 +
 uimaj-tools/pom.xml                                |    2 +-
 .../uima/tools/AnnotationFeaturesViewer.java       |    2 -
 .../apache/uima/tools/AnnotationViewerMain.java    |    4 +-
 .../components/FileSystemCollectionReader.java     |    5 +
 .../tools/components/InlineXmlCasConsumer.java     |    2 +
 .../tools/components/XCasWriterCasConsumer.java    |    2 +
 .../tools/components/XmiWriterCasConsumer.java     |    2 +
 .../apache/uima/tools/components/XmlDetagger.java  |   10 +-
 .../java/org/apache/uima/tools/cpm/CpmFrame.java   |    2 +-
 .../java/org/apache/uima/tools/cpm/CpmPanel.java   | 4377 +++++-----
 .../uima/tools/cpm/JTabbedPaneWithCloseIcons.java  |    1 -
 .../apache/uima/tools/cpm/TabClosedListener.java   |    2 +-
 .../cvd/AnnotationDisplayCustomizationFrame.java   |    1 -
 .../apache/uima/tools/cvd/AnnotationExtent.java    |    1 -
 .../java/org/apache/uima/tools/cvd/ArrayNode.java  |    1 -
 .../main/java/org/apache/uima/tools/cvd/CVD.java   |  445 +-
 .../java/org/apache/uima/tools/cvd/ColorIcon.java  |    1 -
 .../java/org/apache/uima/tools/cvd/FSNode.java     |    2 -
 .../org/apache/uima/tools/cvd/FSTreeModel.java     |    1 -
 .../java/org/apache/uima/tools/cvd/FSTreeNode.java |    1 -
 .../org/apache/uima/tools/cvd/IndexTreeNode.java   |    2 -
 .../org/apache/uima/tools/cvd/LogFileViewer.java   |    1 -
 .../java/org/apache/uima/tools/cvd/MainFrame.java  | 5699 +++++++------
 .../org/apache/uima/tools/cvd/MarkupExtent.java    |    1 -
 .../uima/tools/cvd/MultiAnnotViewerFrame.java      |    1 -
 .../org/apache/uima/tools/cvd/RecentFilesList.java |  261 +-
 .../uima/tools/cvd/StringFsPopupEventAdapter.java  |  262 +-
 .../org/apache/uima/tools/cvd/TypeTreeNode.java    |    2 -
 .../cvd/control/AnnotatorOpenEventHandler.java     |    1 -
 .../tools/cvd/control/FileOpenEventHandler.java    |    1 -
 .../tools/cvd/control/FileSaveAsEventHandler.java  |    1 -
 .../tools/cvd/control/FileSaveEventHandler.java    |    1 -
 .../control/LoadRecentDescFileEventHandler.java    |    1 -
 .../control/LoadRecentTextFileEventHandler.java    |    1 -
 .../tools/cvd/control/NewTextEventHandler.java     |    1 -
 .../uima/tools/cvd/control/PopupHandler.java       |    1 -
 .../tools/cvd/control/SetLogConfigHandler.java     |    1 -
 .../uima/tools/cvd/control/TreeFocusHandler.java   |    1 -
 .../control/TypeSystemFileOpenEventHandler.java    |    1 -
 .../cvd/control/XCASFileOpenEventHandler.java      |    1 -
 .../tools/cvd/control/XmiCasFileOpenHandler.java   |  154 +-
 .../uima/tools/cvd/control/XmiCasSaveHandler.java  |  191 +-
 .../uima/tools/cvd/tsview/FeatureTableModel.java   |    2 -
 .../apache/uima/tools/cvd/tsview/MainFrame.java    |    1 -
 .../tools/docanalyzer/FileSelectorListener.java    |    2 +-
 .../java/org/apache/uima/tools/jcasgen/GUI.java    |    1 -
 .../java/org/apache/uima/tools/jcasgen/IError.java |    8 +-
 .../java/org/apache/uima/tools/jcasgen/IMerge.java |    2 +-
 .../uima/tools/jcasgen/IProgressMonitor.java       |    8 +-
 .../uima/tools/jcasgen/JCasTypeTemplate.java       |    4 +-
 .../java/org/apache/uima/tools/jcasgen/Jg.java     |    2 +-
 .../uima/tools/pear/install/InstallPear.java       |    1 -
 .../uima/tools/pear/merger/PMController.java       |  917 +--
 .../uima/tools/pear/merger/PMControllerHelper.java |  466 +-
 .../apache/uima/tools/pear/merger/PMUimaAgent.java |  724 +-
 .../uima/tools/pear/packager/PearPackager.java     |  414 +-
 .../tools/stylemap/AnnotationFeaturesViewer.java   |    2 -
 .../apache/uima/tools/stylemap/ColorRenderer.java  |    2 -
 .../uima/tools/util/gui/FileSelectorListener.java  |    2 +-
 .../apache/uima/tools/util/gui/IntegerField.java   |    2 -
 .../tools/util/gui/TransportControlListener.java   |    8 +-
 .../uima/tools/viewer/CasAnnotationViewer.java     |    1 -
 .../apache/uima/tools/viewer/CasTreeViewer.java    |    2 -
 .../apache/uima/tools/viewer/EntityResolver.java   |  134 +-
 .../uima/tools/pear/merger/PearMergerTest.java     |  290 +-
 .../uima/tools/viewer/CasAnnotationViewerTest.java |  648 +-
 uimaj-v3migration-jcas/pom.xml                     |    2 +-
 .../apache/uima/migratev3/jcas/MigrateJCas.java    | 7120 ++++++++---------
 .../apache/uima/cas/impl/AnnotationIndexImpl.java  |  442 +-
 .../cas/impl/FSIteratorWrapperDoubleCheck.java     |  312 +-
 .../apache/uima/cas/impl/FSListIteratorImpl.java   |  322 +-
 .../src/org/apache/uima/cas/impl/FSRBTIndex.java   |  302 +-
 .../org/apache/uima/cas/impl/FeatureArrayImpl.java |  118 +-
 .../apache/uima/cas/impl/FeatureGetter_int.java    |   52 +-
 .../apache/uima/cas/impl/FeatureGetter_ref.java    |   52 +-
 .../apache/uima/cas/impl/FeatureSetter_int.java    |   50 +-
 .../apache/uima/cas/impl/FeatureSetter_ref.java    |   50 +-
 .../uima/cas/impl/FeatureStructureClassGen.java    |  978 +--
 .../src/org/apache/uima/cas/impl/FsIndex_aggr.java |  466 +-
 .../uima/cas/impl/FsIterator_set_sorted.java       |  528 +-
 .../impl/FsIterator_set_sorted_navset_version.java |  540 +-
 .../apache/uima/cas/impl/FsIterator_subtypes.java  |  116 +-
 .../cas/impl/FsIterator_subtypes_list_unused.java  |   68 +-
 .../uima/cas/impl/JCasCoverClassFactoryTest.java   |  123 +-
 .../src/org/apache/uima/cas/impl/TypeImplList.java |   72 +-
 .../src/org/apache/uima/cas/impl/TypeImplMap.java  |   90 +-
 .../impl/XXXdont_use_JCasCoverClassFactory.java    | 1010 +--
 .../impl/JCasCoverClassFactoryTest.java            |  129 +-
 .../util/ComparableIntPointerIterator.java         |   94 +-
 .../apache/uima/internal/util/Int2IntHashMap.java  | 1034 +--
 .../uima/internal/util/Int2IntHashMapTest.java     |  179 +-
 .../apache/uima/internal/util/Int2IntPerfTest.java |  310 +-
 .../internal/util/UIMATypeSystemClassLoader.java   |  308 +-
 .../util/UIMATypeSystemClassLoaderInjector.java    |  238 +-
 .../org/apache/uima/jcas/cas/JavaObjectArray.java  |  386 +-
 .../src/org/apache/uima/jcas/impl/CASMetadata.java |   82 +-
 .../uima/jcas/impl/JCasCoverClassFactory.java      |  704 +-
 .../uima/jcas/impl/JCasCoverClassFactoryTest.java  |  122 +-
 .../src/org/apache/uima/jcas/impl/JCasHashMap.java |  888 +--
 .../uima/jcas/impl/JCasHashMapCompareTest.java     |  400 +-
 .../apache/uima/jcas/impl/JCasHashMapSubMap.java   |  836 +-
 .../org/apache/uima/jcas/impl/JCasHashMapTest.java |  945 +--
 .../apache/uima/jcasgen/JCasClassDefinition.java   |  134 +-
 .../uima/jcasgen/impl/JCasClassConversion.java     |  508 +-
 .../uima/tools/jcas/internal/AnalyzeContent.java   |  690 +-
 .../uima/tools/jcasgen/DecompiledFilter.java       |  312 +-
 .../src/study/asm/decompiled/AnnotationDumpV3.java |  568 +-
 1457 files changed, 139641 insertions(+), 132440 deletions(-)

diff --cc uimaj-core/src/main/java/org/apache/uima/cas/impl/CasSerializerSupport.java
index 29ec04e,76a8c4c..ba685fa
--- a/uimaj-core/src/main/java/org/apache/uima/cas/impl/CasSerializerSupport.java
+++ b/uimaj-core/src/main/java/org/apache/uima/cas/impl/CasSerializerSupport.java
@@@ -1,1393 -1,1467 +1,1478 @@@
- /*
-  * Licensed to the Apache Software Foundation (ASF) under one
-  * or more contributor license agreements.  See the NOTICE file
-  * distributed with this work for additional information
-  * regarding copyright ownership.  The ASF licenses this file
-  * to you under the Apache License, Version 2.0 (the
-  * "License"); you may not use this file except in compliance
-  * with the License.  You may obtain a copy of the License at
-  * 
-  *   http://www.apache.org/licenses/LICENSE-2.0
-  * 
-  * Unless required by applicable law or agreed to in writing,
-  * software distributed under the License is distributed on an
-  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  * KIND, either express or implied.  See the License for the
-  * specific language governing permissions and limitations
-  * under the License.
-  */
- 
- package org.apache.uima.cas.impl;
- 
- import java.util.ArrayDeque;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.BitSet;
- import java.util.Collection;
- import java.util.Collections;
- import java.util.Comparator;
- import java.util.Deque;
- import java.util.HashMap;
- import java.util.HashSet;
- import java.util.IdentityHashMap;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Map;
- import java.util.NoSuchElementException;
- import java.util.Set;
- import java.util.concurrent.atomic.AtomicInteger;
- 
- import org.apache.uima.UimaSerializable;
- import org.apache.uima.cas.CAS;
- import org.apache.uima.cas.CASRuntimeException;
- import org.apache.uima.cas.CommonArrayFS;
- import org.apache.uima.cas.FSIndex;
- import org.apache.uima.internal.util.Misc;
- import org.apache.uima.internal.util.XmlElementName;
- import org.apache.uima.jcas.cas.CommonList;
- import org.apache.uima.jcas.cas.CommonPrimitiveArray;
- import org.apache.uima.jcas.cas.FSArray;
- import org.apache.uima.jcas.cas.FSList;
- import org.apache.uima.jcas.cas.NonEmptyFSList;
- import org.apache.uima.jcas.cas.NonEmptyList;
- import org.apache.uima.jcas.cas.Sofa;
- import org.apache.uima.jcas.cas.TOP;
- import org.apache.uima.jcas.tcas.Annotation;
- import org.apache.uima.util.Logger;
- import org.xml.sax.ContentHandler;
- import org.xml.sax.ErrorHandler;
- import org.xml.sax.SAXException;
- import org.xml.sax.SAXParseException;
- 
- /**
-  * CAS serializer support for XMI and JSON formats.
-  * 
-  * There are multiple use cases.
-  *   1) normal - the consumer is independent of UIMA
-  *        - (maybe) support for delta serialization
-  *   2) service calls:  
-  *        - support deserialization with out-of-type-system set-aside, and subsequent serialization with re-merging
-  *        - guarantee of using same xmi:id's as were deserialized when serializing
-  *        - support for delta serialization
-  * 
-  * There is an outer class (one instance per "configuration" - reusable after configuration, and
-  * an inner class - one per serialize call.
-  * 
-  * These classes are the common parts of serialization between XMI and JSON, mainly having to do with
-  *   1) enqueueing the FS to be serialized
-  *   2) serializing according to their types and features
-  *     
-  * 
-  * Methods marked public are not for public use but are that way to permit
-  * other users of this class in other packages to "see" these methods.
-  *   
-  *   XmiCasSerializer                              JsonCasSerializer
-  *       Instance                                      Instance
-  *      css ref -------&gt;   CasSerializerSupport   &lt;------ css ref
-  *          
-  *               
-  *   XmiDocSerializer                                JsonDocSerializer            
-  *       Instance                                       Instance 
-  * (1 per serialize action)                         (1 per serialize action)
-  *       cds ref -------&gt;     CasDocSerializer  &lt;-------   cds ref
-  *                           csss points back
-  *                      
-  *                      
-  * Construction:
-  *   new Xmi/JsonCasSerializer 
-  *      initializes css with new CasSerializerSupport
-  *      
-  *   serialize method creates a new Xmi/JsonDocSerializer inner class
-  *      constructor creates a new CasDocSerializer,    
-  *                      
-  * Use Cases and Algorithms
-  *   Support set-aside for out-of-type-system FS on deserialization (record in shareData)
-  *     implies can't determine sharing status of things ref'd by features; need to depend on 
-  *       multiple-refs-allowed flag.
-  *       If multiple-refs found during serialization for feat marked non-shared, unshare these (make
-  *         2 serializations, one or more inplace, for example.  
-  *         Perhaps not considered an error.
-  *     implies need (for non-delta case) to send all FSs that were deserialized - some may be ref'd by oots elements
-  *       ** Could ** not do this if no oots elements, but could break some assumptions
-  *       and this only would apply to non-delta - not worth doing
-  *       
-  * Enqueuing:
-  *   There are two styles
-  *     - enqueueCommon: does **NOT** recursively enqueue features
-  *     - enqueue: calls enqueueCommon and then recursively enqueues features
-  *     
-  *   enqueueCommon is called (bypassing enqueue) to defer scanning references 
-  *   
-  *   Order and target of enqueuing:
-  *     - things in the index 
-  *       -- put on "queue"
-  *       -- first, the sofa's (which are the only things indexed in base view)
-  *       -- next, for each view, for each item, the FSs, but **NOT** following any feature/array refs
-  *     - things not in the index, but deserialized (incoming)
-  *       -- put on previouslySerializedFSs, no recursive descent for features  
-  *     - (delta) enqueueNonsharedMultivaluedFS (lists and arrays)
-  *       -- put on modifiedEmbeddedValueFSs, no recursive descent for features
-  *       
-  *     - recursive descent for        
-  *       -- things in previouslySerializedFSs,
-  *       -- things in modifiedEmbeddedValueFSs
-  *       -- things in the index
-  *
-  *       The recursive descent is recursive, and an arbitrary long chain can get stack overflow error.
-  *       TODO Probably should fix this someday. See https://issues.apache.org/jira/browse/UIMA-106 *                      
-  */
- 
- public class CasSerializerSupport {
-    
-   // Special "type class" codes for list types. The LowLevelCAS.ll_getTypeClass() method
-   // returns type classes for primitives and arrays, but not lists (which are just ordinary FS types
-   // as far as the CAS is concerned). The serialization treats lists specially, however, and
-   // so needs its own type codes for these.
-   public static final int TYPE_CLASS_INTLIST = 101;
- 
-   public static final int TYPE_CLASS_FLOATLIST = 102;
- 
-   public static final int TYPE_CLASS_STRINGLIST = 103;
- 
-   public static final int TYPE_CLASS_FSLIST = 104;
-     
-   public static int PP_LINE_LENGTH = 120;
-   public static int PP_ELEMENTS = 30;  // number of elements to do before nl
-   
-   public static AtomicInteger errorCount = new AtomicInteger(0);
-   
-   /**
-    * Comparator that just uses short name
-    * Public for access by JsonCasSerializer where it's needed for a binary search
-    * https://issues.apache.org/jira/browse/UIMA-5171
-    */
-   public final static Comparator<TypeImpl> COMPARATOR_SHORT_TYPENAME = new Comparator<TypeImpl>() {
-     public int compare(TypeImpl object1, TypeImpl object2) {
-       return object1.getShortName().compareTo(object2.getShortName());
-     }
-   };
-    
-   TypeSystemImpl filterTypeSystem;
-     
-   ErrorHandler errorHandler = null;
- 
-   // UIMA logger, to which we may write warnings
-   Logger logger;
- 
-   public boolean isFormattedOutput;  // true for pretty printing
-      
-   /***********************************************
-    *         C O N S T R U C T O R S             *  
-    ***********************************************/
- 
-   public CasSerializerSupport() {}
-   
-   /********************************************************
-    *   Routines to set/reset configuration                *
-    ********************************************************/
-   /**
-    * set or reset the pretty print flag (default is false)
-    * @param pp true to do pretty printing of output
-    * @return the original instance, possibly updated
-    */
-   public CasSerializerSupport setPrettyPrint(boolean pp) {
-     this.isFormattedOutput = pp;
-     return this;
-   }
-   
-   /**
-    * pass in a type system to use for filtering what gets serialized;
-    * only those types and features which are defined this type system are included.
-    * @param ts the filter
-    * @return the original instance, possibly updated
-    */
-   public CasSerializerSupport setFilterTypes(TypeSystemImpl ts) {
-     this.filterTypeSystem = ts;
-     return this;
-   }
-   
-   // for testing
-   public TypeSystemImpl getFilterTypes() {
-     return filterTypeSystem;
-   }
-   
-      // not done here, done on serialize call, different (typically) for each call
- //  /**
- //   * set the Marker to specify delta cas serialization
- //   * @param m - the marker
- //   * @return the original instance, possibly updated
- //   */
- //  public CasSerializerSupport setDeltaCas(Marker m, XmiSerializationSharedData sharedData) {
- //    this.marker = (MarkerImpl) m;
- //    this.sharedData = sharedData;
- //    return this;
- //  }
-   
-   /**
-    * set an error handler to receive information about errors
-    * @param eh the error handler
-    * @return the original instance, possibly updated
-    */
-   public CasSerializerSupport setErrorHandler(ErrorHandler eh) {
-     this.errorHandler = eh;
-     return this;
-   }
-   
-   
-   /***********************************************
-    * Methods used to serialize items
-    * Separate implementations for JSON and Xmi
-    *
-    ***********************************************/
-   public static abstract class CasSerializerSupportSerialize {
-     
-     abstract protected void initializeNamespaces();
-         
-     abstract protected void checkForNameCollision(XmlElementName xmlElementName);
-         
-     abstract protected void addNameSpace(XmlElementName xmlElementName);  
- 
-     abstract protected XmlElementName uimaTypeName2XmiElementName(String typeName);
- 
-     abstract protected void writeFeatureStructures(int elementCount) throws Exception;
-     
-     abstract protected void writeViews() throws Exception;
-     
-     abstract protected void writeView(Sofa sofa, Collection<TOP> members) throws Exception;
-     
-     abstract protected void writeView(Sofa sofa, Collection<TOP> added, Collection<TOP> deleted, Collection<TOP> reindexed) throws Exception;  
-     
-     /**
-      * 
-      * @param fs -
-      * @param typeCode -
-      * @return true if writing out referenced items (JSON)
-      * @throws Exception -
-      */
-     abstract protected boolean writeFsStart(TOP fs, int typeCode) throws Exception;
-     
-     abstract protected void writeFs(TOP fs, int typeCode) throws Exception;
-     
-     abstract protected void writeListsAsIndividualFSs(TOP fs, int typeCode) throws Exception;
-     
-     abstract protected void writeArrays(TOP fsarray, int typeCode, int typeClass) throws Exception;
-     
-     abstract protected void writeEndOfIndividualFs() throws Exception;  
-     
-     abstract protected void writeEndOfSerialization() throws Exception;
-     
-     abstract protected void writeFsRef(TOP fs) throws Exception;
-   }
-   
-   /**
-    * Use an inner class to hold the data for serializing a CAS. Each call to serialize() creates its
-    * own instance.
-    * 
-    * package private to allow a test case to access
-    * not static to share the logger and the initializing values (could be changed) 
-    */
-   public class CasDocSerializer {
- 
-     // The CAS we're serializing.
-     public final  CASImpl cas;
-     
-     public final TypeSystemImpl tsi;
- 
-     /** 
-      * set of FSs that have been visited and enqueued to be serialized
-      *   - exception: arrays and lists which are "inline" are put into this set,
-      *     but are not enqueued to be serialized.
-      *     
-      *   - FSs added to this, during "enqueue" phase, prior to encoding
-      *     
-      * uses:    
-      *   - for Arrays and Lists, used to detect multi-refs
-      *   - for Lists, used to detect loops
-      *   - during enqueuing phase, prevent multiple enqueuings
-      *   - during encoding phase, to prevent multiple encodings 
-      *  
-      *  Public for use by JsonCasSerializer
-      */    
-     public final Set<TOP> visited_not_yet_written = Collections.newSetFromMap(new IdentityHashMap<>()); 
-      
-     /**
-      * Set of array or list FSs referenced from features marked as multipleReferencesAllowed,
-      *   - which have previously been serialized "inline"
-      *   - which now need to be serialized as separate items
-      *   
-      * Set during enqueue scanning, to handle the case where the
-      * "visited_not_yet_written" set may have already recorded that this FS is 
-      * already processed for enqueueing, but it is an array or list item which was being
-      * put "in-line" and no element is being written.
-      * 
-      * It has array or list elements where the item needs to be enqueued onto the "queue" list.
-      * 
-      * Use: limit the put-onto-queue list to one time
-      */
-     private final Set<TOP> enqueued_multiRef_arrays_or_lists = Collections.newSetFromMap(new IdentityHashMap<>());
-     
-     /**
-      * Set of FSs that have multiple references
-      * Has an entry for each FS (not just array or list FSs) which is (from some point on) being serialized as a multi-ref,
-      *   that is, is **not** being serialized (any more) using the special notation for arrays and lists
-      *   or, for JSON, **not** being serialized using the embedded notation
-      * This is for JSON which is computing the multi-refs, not depending on the setting in a feature.
-      * This is also for xmi, to enable adding to "queue" (once) for each FSs of this kind.
-      * 
-      * Used: 
-      *   - limit the number of times this is put onto the queue to 1.
-      *   - skip encoding of items on "queue" if not in this Set (maybe not needed? 8/2017 mis)
-      *   - serialize if not in indexed set, dynamic ref == true, and in this set (otherwise serialize only from ref)
-      */
-     public final Set<TOP> multiRefFSs; 
-     
-     /**
-      * Set to true for JSON configuration of using dynamic multi-ref detection for arrays and lists
-      */
-     public final boolean isDynamicMultiRef;
- 
-     /* *********************************************
-      * FSs that need to be serialized because they're 
-      *   a) in an index
-      *   b) in the set of previously serialized FS which have ids (that is, they weren't previously embedded)
-      *   c) (delta only) have a feature which has an embedded value some part of which changed (no id)
-      *   
-      *   d) the set of FSs that are reachable via FSrefs from the above 3 sets
-      */
-     
-     public List<TOP> previouslySerializedFSs = null;
-     
-     public List<TOP> modifiedEmbeddedValueFSs = null;
-     
-     /**
-      * Array of Lists of all FS that are indexed in some view (other than sofas).  Array indexed by view.
-      */
-     public final List<TOP>[] indexedFSs;
- 
-     /**
-      * FSs not in an index, but only being serialized becaused they're referenced.  Exception: the sofa's are here.
-      */
-     private final Deque<TOP> queue;
- 
-     
-     // utilities for dealing with CAS list types
- //    public final ListUtils listUtils;
-         
-     public XmlElementName[] typeCode2namespaceNames; // array, indexed by type code, giving XMI names for each type
-     
-     private final BitSet typeUsed;  // identifies types being serialized, a subset of all possible types
-         
-     public boolean needNameSpaces = true; // may be false; currently for JSON only
- 
-     /**
-      * map from a namespace expanded form to the namespace prefix, to identify potential collisions when
-      *   generating a namespace string
-      */
-     public final Map<String, String> nsUriToPrefixMap = new HashMap<>();
-            
-     /**
-      * the set of all namespace prefixes used, to disallow some if they are 
-      *   in use already in set-aside data (xmi serialization) being merged back in
-      */
-     public final Set<String> nsPrefixesUsed = new HashSet<>();
-     
-     /**
-      * Used to tell if a FS was created before or after mark.
-      */
-     public final MarkerImpl marker;
- 
-     /**
-      * for Delta serialization, holds the info gathered from deserialization needed for delta serialization 
-      * and for handling out-of-type-system data for both plain and delta serialization
-      */
-     public final XmiSerializationSharedData sharedData;
- 
-     /**
-      * Whether the serializer needs to serialize only the deltas, that is, new FSs created after
-      * mark represented by Marker object and preexisting FSs and Views that have been
-      * modified. Set to true if Marker object is not null and CASImpl object of this serialize
-      * matches the CASImpl in Marker object.
-      */
-     public final boolean isDelta;
-     
-     /**
-      * Whether the serializer needs to check for filtered-out types/features. Set to true if type
-      * system of CAS does not match type system that was passed to constructor of serializer.
-      */
-     public final boolean isFiltering;
- 
-     private TypeImpl[] sortedUsedTypes;
-     
-     private final ErrorHandler errorHandler2;
-     
-     public TypeSystemImpl filterTypeSystem_inner;
-     
-     // map to reduce string usage by reusing equal string representations; lives just for one serialize call
-     private final Map<String, String> uniqueStrings = new HashMap<>();
- 
-     public final boolean isFormattedOutput_inner;
-     
-     private final CasSerializerSupportSerialize csss;
- 
-     /***********************************************
-      *         C O N S T R U C T O R S             *  
-      ***********************************************/
-     /**
-      * 
-      * @param ch -
-      * @param cas -
-      * @param sharedData -
-      * @param marker -
-      * @param csss -
-      */
-     public CasDocSerializer(ContentHandler ch, CASImpl cas, XmiSerializationSharedData sharedData, MarkerImpl marker, CasSerializerSupportSerialize csss) {
-       this(ch, cas,sharedData, marker, csss, false);
-     }
-     
-     public CasDocSerializer(ContentHandler ch, CASImpl cas, XmiSerializationSharedData sharedData, MarkerImpl marker, CasSerializerSupportSerialize csss, boolean trackMultiRefs) {
-       this.cas = cas;
-       this.csss = csss;
-       this.sharedData = sharedData;
- 
-       // copy outer class values into final inner ones, to keep the outer thread-safe
-       filterTypeSystem_inner = CasSerializerSupport.this.filterTypeSystem; 
-       isFormattedOutput_inner = CasSerializerSupport.this.isFormattedOutput; 
-       this.marker = marker;
-       errorHandler2 = CasSerializerSupport.this.errorHandler;
- 
-       tsi = cas.getTypeSystemImpl();
-       queue = new ArrayDeque<>();
-       indexedFSs = (List<TOP>[]) new List<?>[cas.getViewCount()];  // number of views
- //      listUtils = new ListUtils(cas, logger, errorHandler);
-       typeUsed = new BitSet();
- 
-       isFiltering = filterTypeSystem_inner != null && filterTypeSystem_inner != tsi;
-       if (marker != null && !marker.isValid()) {
-   	    throw new CASRuntimeException(CASRuntimeException.INVALID_MARKER, "Invalid Marker.");
-       }
-       isDelta = marker != null;
-       multiRefFSs = Collections.newSetFromMap(new IdentityHashMap<>());
-       isDynamicMultiRef = trackMultiRefs;
-     }
-         
-     // TODO: internationalize
-     private void reportMultiRefWarning(FeatureImpl fi) throws SAXException {
-       String message = String.format("Feature %s is marked multipleReferencesAllowed=false, but it has"
-           + " multiple references.  These will be serialized in duplicate.", 
-           fi.getName());
-       Misc.decreasingWithTrace(errorCount, message, logger);
-       if (this.errorHandler2 != null) {
-         this.errorHandler2.warning(new SAXParseException(message, null));
-       }
-     }
- 
-     /**
-      * Starts serialization
-      * @throws Exception -
-      */
-     public void serialize() throws Exception {    
-       typeCode2namespaceNames = new XmlElementName[tsi.getLargestTypeCode() + 1];
-       
-       // reset caches in case some things modified between calls to serialize for same instance of serializer
-       sortedUsedTypes = null;
-       typeUsed.clear();
-       Arrays.fill(indexedFSs, null);
-       queue.clear();
-            
-       csss.initializeNamespaces();
-               
-       int iElementCount = 1; // start at 1 to account for special NULL object
- 
-       enqueueIndexed();  // done first - to insure this has priority  
- 
-       enqueueIncoming(); //make sure we enqueue every FS that was deserialized into this CAS
-                          // needed to support Out Of Typesystem data
-       enqueueNonsharedMultivaluedFS();  // needed for delta serialization of modified embedded lists/arrays
-       enqueueFeaturesOfIndexed(); // and incoming and modified embedded refs
-       
-       iElementCount += (previouslySerializedFSs == null) ? 0 : previouslySerializedFSs.size();
-       iElementCount += (modifiedEmbeddedValueFSs == null) ? 0 : modifiedEmbeddedValueFSs.size();
-       for (List<TOP> fss : indexedFSs) {  
-         iElementCount += (fss == null) ? 0 : fss.size();
-       }
-       iElementCount += queue.size();
- 
-       FSIndex<TOP> sofaIndex = cas.getBaseCAS().indexRepository.getIndex(CAS.SOFA_INDEX_NAME);
-       if (!isDelta) {
-       	iElementCount += (sofaIndex.size()); // one View element per sofa
-       	iElementCount += getElementCountForSharedData();
-       } else {
-         int numViews = cas.getViewCount();
-         for (int sofaNum = 1; sofaNum <= numViews; sofaNum++) {
-           FSIndexRepositoryImpl loopIR = (FSIndexRepositoryImpl) cas.getBaseCAS().getSofaIndexRepository(sofaNum);
-           if (loopIR != null && loopIR.isModified()) {
-             iElementCount++;
-           }
-         }
-       }
-       
-       csss.writeFeatureStructures(iElementCount);
-       
-       csss.writeViews();
-       
-       csss.writeEndOfSerialization();
-     }
-     
-     /**
-      * 
-      * @param sofaNum - starts at 1
-      * @return the sofa FS, or null
-      */
-     public Sofa getSofa(int sofaNum) {  
-       if (sofaNum != 1 || cas.isInitialSofaCreated()) { //skip if initial view && no Sofa yet
-                                                         // all non-initial-views must have a sofa
-         return ((CASImpl)cas.getView(sofaNum)).getSofaRef();
-       }
-       return null;
-     }
- 
-     public void writeViewsCommons() throws Exception {
-       // Get indexes for each SofaFS in the CAS
-       int numViews = cas.getViewCount();
-     
-       
-       for (int sofaNum = 1; sofaNum <= numViews; sofaNum++) {
-         FSIndexRepositoryImpl loopIR = (FSIndexRepositoryImpl) cas.getBaseCAS().getSofaIndexRepository(sofaNum);
-         final Sofa sofa = getSofa(sofaNum);
-         if (loopIR != null) {
-           if (!isDelta) {
-             Collection<TOP> fss = loopIR.getIndexedFSs();
-             csss.writeView(sofa, fss);
-           } else { // is Delta Cas
-         	  if (sofaNum != 1 && this.marker.isNew(sofa)) {
-         	    // for views created after mark (initial view never is - it is always created with the CAS)
-         	    // write out the view as new
-         	    Collection<TOP> fss = loopIR.getIndexedFSs();
-               csss.writeView(sofa, fss);
-         	  } else if (loopIR.isModified()) {
-         	    csss.writeView(sofa, loopIR.getAddedFSs(), loopIR.getDeletedFSs(), loopIR.getReindexedFSs());
-           	}
-           } 
-         }
-       }
-     }                 
-     
-     // sort is by shortname of type
-     public TypeImpl[] getSortedUsedTypes() {
-       if (null == sortedUsedTypes) {
-         sortedUsedTypes = new TypeImpl[typeUsed.cardinality()];
-         int i = 0;
-         for (TypeImpl ti : getUsedTypesIterable()) {
-           sortedUsedTypes[i++] = ti;
-         }
-         Arrays.sort(sortedUsedTypes, COMPARATOR_SHORT_TYPENAME);     
-       }
-       return sortedUsedTypes;
-     }
-     
-     private Iterable<TypeImpl> getUsedTypesIterable() {
-       return new Iterable<TypeImpl>() {
-         public Iterator<TypeImpl> iterator() {
-           return new Iterator<TypeImpl>() {
-             private int i = 0;
-             
-             public boolean hasNext() {
-               return typeUsed.nextSetBit(i) >= 0;
-             }
- 
-             public TypeImpl next() {
-               final int next_i = typeUsed.nextSetBit(i);
-               if (next_i < 0) {
-                 throw new NoSuchElementException();
-               }
-               i = next_i + 1;
-               return (TypeImpl) tsi.ll_getTypeForCode(next_i);
-             }
- 
-             public void remove() {
-               throw new UnsupportedOperationException();
-             } 
-           };
-         }
-       };
-     }
-      
- //    private StringPair[] getSortedPrefixUri() {
- //      StringPair[] r = new StringPair[nsUriToPrefixMap.size()];
- //      int i = 0;
- //      for (Map.Entry<String,String> e : nsUriToPrefixMap.entrySet()) {
- //        r[i++] = new StringPair(e.getValue(), e.getKey());
- //      }
- //      Arrays.sort(r);
- //      return r;
- //    }
-     
-     /**
-      * Enqueues all FS that are stored in the sharedData's id map.
-      * This map is populated during the previous deserialization.  This method
-      * is used to make sure that all incoming FS are echoed in the next
-      * serialization.  It is required if there are out-of-type FSs that 
-      * are being merged back into the serialized form; those might
-      * reference some of these.
-      */
-     private void enqueueIncoming() {
-       if (sharedData == null)
-         return;
-       TOP[] fss = this.sharedData.getAndSortByIdAllFSsInIdMap();
-       previouslySerializedFSs = new ArrayList<>();
-       
-       for (TOP fs : fss) {
-         // skip enque for null and for unmodified fss if delta
-         if (fs == null || 
-             (isDelta && !marker.isModified(fs))) {
-           continue;
-         }
-                 
-         // is the first instance, but skip if delta and not modified or above the line or filtered
-         // skip enqueuing incoming FS if already enqueued 
-         int typeCode = enqueueCommon(fs);
-         if (typeCode == -1) {
-           continue;
-         }
-         previouslySerializedFSs.add(fs);
-       }
-     }
- 
-      
-     /**
-      * add the indexed FSs onto the indexedFSs by view.
-      * add the SofaFSs onto the by-ref queue
-      */
-     private void enqueueIndexed()  {
-       FSIndexRepositoryImpl ir = (FSIndexRepositoryImpl) cas.getBaseCAS().getBaseIndexRepository();
-       Collection<TOP> fss = ir.getIndexedFSs();  // only sofas
-       try {
-         for (TOP fs : fss) {
-           enqueueFsAndMaybeFeatures(fs);  // put Sofa on by-ref queue
-         }
-       } catch (SAXException e) {
-         throw new RuntimeException("Internal error - should never happen", e);
-       }
- 
-       // FSIndex sofaIndex = cas.getBaseCAS().indexRepository.getIndex(CAS.SOFA_INDEX_NAME);
-       // FSIterator iterator = sofaIndex.iterator();
-       // // Get indexes for each SofaFS in the CAS
-       // while (iterator.isValid())
-       int numViews = cas.getViewCount();
-       for (int sofaNum = 1; sofaNum <= numViews; sofaNum++) {
-         // SofaFS sofa = (SofaFS) iterator.get();
-         // int sofaNum = sofa.getSofaRef();
-         // iterator.moveToNext();
-         FSIndexRepositoryImpl loopIR = (FSIndexRepositoryImpl) cas.getBaseCAS()
-                 .getSofaIndexRepository(sofaNum);
-         if (loopIR != null) {
-           Collection<TOP> items = loopIR.getIndexedFSs();
-           for (TOP item : items) {
-             enqueueIndexedFs_only_not_features(sofaNum, item);
-           }
-         }
-       }
-     }
-     
-     /** 
-      * When serializing Delta CAS,
-      * enqueue encompassing FS of nonshared multivalued FS that have been modified.
-      * The embedded nonshared-multivalued item could be a list or an array
-      */
-     private void enqueueNonsharedMultivaluedFS() {
-       if (sharedData == null || !isDelta)
-           return;
-       TOP[] fss = sharedData.getNonsharedMulitValuedFSs();
-       modifiedEmbeddedValueFSs = new ArrayList<>();
-       
-       for (TOP fs : fss) {
-         if (marker.isModified(fs)) {
-           TOP encompassingFs = sharedData.getEncompassingFS(fs);
-           assert null != encompassingFs;
-           if (-1 != enqueueCommonWithoutDeltaAndFilteringCheck(encompassingFs)) {  // only to set type used info and check if already enqueued
-             modifiedEmbeddedValueFSs.add(encompassingFs);
-           }
-         }    
-       }      
-     }
- 
-     /**
-      * Enqueue everything reachable from features of indexed FSs.
-      */
-     private void enqueueFeaturesOfIndexed() throws SAXException {
-       if (null != previouslySerializedFSs) {
-         enqueueFeaturesOfFSs(previouslySerializedFSs);
-       }
-       if (null != modifiedEmbeddedValueFSs) {
-         enqueueFeaturesOfFSs(modifiedEmbeddedValueFSs);
-       }
-       for (List<TOP> fss : indexedFSs) {
-         if (fss != null) {
-           enqueueFeaturesOfFSs(fss);
-         }
-       }
-     }
-     
-     private void enqueueFeaturesOfFSs(final List<TOP> fss) throws SAXException {
-       for (TOP fs : fss) {
-         enqueueFeatures(fs);
-       }
-     }
- 
-     int enqueueCommon(TOP fs) {
-       return enqueueCommon(fs, true);
-     }
-     
-     int enqueueCommonWithoutDeltaAndFilteringCheck(TOP fs) {
-       return enqueueCommon(fs, false);
-     }
-     
-     /**
-      * @param fs -
-      * @param doDeltaAndFilteringCheck -
-      * @return true to have enqueue put onto "queue" and enqueue features
-      */
-     private int enqueueCommon(TOP fs, boolean doDeltaAndFilteringCheck) {
-       if (doDeltaAndFilteringCheck) {
-         if (isDelta) {
-           if (!marker.isNew(fs) && !marker.isModified(fs)) {
-             return -1;
-           }
-         }
-       
-         if (isFiltering) {
-           String typeName = fs._getTypeImpl().getName();
-           if (filterTypeSystem_inner.getType(typeName) == null) {
-             return -1; // this type is not in the target type system
-           }
-         }
-       }
-       
-       // We set visited only if we're going to enqueue this.
-       //   (In other words, please don't move this up in this method)
-       //   This handles the use case:
-       //   delta cas; element is not modified, but at some later point, we determine
-       //   an embedded feature value (array or list) is modified, which requires we serialize out this
-       //   fs as if it was modified.
- 
-       if (!visited_not_yet_written.add(fs)) {
-         // was already visited; means this FS has multiple references, either from FS feature(s) or indexes or both
-         // https://issues.apache.org/jira/browse/UIMA-5532
-         if (isDynamicMultiRef || isArrayOrList(fs)) {
-           boolean wasAdded = multiRefFSs.add(fs);
-           if (wasAdded) {
-             queue.add(fs);  // if was in indexed set before, isn't in the queue set, but needs to be
-           }
-         }
-         return -1;
-       }
-       
-       final int typeCode = fs._getTypeCode();
-       boolean alreadySet = typeUsed.get(typeCode);
-       if (!alreadySet) {
-         typeUsed.set(typeCode);
- 
-         String typeName = fs._getTypeImpl().getName();
-         XmlElementName newXel = csss.uimaTypeName2XmiElementName(typeName);
- 
-         if (!needNameSpaces) {   // means if name spaces are not not always needed, then we have to check for collision
-           csss.checkForNameCollision(newXel);   // executed for JSON code
-         }        
-         typeCode2namespaceNames[typeCode] = newXel;
-       }  
-       return typeCode;
-     }   
-         
-     /*
-      * Enqueues an indexed FS. Does NOT enqueue features at this point.
-      * Doesn't enqueue non-modified FS when delta
-      */
-     void enqueueIndexedFs_only_not_features(int viewNumber, TOP fs) {
-       if (enqueueCommon(fs) != -1) {
-         List<TOP> fss = indexedFSs[viewNumber - 1];
-         if (null == fss) {
-           indexedFSs[viewNumber - 1] = fss = new ArrayList<>();
-         }
-         fss.add(fs);
-       }
-     }
- 
-     /**
-      * Enqueue an FS, and everything reachable from it.
-      * 
-      * This call is recursive with enqueueFeatures, \
-      * and an arbitrary long chain can get stack overflow error.
-      * Probably should fix this someday. See https://issues.apache.org/jira/browse/UIMA-106
-      * 
-      * @param addr
-      *          The FS address.
-      * @throws SAXException 
-      */
-     private void enqueueFsAndMaybeFeatures(TOP fs) throws SAXException {  
-       if (null == fs) {
-         return;
-       }
-  
-       int typeCode = enqueueCommon(fs);
-       if (typeCode == -1) {
-         return;  
-       }
-       queue.add(fs);
-       enqueueFeatures(fs);
-       // Also, for FSArrays enqueue the elements  -- not here, done by enqueueFeatures, 1 line above
- //      if (fs instanceof FSArray) { //TODO: won't get parameterized arrays? no, there are no parameterized arrays in the impl
- //        enqueueFSArrayElements((FSArray) fs);
- //      }
-     }
-             
-     /**
-      * For lists, 
-      *   see if this is a plain list
-      *     - no loops
-      *     - no other refs to list elements from outside the list
-      *     -- if so, return false;
-      *     
-      *   add all the elements of the list to visited_not_yet_written,
-      *     noting if they've already been added 
-      *     -- this indicates either a loop or another ref from outside,
-      *     -- in either case, return true - t
-      * @param curNode -
-      * @param featCode -
-      * @return false if no list element is multiply-referenced,
-      *         true if there is a loop or another ref from outside the list, for 
-      *         one or more list element nodes
-      */
-     private boolean isListElementsMultiplyReferenced(TOP listNode) {
-       boolean foundCycle = false;
-       CommonList curNode = (CommonList) listNode;
-       while (curNode instanceof NonEmptyList) {  // stop on end or 0
-         if (!visited_not_yet_written.add((TOP) curNode)) {
-           foundCycle = true;
-           break;
-         }
-         curNode = curNode.getCommonTail();
-       }
-       return foundCycle;
-     }
-     
-     /**
-      * ordinary FSs referenced as features are not checked by this routine;
-      * this is only called for FSlists of various kinds, and fs arrays of various kinds
-      * 
-      * Not all featValues should be enqueued;
-      *   list or array features which are marked **NOT** multiple-refs-allowed 
-      *     are serialized in-line
-      *   for JSON, when using dynamicMultiRef (the default), list / array FSs 
-      *     are serialized by ref (not in-line) if there are multiple refs to them
-      *   
-      *   for XMI and JSON, any FS ref marked as multiple-refs-allowed forces
-      *     the item onto the ref "queue".
-      *     
-      *   (not handled here: ordinary FSs are serialized in-line in JSON with isDynamicMultiRef)
-      * 
-      * @param fi - the feature, to look up the multiRefAllowed flag
-      * @param featVal - the List or array element
-      * @param alreadyVisited true if visited_not_yet_written contains the featVal
-      * @param isListNode -
-      * @param isListFeat -
-      * @return false if should skip enqueue because this array or list is being serialized inline
-      * @throws SAXException -
-      */
-     private boolean isMultiRef_enqueue(FeatureImpl fi, TOP featVal, boolean alreadyVisited, boolean isListNode, boolean isListFeat) throws SAXException {
-       if (!isDynamicMultiRef) {
-         
-         // not JSON dynamic embedding, or dynamic embedding is turned off - compute static embedding just for lists and arrays
-         boolean multiRefAllowed = fi.isMultipleReferencesAllowed() || isListNode;
-         if (!multiRefAllowed) {
-           // Arrays cannot be resized, so it is ok if an empty array has multiple references to it
-           // even if multiRefAllowed is false because it is effectively immutable.
-           if ((featVal instanceof CommonArrayFS && ((CommonArrayFS<?>) featVal).isEmpty())) {
-             return false; // immutable empty array, no need to enqueue
-           }
-           
-           // two cases: a list or non-list
-           // if a list, check/mark all the nodes in the list for any being multiply referenced
-           if ((isListFeat && isListElementsMultiplyReferenced(featVal)) ||
-               // say: multi-ref not allowed, but discovered a multi-ref, will be serialized as separate item
-               (!isListFeat && alreadyVisited)) {
-               reportMultiRefWarning(fi);              
-           } else {
-             // multi-ref not allowed, and this item is not multiply referenced (so far) 
-             // expecting to serialize as embedded (if array or list, or JSON)
-             if (!isListFeat) {  // already added visited for list nodes
-               visited_not_yet_written.add(featVal);
-             }
-           }
-           return false; // because static, multi-ref not allowed, no need to enqueue
-         } else {  // is multiRefAllowed or in list node
-           return true; // static, multi-ref allowed or in list node, enqueue
-         }
-       }
-       
-       // doing JSON dynamic determination of multi-refs
-       if (alreadyVisited) {
-         return !multiRefFSs.contains(featVal); // enqueue in the "queue" section, first time this happens
-       }
-       return true;  // enqueue this item.  May or may not be eventually written embedded
-                     // but we enqueue to track multi-use
-     }
- 
-     /**
-      * Enqueue all FSs reachable from features of the given FS.
-      * 
-      * @param addr
-      *          address of an FS
-      * @param typeCode
-      *          type of the FS
-      * @param insideListNode
-      *          true iff the enclosing FS (addr) is a list type
-      */
-     private void enqueueFeatures(TOP fs) throws SAXException {
- 
-       /**
-        * Handle FSArrays
-        */
-       if (fs instanceof FSArray) {
-         
-         TOP[] theArray = ((FSArray)fs)._getTheArray();
- 
-         for (TOP elem : theArray) {
-           if (isFiltering &&
-               (null == filterTypeSystem_inner.getType(elem._getTypeImpl().getName()))) {
-             continue;  // skip because not in filter type system
-           }
-           if (elem != null) {
-             enqueueFsAndMaybeFeatures(elem);
-           }
-         }        
-         return;
-       }      
-       
-       boolean insideListNode = fs instanceof CommonList;
- 
-       if (fs instanceof UimaSerializable) {
-         ((UimaSerializable)fs)._save_to_cas_data();
-       }
-       for (FeatureImpl fi : fs._getTypeImpl().getFeatureImpls()) {
-         if (isFiltering && filterTypeSystem_inner.getFeatureByFullName(fi.getName()) == null) { 
-           // skip features that aren't in the target type system
-             continue;
-         }
- //        final int featAddr = addr + cas.getFeatureOffset(feat);
- //        final int featVal = cas.getHeapValue(featAddr);
- //        if (featVal == CASImpl.NULL) {      // null feature values do not refer to any other FS
- //          continue;
- //        }
- 
-         // enqueue behavior depends on range type of feature
-         final int fsClass = fi.rangeTypeClass;
-         switch (fsClass) {
-           case LowLevelCAS.TYPE_CLASS_FS: {
-             enqueueFsAndMaybeFeatures(fs.getFeatureValue(fi));
-             break;
-           }
-           case LowLevelCAS.TYPE_CLASS_INTARRAY:
-           case LowLevelCAS.TYPE_CLASS_FLOATARRAY:
-           case LowLevelCAS.TYPE_CLASS_STRINGARRAY:
-           case LowLevelCAS.TYPE_CLASS_BOOLEANARRAY:
-           case LowLevelCAS.TYPE_CLASS_BYTEARRAY:
-           case LowLevelCAS.TYPE_CLASS_SHORTARRAY:
-           case LowLevelCAS.TYPE_CLASS_LONGARRAY:
-           case LowLevelCAS.TYPE_CLASS_DOUBLEARRAY:
-           case LowLevelCAS.TYPE_CLASS_FSARRAY: {
-             TOP array = fs.getFeatureValue(fi);  // can be null
-             if (null == array) {
-               continue;
-             }
-             // we enqueue arrays if:
-             //   when statically using multipleReferencesAllowed flag:
-             //     when that says it's multiply referenced; 
-             //       otherwise, we skip enqueueing it because it will
-             //       be picked up when serializing the feature
-             //   when dynamically computing multiple-refs: we enqueue it
-             //   unless already enqueued, in order to pick up any multiple refs
-             final boolean alreadyVisited = visited_not_yet_written.contains(array);
-             if (isMultiRef_enqueue(fi, array, alreadyVisited, false, false)) {
-               if (enqueued_multiRef_arrays_or_lists.add(array)) {  // only do this once per item
-                 enqueueFsAndMaybeFeatures(array);  // will add to queue list 1st time multi-ref detected
-                 // or JSON isDynamicEmbedding is on (whether or not multi-ref)
-               } else {
-                 // for isDynamicMultiRef, this is the first time we detect multiple refs
-                 // do this here, because the enqueued_multiRef_arrays_or_lists.add above makes
-                 //   the 2nd and subsequent multi-ref things bypass the enqueue call.
-                 //   - only needed for isDynamicMultiRef, because only that returns true for isMultiRef_enqueue
-                 //     for the "first" instance, when it isn't yet known.
-                 if (isDynamicMultiRef) {
-                   multiRefFSs.add(array);  
-                 }
-               }
-             // otherwise, it is singly referenced (so far) and will be embedded
-             //   (or has already been enqueued, in dynamic embedding mode), so don't enqueue
-             } else if (array instanceof FSArray && !alreadyVisited) {
-               // enqueue any FSs reachable from an FSArray
-               enqueueFSArrayElements((FSArray) array);
-             }
-             break;
-           }
-           case TYPE_CLASS_INTLIST:
-           case TYPE_CLASS_FLOATLIST:
-           case TYPE_CLASS_STRINGLIST:
-           case TYPE_CLASS_FSLIST: {
-             // we enqueue lists if:
-             //   when statically using multipleReferencesAllowed flag:
-             //     when that says it's multiply referenced or 
-             //               we're inside a list which was earlier multiply referenced 
-             //       otherwise, we skip enqueueing it because it will
-             //       be picked up when serializing the feature
-             //   when dynamically computing multiple-refs: we enqueue it
-             //   unless already enqueued, in order to pick up any multiple refs
-             TOP startOfList_node = fs.getFeatureValue(fi);
-             if (null == startOfList_node) {
-               // the feature, whose type is one of the lists, has a null value, so there's nothing to enqueue
-               continue;
-             }
-             final boolean alreadyVisited = visited_not_yet_written.contains(startOfList_node);
-             if (isMultiRef_enqueue(fi, startOfList_node, alreadyVisited, insideListNode, true)) {
-               if (enqueued_multiRef_arrays_or_lists.add(startOfList_node)) {  // only do this once per item
-                 enqueueFsAndMaybeFeatures(startOfList_node);
-               } else {
-                 // for isDynamicMultiRef, this is the first time we detect multiple refs
-                 // do this here, because the enqueued_multiRef_arrays_or_lists.add above makes
-                 //   the 2nd and subsequent multi-ref things bypass the enqueue call.
-                 //   - only needed for isDynamicMultiRef, because only that returns true for isMultiRef_enqueue
-                 //     for the "first" instance, when it isn't yet known.
-                 if (isDynamicMultiRef) {
-                   multiRefFSs.add(startOfList_node);  
-                 }
-               }              
-             } else if (startOfList_node instanceof FSList && !alreadyVisited) {
-               // also, we need to enqueue any FSs reachable from an FSList
-               enqueueFSListElements((FSList) startOfList_node);
-             }
-             break;
-           }
-         }
-       }  // end of loop over all features
-     }
- 
-     /**
-      * Enqueues all FS reachable from an FSArray.
-      * 
-      * @param addr
-      *          Address of an FSArray
-      */
-     private void enqueueFSArrayElements(FSArray fsArray) throws SAXException {
-        for (TOP elem : fsArray._getTheArray()) {
-         if (elem != null) {
-           enqueueFsAndMaybeFeatures(elem);
-         }
-       }
-     }
- 
-     /**
-      * Enqueues all Head values of FSList reachable from an FSList. 
-      * This does NOT include the list nodes themselves.
-      * 
-      * @param addr
-      *          Address of an FSList
-      */
-     private void enqueueFSListElements(FSList<TOP> node) throws SAXException {
-       node.walkList_saxException(n -> enqueueFsAndMaybeFeatures(((NonEmptyFSList<TOP>)n).getHead()), null);
-     }
- 
-     /*
-      * Encode the indexed FS in the queue.
-      */
-     public void encodeIndexed() throws Exception {
-       if (null != previouslySerializedFSs) {
-         encodeFSs(previouslySerializedFSs);
-       }
-       if (null != modifiedEmbeddedValueFSs) {
-         encodeFSs(modifiedEmbeddedValueFSs);
-       }
-       for (List<TOP> fss : indexedFSs) {
-         if (fss != null) {
-           encodeFSs(fss);
-         }
-       }
-     }
-     
-     private void encodeFSs(final List<TOP> fss) throws Exception {
-       for (TOP fs : fss) {
-         encodeFS(fs);
-       }
-     }
- 
-     /*
-      * Encode all other enqueued (non-indexed) FSs.
-      * The queue is read out in FiFo order.
-      * This insures that FsLists which are only 
-      *   referenced via a single FS ref, get 
-      *   encoded as [ x x x ] format rather than
-      *   as individual FSs (because the individual
-      *   items are also in the queue as items, but
-      *   later).  The isWritten test prevents dupl writes
-      */
-     public void encodeQueued() throws Exception {
-    
-       for (TOP fs :  queue) {
-         // for some serializers, things could be enqueued multiple times in the ref queue
-         // so check if already written, and if so, skip
-         //    Case where this happens: JSON serialization with dynamically determined single ref embedding
-         //    - have to enqueue to check if multiple refs, even if embedding eventually
-         if (visited_not_yet_written.contains(fs)) {        
-           // skip if JSON dynamically computing whether or not to embed things and there's only one item - it will be embedded instead
-           if (isDynamicMultiRef && !multiRefFSs.contains(fs)) {
-             continue;  // skip writing embeddable item (for JSON dynamic embedding) from Q; will be written from reference
-           }
-           encodeFS(fs);
-         }
-       }
-     }
-     
- 
- //    public Integer[] collectAllFeatureStructures() {
- //      final int indexedSize = indexedFSs.size();
- //      final int qSize = queue.size();
- //      final int rLen = indexedSize + queue.size();
- //      Integer[] r = new Integer[rLen];
- //      int i = 0;
- //      for (; i < indexedSize; i++) {
- //        r[i] = indexedFSs.get(i);
- //      }
- //      for (int j = 0; j < qSize; j++) {
- //        r[i++] =  queue.get(j);
- //      }
- //      return r;
- //    }
-           
-     /** 
-      * Called for JSon Serialization
-      * Sort a view, by type and then by begin/end asc/des for subtypes of Annotation,
-      *  then by id
-      */
-     public final Comparator<TOP> sortFssByType = 
-         new Comparator<TOP>() {
-           public int compare(TOP fs1, TOP fs2) {
-             int c = Integer.compare(fs1._getTypeImpl().getCode(), fs2._getTypeImpl().getCode());
-             if (c != 0) {
-               return c;
-             }
- //            final boolean hasSofa = tsi.subsumes(tsi.annotBaseTypeCode, typeCode1);
- //            if (hasSofa) {
- //              c = compareFeat(o1, o2, tsi.annotSofaFeatCode);
- //              if (c != 0) {
- //                return c;
- //              }
- 
-             if (fs1 instanceof Annotation) {
-               Annotation fs1a = (Annotation) fs1;
-               Annotation fs2a = (Annotation) fs2;
-               
-               c = Integer.compare(fs1a.getBegin(), fs2a.getBegin());
-               if (c != 0) return c;
-               
-               c = Integer.compare(fs2a.getEnd(), fs1a.getEnd()); // reverse order
-               if (c != 0) return c;
-               
-               // fall thru to do id compare
-             }
-             // not annotation, or equal begin/end/type
-             return Integer.compare(fs1._id, fs2._id);  // return in @id order
-           }
-       };
-       
-     /**
-      * Encode an individual FS.
-      * 
-      * Json has 2 encodings   
-      *  For type:
-      *  "typeName" : [ { "@id" : 123,  feat : value .... },
-      *                 { "@id" : 456,  feat : value .... },
-      *                 ...
-      *               ],
-      *      ... 
-      *        
-      *  For id:
-      *  "nnnn" : {"@type" : typeName ; feat : value ...}
-      *     
-      *  For cases where the top level type is an array or list, there is
-      *  a generated feature name, "@collection" whose value is 
-      *  the list or array of values associated with that type.
-      *   
-      * @param fs the FS to be encoded.
-      * @throws SAXException passthru
-      */
-     public void encodeFS(TOP fs) throws Exception {
-       final int typeCode = fs._getTypeImpl().getCode();
- 
-       final int typeClass = classifyType(fs._getTypeImpl());
-       // for JSON, the items reachable via indexes are written first,
-       //   and isIndexId = false
-       //   The items reachable via refs are written next, and 
-       //   isIndexId = true;
-       boolean isIndexId = csss.writeFsStart(fs, typeCode);
-       
-       // write the id if needed for reference
-       //   - if it is not ref'd via index, and JSON is computing dynamic refs, and it is multiply ref'd
-       //   - skip if not JSON dynamic ref, or in index, or not multiply ref'd
-       if (!isIndexId && isDynamicMultiRef && multiRefFSs.contains(fs)) {
-         csss.writeFsRef(fs);        
-       } else {
-         visited_not_yet_written.remove(fs);  // mark as written
-         switch (typeClass) {
-           case LowLevelCAS.TYPE_CLASS_FS: 
-             csss.writeFs(fs, typeCode);
-             break;
-           
-             
-           case TYPE_CLASS_INTLIST:
-           case TYPE_CLASS_FLOATLIST:
-           case TYPE_CLASS_STRINGLIST:
-           case TYPE_CLASS_FSLIST: 
-             csss.writeListsAsIndividualFSs(fs, typeCode);
-             break;
-                   
-           case LowLevelCAS.TYPE_CLASS_FSARRAY:
-           case LowLevelCAS.TYPE_CLASS_INTARRAY:
-           case LowLevelCAS.TYPE_CLASS_FLOATARRAY:
-           case LowLevelCAS.TYPE_CLASS_BOOLEANARRAY:
-           case LowLevelCAS.TYPE_CLASS_BYTEARRAY:
-           case LowLevelCAS.TYPE_CLASS_SHORTARRAY:
-           case LowLevelCAS.TYPE_CLASS_LONGARRAY:
-           case LowLevelCAS.TYPE_CLASS_DOUBLEARRAY:
-           case LowLevelCAS.TYPE_CLASS_STRINGARRAY:
-             csss.writeArrays(fs, typeCode, typeClass);
-             break;
-           
-           default: 
-             throw new RuntimeException("Error classifying FS type.");
-         }
-         
-         csss.writeEndOfIndividualFs();
-       }
-     }
- 
-     int getElementCountForSharedData() {
-       return (sharedData == null) ? 0 : sharedData.getOutOfTypeSystemElements().size();
-     }    
-     
-     /**
-      * Get the XMI ID to use for an FS.
-      * 
-      * @param fs the FS
-      * @return XMI ID or null
-      */
-     public String getXmiId(TOP fs) {
-       int v = getXmiIdAsInt(fs);
-       return (v == 0) ? null : Integer.toString(v);
-     }
-     
-     public int getXmiIdAsInt(TOP fs) {
-       if (fs == null) {
-         return 0;
-       }
-       if (isFiltering && null == filterTypeSystem_inner.getType(fs._getTypeImpl().getName())) { // return as null any references to types not in target TS
-           return 0;
-       }
-       
-       if (sharedData == null) {
-         // in the absence of outside information, just use the FS address
-         return fs._id;
-       } else {
-         return sharedData.getXmiIdAsInt(fs);
-       }
-       
-     }
- 
-     public String getNameSpacePrefix(String uimaTypeName, String nsUri, int lastDotIndex) {
-       // determine what namespace prefix to use
-       String prefix = nsUriToPrefixMap.get(nsUri);
-       if (prefix == null) {
-         if (lastDotIndex != -1) { // have namespace 
-           int secondLastDotIndex = uimaTypeName.lastIndexOf('.', lastDotIndex-1);
-           prefix = uimaTypeName.substring(secondLastDotIndex + 1, lastDotIndex);
-         } else {
-           prefix = "noNamespace"; // is correct for older XMI standard too
-         }
-         // make sure this prefix hasn't already been used for some other namespace
-         // including out-of-type-system types (for XmiCasSerializer)
-         if (nsPrefixesUsed.contains(prefix)) {
-           String basePrefix = prefix;
-           int num = 2;
-           while (nsPrefixesUsed.contains(basePrefix + num)) {
-             num++;
-           }
-           prefix = basePrefix + num;
-         }
-         nsUriToPrefixMap.put(nsUri, prefix);
-         nsPrefixesUsed.add(prefix);
-       }
-       return prefix;
-     }
-     /*
-      *  convert to shared string, without interning, reduce GCs
-      */
-     public String getUniqueString(String s) { 
-       String u = uniqueStrings.get(s);
-       if (null == u) {
-         u = s;
-         uniqueStrings.put(s, s);
-       }
-       return u;
-     }
-     
-     public String getTypeNameFromXmlElementName(XmlElementName xe) {
-       final String nsUri = xe.nsUri;
-       if (nsUri == null || nsUri.length() == 0) {
-         throw new UnsupportedOperationException();
-       }
-       
-       final int pfx = XmiCasSerializer.URIPFX.length;
-       final int sfx = XmiCasSerializer.URISFX.length;
-       
-       String r = (nsUri.startsWith(XmiCasSerializer.DEFAULT_NAMESPACE_URI)) ? 
-           "" :
-           nsUri.substring(pfx, nsUri.length() - sfx);
-       r = r.replace('/', '.');
-       
-       return r + xe.localName;
-     }
-     
-     public boolean isStaticMultiRef(FeatureImpl fi) {
-       return fi.isMultipleReferencesAllowed();
-     }
- 
- 
-   }  
-   
-   /**
-    * Classifies a type. This returns an integer code identifying the type as one of the primitive
-    * types, one of the array types, one of the list types, or a generic FS type (anything else).
-    * <p>
-    * The {@link LowLevelCAS#ll_getTypeClass(int)} method classifies primitives and array types,
-    * but does not have a special classification for list types, which we need for XMI
-    * serialization. Therefore, in addition to the type codes defined on {@link LowLevelCAS}, this
-    * method can return one of the type codes TYPE_CLASS_INTLIST, TYPE_CLASS_FLOATLIST,
-    * TYPE_CLASS_STRINGLIST, or TYPE_CLASS_FSLIST.
-    * 
-    * @param ti the type to classify
-    * @return one of the TYPE_CLASS codes defined on {@link LowLevelCAS} or on this interface.
-    */
-   public static final int classifyType(TypeImpl ti) {
-     switch (ti.getCode()) {
-     case TypeSystemConstants.intListTypeCode: return TYPE_CLASS_INTLIST;
-     case TypeSystemConstants.floatListTypeCode: return TYPE_CLASS_FLOATLIST;
-     case TypeSystemConstants.stringListTypeCode: return TYPE_CLASS_STRINGLIST;
-     case TypeSystemConstants.fsListTypeCode: return TYPE_CLASS_FSLIST;
-     default : return TypeSystemImpl.getTypeClass(ti);
-     }
-   }
-   
-   private static boolean isArrayOrList(TOP fs) {
-     return fs instanceof CommonPrimitiveArray ||
-            fs instanceof FSArray ||
-            fs instanceof CommonList;
-   }
- 
- }
+ /*
+  * Licensed to the Apache Software Foundation (ASF) under one
+  * or more contributor license agreements.  See the NOTICE file
+  * distributed with this work for additional information
+  * regarding copyright ownership.  The ASF licenses this file
+  * to you under the Apache License, Version 2.0 (the
+  * "License"); you may not use this file except in compliance
+  * with the License.  You may obtain a copy of the License at
+  * 
+  *   http://www.apache.org/licenses/LICENSE-2.0
+  * 
+  * Unless required by applicable law or agreed to in writing,
+  * software distributed under the License is distributed on an
+  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  * KIND, either express or implied.  See the License for the
+  * specific language governing permissions and limitations
+  * under the License.
+  */
+ 
+ package org.apache.uima.cas.impl;
+ 
+ import java.util.ArrayDeque;
+ import java.util.ArrayList;
+ import java.util.Arrays;
+ import java.util.BitSet;
+ import java.util.Collection;
+ import java.util.Collections;
+ import java.util.Comparator;
+ import java.util.Deque;
+ import java.util.HashMap;
+ import java.util.HashSet;
+ import java.util.IdentityHashMap;
+ import java.util.Iterator;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.NoSuchElementException;
+ import java.util.Set;
+ import java.util.concurrent.atomic.AtomicInteger;
+ 
+ import org.apache.uima.UimaSerializable;
+ import org.apache.uima.cas.CAS;
+ import org.apache.uima.cas.CASRuntimeException;
++import org.apache.uima.cas.CommonArrayFS;
+ import org.apache.uima.cas.FSIndex;
+ import org.apache.uima.internal.util.Misc;
+ import org.apache.uima.internal.util.XmlElementName;
+ import org.apache.uima.jcas.cas.CommonList;
+ import org.apache.uima.jcas.cas.CommonPrimitiveArray;
+ import org.apache.uima.jcas.cas.FSArray;
+ import org.apache.uima.jcas.cas.FSList;
+ import org.apache.uima.jcas.cas.NonEmptyFSList;
+ import org.apache.uima.jcas.cas.NonEmptyList;
+ import org.apache.uima.jcas.cas.Sofa;
+ import org.apache.uima.jcas.cas.TOP;
+ import org.apache.uima.jcas.tcas.Annotation;
+ import org.apache.uima.util.Logger;
+ import org.xml.sax.ContentHandler;
+ import org.xml.sax.ErrorHandler;
+ import org.xml.sax.SAXException;
+ import org.xml.sax.SAXParseException;
+ 
+ // @formatter:off
+ /**
+  * CAS serializer support for XMI and JSON formats.
+  * 
+  * There are multiple use cases.
+  *   1) normal - the consumer is independent of UIMA
+  *        - (maybe) support for delta serialization
+  *   2) service calls:  
+  *        - support deserialization with out-of-type-system set-aside, and subsequent serialization with re-merging
+  *        - guarantee of using same xmi:id's as were deserialized when serializing
+  *        - support for delta serialization
+  * 
+  * There is an outer class (one instance per "configuration" - reusable after configuration, and
+  * an inner class - one per serialize call.
+  * 
+  * These classes are the common parts of serialization between XMI and JSON, mainly having to do with
+  *   1) enqueueing the FS to be serialized
+  *   2) serializing according to their types and features
+  * 
+  * 
+  * Methods marked public are not for public use but are that way to permit
+  * other users of this class in other packages to "see" these methods.
+  * 
+  *   XmiCasSerializer                              JsonCasSerializer
+  *       Instance                                      Instance
+  *      css ref -------&gt;   CasSerializerSupport   &lt;------ css ref
+  * 
+  * 
+  *   XmiDocSerializer                                JsonDocSerializer            
+  *       Instance                                       Instance 
+  * (1 per serialize action)                         (1 per serialize action)
+  *       cds ref -------&gt;     CasDocSerializer  &lt;-------   cds ref
+  *                           csss points back
+  * 
+  * 
+  * Construction:
+  *   new Xmi/JsonCasSerializer 
+  *      initializes css with new CasSerializerSupport
+  * 
+  *   serialize method creates a new Xmi/JsonDocSerializer inner class
+  *      constructor creates a new CasDocSerializer,    
+  * 
+  * Use Cases and Algorithms
+  *   Support set-aside for out-of-type-system FS on deserialization (record in shareData)
+  *     implies can't determine sharing status of things ref'd by features; need to depend on 
+  *       multiple-refs-allowed flag.
+  *       If multiple-refs found during serialization for feat marked non-shared, unshare these (make
+  *         2 serializations, one or more inplace, for example.  
+  *         Perhaps not considered an error.
+  *     implies need (for non-delta case) to send all FSs that were deserialized - some may be ref'd by oots elements
+  *       ** Could ** not do this if no oots elements, but could break some assumptions
+  *       and this only would apply to non-delta - not worth doing
+  * 
+  * Enqueuing:
+  *   There are two styles
+  *     - enqueueCommon: does **NOT** recursively enqueue features
+  *     - enqueue: calls enqueueCommon and then recursively enqueues features
+  * 
+  * enqueueCommon is called (bypassing enqueue) to defer scanning references
+  * 
+  *   Order and target of enqueuing:
+  *     - things in the index 
+  *       -- put on "queue"
+  *       -- first, the sofa's (which are the only things indexed in base view)
+  *       -- next, for each view, for each item, the FSs, but **NOT** following any feature/array refs
+  *     - things not in the index, but deserialized (incoming)
+  *       -- put on previouslySerializedFSs, no recursive descent for features  
+  *     - (delta) enqueueNonsharedMultivaluedFS (lists and arrays)
+  *       -- put on modifiedEmbeddedValueFSs, no recursive descent for features
+  * 
+  *     - recursive descent for        
+  *       -- things in previouslySerializedFSs,
+  *       -- things in modifiedEmbeddedValueFSs
+  *       -- things in the index
+  *
+  * The recursive descent is recursive, and an arbitrary long chain can get stack overflow error.
+  * TODO Probably should fix this someday. See https://issues.apache.org/jira/browse/UIMA-106 *
+  */
+ // @formatter:on
+ public class CasSerializerSupport {
+ 
+   // Special "type class" codes for list types. The LowLevelCAS.ll_getTypeClass() method
+   // returns type classes for primitives and arrays, but not lists (which are just ordinary FS types
+   // as far as the CAS is concerned). The serialization treats lists specially, however, and
+   // so needs its own type codes for these.
+   public static final int TYPE_CLASS_INTLIST = 101;
+ 
+   public static final int TYPE_CLASS_FLOATLIST = 102;
+ 
+   public static final int TYPE_CLASS_STRINGLIST = 103;
+ 
+   public static final int TYPE_CLASS_FSLIST = 104;
+ 
+   public static int PP_LINE_LENGTH = 120;
+   public static int PP_ELEMENTS = 30; // number of elements to do before nl
+ 
+   public static AtomicInteger errorCount = new AtomicInteger(0);
+ 
+   /**
+    * Comparator that just uses short name Public for access by JsonCasSerializer where it's needed
+    * for a binary search https://issues.apache.org/jira/browse/UIMA-5171
+    */
+   public final static Comparator<TypeImpl> COMPARATOR_SHORT_TYPENAME = new Comparator<TypeImpl>() {
+     @Override
+     public int compare(TypeImpl object1, TypeImpl object2) {
+       return object1.getShortName().compareTo(object2.getShortName());
+     }
+   };
+ 
+   TypeSystemImpl filterTypeSystem;
+ 
+   ErrorHandler errorHandler = null;
+ 
+   // UIMA logger, to which we may write warnings
+   Logger logger;
+ 
+   public boolean isFormattedOutput; // true for pretty printing
+ 
+   /***********************************************
+    * C O N S T R U C T O R S *
+    ***********************************************/
+ 
+   public CasSerializerSupport() {
+   }
+ 
+   /********************************************************
+    * Routines to set/reset configuration *
+    ********************************************************/
+   /**
+    * set or reset the pretty print flag (default is false)
+    * 
+    * @param pp
+    *          true to do pretty printing of output
+    * @return the original instance, possibly updated
+    */
+   public CasSerializerSupport setPrettyPrint(boolean pp) {
+     this.isFormattedOutput = pp;
+     return this;
+   }
+ 
+   /**
+    * pass in a type system to use for filtering what gets serialized; only those types and features
+    * which are defined this type system are included.
+    * 
+    * @param ts
+    *          the filter
+    * @return the original instance, possibly updated
+    */
+   public CasSerializerSupport setFilterTypes(TypeSystemImpl ts) {
+     this.filterTypeSystem = ts;
+     return this;
+   }
+ 
+   // for testing
+   public TypeSystemImpl getFilterTypes() {
+     return filterTypeSystem;
+   }
+ 
+   // not done here, done on serialize call, different (typically) for each call
+   // /**
+   // * set the Marker to specify delta cas serialization
+   // * @param m - the marker
+   // * @return the original instance, possibly updated
+   // */
+   // public CasSerializerSupport setDeltaCas(Marker m, XmiSerializationSharedData sharedData) {
+   // this.marker = (MarkerImpl) m;
+   // this.sharedData = sharedData;
+   // return this;
+   // }
+ 
+   /**
+    * set an error handler to receive information about errors
+    * 
+    * @param eh
+    *          the error handler
+    * @return the original instance, possibly updated
+    */
+   public CasSerializerSupport setErrorHandler(ErrorHandler eh) {
+     this.errorHandler = eh;
+     return this;
+   }
+ 
+   // **********************************************
+   // Methods used to serialize items
+   // Separate implementations for JSON and Xmi
+   // **********************************************/
+   public static abstract class CasSerializerSupportSerialize {
+ 
+     abstract protected void initializeNamespaces();
+ 
+     abstract protected void checkForNameCollision(XmlElementName xmlElementName);
+ 
+     abstract protected void addNameSpace(XmlElementName xmlElementName);
+ 
+     abstract protected XmlElementName uimaTypeName2XmiElementName(String typeName);
+ 
+     abstract protected void writeFeatureStructures(int elementCount) throws Exception;
+ 
+     abstract protected void writeViews() throws Exception;
+ 
+     abstract protected void writeView(Sofa sofa, Collection<TOP> members) throws Exception;
+ 
+     abstract protected void writeView(Sofa sofa, Collection<TOP> added, Collection<TOP> deleted,
+             Collection<TOP> reindexed) throws Exception;
+ 
+     /**
+      * 
+      * @param fs
+      *          -
+      * @param typeCode
+      *          -
+      * @return true if writing out referenced items (JSON)
+      * @throws Exception
+      *           -
+      */
+     abstract protected boolean writeFsStart(TOP fs, int typeCode) throws Exception;
+ 
+     abstract protected void writeFs(TOP fs, int typeCode) throws Exception;
+ 
+     abstract protected void writeListsAsIndividualFSs(TOP fs, int typeCode) throws Exception;
+ 
+     abstract protected void writeArrays(TOP fsarray, int typeCode, int typeClass) throws Exception;
+ 
+     abstract protected void writeEndOfIndividualFs() throws Exception;
+ 
+     abstract protected void writeEndOfSerialization() throws Exception;
+ 
+     abstract protected void writeFsRef(TOP fs) throws Exception;
+   }
+ 
+   /**
+    * Use an inner class to hold the data for serializing a CAS. Each call to serialize() creates its
+    * own instance.
+    * 
+    * package private to allow a test case to access not static to share the logger and the
+    * initializing values (could be changed)
+    */
+   public class CasDocSerializer {
+ 
+     // The CAS we're serializing.
+     public final CASImpl cas;
+ 
+     public final TypeSystemImpl tsi;
+ 
+     // @formatter:off
+     /**
+      * set of FSs that have been visited and enqueued to be serialized
+      *   - exception: arrays and lists which are "inline" are put into this set,
+      *     but are not enqueued to be serialized.
+      * 
+      * - FSs added to this, during "enqueue" phase, prior to encoding
+      * 
+      * uses:    
+      *   - for Arrays and Lists, used to detect multi-refs
+      *   - for Lists, used to detect loops
+      *   - during enqueuing phase, prevent multiple enqueuings
+      *   - during encoding phase, to prevent multiple encodings 
+      * 
+      * Public for use by JsonCasSerializer
+      */
+     // @formatter:on
+     public final Set<TOP> visited_not_yet_written = Collections
+             .newSetFromMap(new IdentityHashMap<>());
+ 
+     // @formatter:off
+     /**
+      * Set of array or list FSs referenced from features marked as multipleReferencesAllowed,
+      *   - which have previously been serialized "inline"
+      *   - which now need to be serialized as separate items
+      * 
+      * Set during enqueue scanning, to handle the case where the
+      * "visited_not_yet_written" set may have already recorded that this FS is 
+      * already processed for enqueueing, but it is an array or list item which was being
+      * put "in-line" and no element is being written.
+      * 
+      * It has array or list elements where the item needs to be enqueued onto the "queue" list.
+      * 
+      * Use: limit the put-onto-queue list to one time
+      */
+     // @formatter:on
+     private final Set<TOP> enqueued_multiRef_arrays_or_lists = Collections
+             .newSetFromMap(new IdentityHashMap<>());
+ 
+     // @formatter:off
+     /**
+      * Set of FSs that have multiple references
+      * Has an entry for each FS (not just array or list FSs) which is (from some point on) being serialized as a multi-ref,
+      *   that is, is **not** being serialized (any more) using the special notation for arrays and lists
+      *   or, for JSON, **not** being serialized using the embedded notation
+      * This is for JSON which is computing the multi-refs, not depending on the setting in a feature.
+      * This is also for xmi, to enable adding to "queue" (once) for each FSs of this kind.
+      * 
+      * Used: 
+      *   - limit the number of times this is put onto the queue to 1.
+      *   - skip encoding of items on "queue" if not in this Set (maybe not needed? 8/2017 mis)
+      *   - serialize if not in indexed set, dynamic ref == true, and in this set (otherwise serialize only from ref)
+      */
+     // @formatter:on
+     public final Set<TOP> multiRefFSs;
+ 
+     /**
+      * Set to true for JSON configuration of using dynamic multi-ref detection for arrays and lists
+      */
+     public final boolean isDynamicMultiRef;
+ 
+     // *********************************************
+     // FSs that need to be serialized because they're
+     // a) in an index
+     // b) in the set of previously serialized FS which have ids (that is, they weren't previously
+     // embedded)
+     // c) (delta only) have a feature which has an embedded value some part of which changed (no id)
+     //
+     // d) the set of FSs that are reachable via FSrefs from the above 3 sets
+     public List<TOP> previouslySerializedFSs = null;
+ 
+     public List<TOP> modifiedEmbeddedValueFSs = null;
+ 
+     /**
+      * Array of Lists of all FS that are indexed in some view (other than sofas). Array indexed by
+      * view.
+      */
+     public final List<TOP>[] indexedFSs;
+ 
+     /**
+      * FSs not in an index, but only being serialized becaused they're referenced. Exception: the
+      * sofa's are here.
+      */
+     private final Deque<TOP> queue;
+ 
+     // utilities for dealing with CAS list types
+     // public final ListUtils listUtils;
+ 
+     public XmlElementName[] typeCode2namespaceNames; // array, indexed by type code, giving XMI
+                                                      // names for each type
+ 
+     private final BitSet typeUsed; // identifies types being serialized, a subset of all possible
+                                    // types
+ 
+     public boolean needNameSpaces = true; // may be false; currently for JSON only
+ 
+     /**
+      * map from a namespace expanded form to the namespace prefix, to identify potential collisions
+      * when generating a namespace string
+      */
+     public final Map<String, String> nsUriToPrefixMap = new HashMap<>();
+ 
+     /**
+      * the set of all namespace prefixes used, to disallow some if they are in use already in
+      * set-aside data (xmi serialization) being merged back in
+      */
+     public final Set<String> nsPrefixesUsed = new HashSet<>();
+ 
+     /**
+      * Used to tell if a FS was created before or after mark.
+      */
+     public final MarkerImpl marker;
+ 
+     /**
+      * for Delta serialization, holds the info gathered from deserialization needed for delta
+      * serialization and for handling out-of-type-system data for both plain and delta serialization
+      */
+     public final XmiSerializationSharedData sharedData;
+ 
+     /**
+      * Whether the serializer needs to serialize only the deltas, that is, new FSs created after
+      * mark represented by Marker object and preexisting FSs and Views that have been modified. Set
+      * to true if Marker object is not null and CASImpl object of this serialize matches the CASImpl
+      * in Marker object.
+      */
+     public final boolean isDelta;
+ 
+     /**
+      * Whether the serializer needs to check for filtered-out types/features. Set to true if type
+      * system of CAS does not match type system that was passed to constructor of serializer.
+      */
+     public final boolean isFiltering;
+ 
+     private TypeImpl[] sortedUsedTypes;
+ 
+     private final ErrorHandler errorHandler2;
+ 
+     public TypeSystemImpl filterTypeSystem_inner;
+ 
+     // map to reduce string usage by reusing equal string representations; lives just for one
+     // serialize call
+     private final Map<String, String> uniqueStrings = new HashMap<>();
+ 
+     public final boolean isFormattedOutput_inner;
+ 
+     private final CasSerializerSupportSerialize csss;
+ 
+     /***********************************************
+      * C O N S T R U C T O R S *
+      ***********************************************/
+     /**
+      * 
+      * @param ch
+      *          -
+      * @param cas
+      *          -
+      * @param sharedData
+      *          -
+      * @param marker
+      *          -
+      * @param csss
+      *          -
+      */
+     public CasDocSerializer(ContentHandler ch, CASImpl cas, XmiSerializationSharedData sharedData,
+             MarkerImpl marker, CasSerializerSupportSerialize csss) {
+       this(ch, cas, sharedData, marker, csss, false);
+     }
+ 
+     public CasDocSerializer(ContentHandler ch, CASImpl cas, XmiSerializationSharedData sharedData,
+             MarkerImpl marker, CasSerializerSupportSerialize csss, boolean trackMultiRefs) {
+       this.cas = cas;
+       this.csss = csss;
+       this.sharedData = sharedData;
+ 
+       // copy outer class values into final inner ones, to keep the outer thread-safe
+       filterTypeSystem_inner = CasSerializerSupport.this.filterTypeSystem;
+       isFormattedOutput_inner = CasSerializerSupport.this.isFormattedOutput;
+       this.marker = marker;
+       errorHandler2 = CasSerializerSupport.this.errorHandler;
+ 
+       tsi = cas.getTypeSystemImpl();
+       queue = new ArrayDeque<>();
+       indexedFSs = (List<TOP>[]) new List<?>[cas.getViewCount()]; // number of views
+       // listUtils = new ListUtils(cas, logger, errorHandler);
+       typeUsed = new BitSet();
+ 
+       isFiltering = filterTypeSystem_inner != null && filterTypeSystem_inner != tsi;
+       if (marker != null && !marker.isValid()) {
+         throw new CASRuntimeException(CASRuntimeException.INVALID_MARKER, "Invalid Marker.");
+       }
+       isDelta = marker != null;
+       multiRefFSs = Collections.newSetFromMap(new IdentityHashMap<>());
+       isDynamicMultiRef = trackMultiRefs;
+     }
+ 
+     // TODO: internationalize
+     private void reportMultiRefWarning(FeatureImpl fi) throws SAXException {
+       String message = String.format(
+               "Feature %s is marked multipleReferencesAllowed=false, but it has"
+                       + " multiple references.  These will be serialized in duplicate.",
+               fi.getName());
+       Misc.decreasingWithTrace(errorCount, message, logger);
+       if (this.errorHandler2 != null) {
+         this.errorHandler2.warning(new SAXParseException(message, null));
+       }
+     }
+ 
+     /**
+      * Starts serialization
+      * 
+      * @throws Exception
+      *           -
+      */
+     public void serialize() throws Exception {
+       typeCode2namespaceNames = new XmlElementName[tsi.getLargestTypeCode() + 1];
+ 
+       // reset caches in case some things modified between calls to serialize for same instance of
+       // serializer
+       sortedUsedTypes = null;
+       typeUsed.clear();
+       Arrays.fill(indexedFSs, null);
+       queue.clear();
+ 
+       csss.initializeNamespaces();
+ 
+       int iElementCount = 1; // start at 1 to account for special NULL object
+ 
+       enqueueIndexed(); // done first - to insure this has priority
+ 
+       enqueueIncoming(); // make sure we enqueue every FS that was deserialized into this CAS
+                          // needed to support Out Of Typesystem data
+       enqueueNonsharedMultivaluedFS(); // needed for delta serialization of modified embedded
+                                        // lists/arrays
+       enqueueFeaturesOfIndexed(); // and incoming and modified embedded refs
+ 
+       iElementCount += (previouslySerializedFSs == null) ? 0 : previouslySerializedFSs.size();
+       iElementCount += (modifiedEmbeddedValueFSs == null) ? 0 : modifiedEmbeddedValueFSs.size();
+       for (List<TOP> fss : indexedFSs) {
+         iElementCount += (fss == null) ? 0 : fss.size();
+       }
+       iElementCount += queue.size();
+ 
+       FSIndex<TOP> sofaIndex = cas.getBaseCAS().indexRepository.getIndex(CAS.SOFA_INDEX_NAME);
+       if (!isDelta) {
+         iElementCount += (sofaIndex.size()); // one View element per sofa
+         iElementCount += getElementCountForSharedData();
+       } else {
+         int numViews = cas.getViewCount();
+         for (int sofaNum = 1; sofaNum <= numViews; sofaNum++) {
+           FSIndexRepositoryImpl loopIR = (FSIndexRepositoryImpl) cas.getBaseCAS()
+                   .getSofaIndexRepository(sofaNum);
+           if (loopIR != null && loopIR.isModified()) {
+             iElementCount++;
+           }
+         }
+       }
+ 
+       csss.writeFeatureStructures(iElementCount);
+ 
+       csss.writeViews();
+ 
+       csss.writeEndOfSerialization();
+     }
+ 
+     /**
+      * 
+      * @param sofaNum
+      *          - starts at 1
+      * @return the sofa FS, or null
+      */
+     public Sofa getSofa(int sofaNum) {
+       if (sofaNum != 1 || cas.isInitialSofaCreated()) { // skip if initial view && no Sofa yet
+                                                         // all non-initial-views must have a sofa
+         return ((CASImpl) cas.getView(sofaNum)).getSofaRef();
+       }
+       return null;
+     }
+ 
+     public void writeViewsCommons() throws Exception {
+       // Get indexes for each SofaFS in the CAS
+       int numViews = cas.getViewCount();
+ 
+       for (int sofaNum = 1; sofaNum <= numViews; sofaNum++) {
+         FSIndexRepositoryImpl loopIR = (FSIndexRepositoryImpl) cas.getBaseCAS()
+                 .getSofaIndexRepository(sofaNum);
+         final Sofa sofa = getSofa(sofaNum);
+         if (loopIR != null) {
+           if (!isDelta) {
+             Collection<TOP> fss = loopIR.getIndexedFSs();
+             csss.writeView(sofa, fss);
+           } else { // is Delta Cas
+             if (sofaNum != 1 && this.marker.isNew(sofa)) {
+               // for views created after mark (initial view never is - it is always created with the
+               // CAS)
+               // write out the view as new
+               Collection<TOP> fss = loopIR.getIndexedFSs();
+               csss.writeView(sofa, fss);
+             } else if (loopIR.isModified()) {
+               csss.writeView(sofa, loopIR.getAddedFSs(), loopIR.getDeletedFSs(),
+                       loopIR.getReindexedFSs());
+             }
+           }
+         }
+       }
+     }
+ 
+     // sort is by shortname of type
+     public TypeImpl[] getSortedUsedTypes() {
+       if (null == sortedUsedTypes) {
+         sortedUsedTypes = new TypeImpl[typeUsed.cardinality()];
+         int i = 0;
+         for (TypeImpl ti : getUsedTypesIterable()) {
+           sortedUsedTypes[i++] = ti;
+         }
+         Arrays.sort(sortedUsedTypes, COMPARATOR_SHORT_TYPENAME);
+       }
+       return sortedUsedTypes;
+     }
+ 
+     private Iterable<TypeImpl> getUsedTypesIterable() {
+       return new Iterable<TypeImpl>() {
+         @Override
+         public Iterator<TypeImpl> iterator() {
+           return new Iterator<TypeImpl>() {
+             private int i = 0;
+ 
+             @Override
+             public boolean hasNext() {
+               return typeUsed.nextSetBit(i) >= 0;
+             }
+ 
+             @Override
+             public TypeImpl next() {
+               final int next_i = typeUsed.nextSetBit(i);
+               if (next_i < 0) {
+                 throw new NoSuchElementException();
+               }
+               i = next_i + 1;
+               return (TypeImpl) tsi.ll_getTypeForCode(next_i);
+             }
+ 
+             @Override
+             public void remove() {
+               throw new UnsupportedOperationException();
+             }
+           };
+         }
+       };
+     }
+ 
+     // private StringPair[] getSortedPrefixUri() {
+     // StringPair[] r = new StringPair[nsUriToPrefixMap.size()];
+     // int i = 0;
+     // for (Map.Entry<String,String> e : nsUriToPrefixMap.entrySet()) {
+     // r[i++] = new StringPair(e.getValue(), e.getKey());
+     // }
+     // Arrays.sort(r);
+     // return r;
+     // }
+ 
+     /**
+      * Enqueues all FS that are stored in the sharedData's id map. This map is populated during the
+      * previous deserialization. This method is used to make sure that all incoming FS are echoed in
+      * the next serialization. It is required if there are out-of-type FSs that are being merged
+      * back into the serialized form; those might reference some of these.
+      */
+     private void enqueueIncoming() {
 -      if (sharedData == null)
++      if (sharedData == null) {
+         return;
++      }
+       TOP[] fss = this.sharedData.getAndSortByIdAllFSsInIdMap();
+       previouslySerializedFSs = new ArrayList<>();
+ 
+       for (TOP fs : fss) {
+         // skip enque for null and for unmodified fss if delta
+         if (fs == null || (isDelta && !marker.isModified(fs))) {
+           continue;
+         }
+ 
+         // is the first instance, but skip if delta and not modified or above the line or filtered
+         // skip enqueuing incoming FS if already enqueued
+         int typeCode = enqueueCommon(fs);
+         if (typeCode == -1) {
+           continue;
+         }
+         previouslySerializedFSs.add(fs);
+       }
+     }
+ 
+     /**
+      * add the indexed FSs onto the indexedFSs by view. add the SofaFSs onto the by-ref queue
+      */
+     private void enqueueIndexed() {
+       FSIndexRepositoryImpl ir = (FSIndexRepositoryImpl) cas.getBaseCAS().getBaseIndexRepository();
+       Collection<TOP> fss = ir.getIndexedFSs(); // only sofas
+       try {
+         for (TOP fs : fss) {
+           enqueueFsAndMaybeFeatures(fs); // put Sofa on by-ref queue
+         }
+       } catch (SAXException e) {
+         throw new RuntimeException("Internal error - should never happen", e);
+       }
+ 
+       // FSIndex sofaIndex = cas.getBaseCAS().indexRepository.getIndex(CAS.SOFA_INDEX_NAME);
+       // FSIterator iterator = sofaIndex.iterator();
+       // // Get indexes for each SofaFS in the CAS
+       // while (iterator.isValid())
+       int numViews = cas.getViewCount();
+       for (int sofaNum = 1; sofaNum <= numViews; sofaNum++) {
+         // SofaFS sofa = (SofaFS) iterator.get();
+         // int sofaNum = sofa.getSofaRef();
+         // iterator.moveToNext();
+         FSIndexRepositoryImpl loopIR = (FSIndexRepositoryImpl) cas.getBaseCAS()
+                 .getSofaIndexRepository(sofaNum);
+         if (loopIR != null) {
+           Collection<TOP> items = loopIR.getIndexedFSs();
+           for (TOP item : items) {
+             enqueueIndexedFs_only_not_features(sofaNum, item);
+           }
+         }
+       }
+     }
+ 
+     /**
+      * When serializing Delta CAS, enqueue encompassing FS of nonshared multivalued FS that have
+      * been modified. The embedded nonshared-multivalued item could be a list or an array
+      */
+     private void enqueueNonsharedMultivaluedFS() {
 -      if (sharedData == null || !isDelta)
++      if (sharedData == null || !isDelta) {
+         return;
++      }
+       TOP[] fss = sharedData.getNonsharedMulitValuedFSs();
+       modifiedEmbeddedValueFSs = new ArrayList<>();
+ 
+       for (TOP fs : fss) {
+         if (marker.isModified(fs)) {
+           TOP encompassingFs = sharedData.getEncompassingFS(fs);
+           assert null != encompassingFs;
+           if (-1 != enqueueCommonWithoutDeltaAndFilteringCheck(encompassingFs)) { // only to set
+                                                                                   // type used info
+                                                                                   // and check if
+                                                                                   // already
+                                                                                   // enqueued
+             modifiedEmbeddedValueFSs.add(encompassingFs);
+           }
+         }
+       }
+     }
+ 
+     /**
+      * Enqueue everything reachable from features of indexed FSs.
+      */
+     private void enqueueFeaturesOfIndexed() throws SAXException {
+       if (null != previouslySerializedFSs) {
+         enqueueFeaturesOfFSs(previouslySerializedFSs);
+       }
+       if (null != modifiedEmbeddedValueFSs) {
+         enqueueFeaturesOfFSs(modifiedEmbeddedValueFSs);
+       }
+       for (List<TOP> fss : indexedFSs) {
+         if (fss != null) {
+           enqueueFeaturesOfFSs(fss);
+         }
+       }
+     }
+ 
+     private void enqueueFeaturesOfFSs(final List<TOP> fss) throws SAXException {
+       for (TOP fs : fss) {
+         enqueueFeatures(fs);
+       }
+     }
+ 
+     int enqueueCommon(TOP fs) {
+       return enqueueCommon(fs, true);
+     }
+ 
+     int enqueueCommonWithoutDeltaAndFilteringCheck(TOP fs) {
+       return enqueueCommon(fs, false);
+     }
+ 
+     /**
+      * @param fs
+      *          -
+      * @param doDeltaAndFilteringCheck
+      *          -
+      * @return true to have enqueue put onto "queue" and enqueue features
+      */
+     private int enqueueCommon(TOP fs, boolean doDeltaAndFilteringCheck) {
+       if (doDeltaAndFilteringCheck) {
+         if (isDelta) {
+           if (!marker.isNew(fs) && !marker.isModified(fs)) {
+             return -1;
+           }
+         }
+ 
+         if (isFiltering) {
+           String typeName = fs._getTypeImpl().getName();
+           if (filterTypeSystem_inner.getType(typeName) == null) {
+             return -1; // this type is not in the target type system
+           }
+         }
+       }
+ 
+       // We set visited only if we're going to enqueue this.
+       // (In other words, please don't move this up in this method)
+       // This handles the use case:
+       // delta cas; element is not modified, but at some later point, we determine
+       // an embedded feature value (array or list) is modified, which requires we serialize out this
+       // fs as if it was modified.
+ 
+       if (!visited_not_yet_written.add(fs)) {
+         // was already visited; means this FS has multiple references, either from FS feature(s) or
+         // indexes or both
+         // https://issues.apache.org/jira/browse/UIMA-5532
+         if (isDynamicMultiRef || isArrayOrList(fs)) {
+           boolean wasAdded = multiRefFSs.add(fs);
+           if (wasAdded) {
+             queue.add(fs); // if was in indexed set before, isn't in the queue set, but needs to be
+           }
+         }
+         return -1;
+       }
+ 
+       final int typeCode = fs._getTypeCode();
+       boolean alreadySet = typeUsed.get(typeCode);
+       if (!alreadySet) {
+         typeUsed.set(typeCode);
+ 
+         String typeName = fs._getTypeImpl().getName();
+         XmlElementName newXel = csss.uimaTypeName2XmiElementName(typeName);
+ 
+         if (!needNameSpaces) { // means if name spaces are not not always needed, then we have to
+                                // check for collision
+           csss.checkForNameCollision(newXel); // executed for JSON code
+         }
+         typeCode2namespaceNames[typeCode] = newXel;
+       }
+       return typeCode;
+     }
+ 
+     /*
+      * Enqueues an indexed FS. Does NOT enqueue features at this point. Doesn't enqueue non-modified
+      * FS when delta
+      */
+     void enqueueIndexedFs_only_not_features(int viewNumber, TOP fs) {
+       if (enqueueCommon(fs) != -1) {
+         List<TOP> fss = indexedFSs[viewNumber - 1];
+         if (null == fss) {
+           indexedFSs[viewNumber - 1] = fss = new ArrayList<>();
+         }
+         fss.add(fs);
+       }
+     }
+ 
+     /**
+      * Enqueue an FS, and everything reachable from it.
+      * 
+      * This call is recursive with enqueueFeatures, \ and an arbitrary long chain can get stack
+      * overflow error. Probably should fix this someday. See
+      * https://issues.apache.org/jira/browse/UIMA-106
+      * 
+      * @param addr
+      *          The FS address.
+      * @throws SAXException
+      */
+     private void enqueueFsAndMaybeFeatures(TOP fs) throws SAXException {
+       if (null == fs) {
+         return;
+       }
+ 
+       int typeCode = enqueueCommon(fs);
+       if (typeCode == -1) {
+         return;
+       }
+       queue.add(fs);
+       enqueueFeatures(fs);
+       // Also, for FSArrays enqueue the elements -- not here, done by enqueueFeatures, 1 line above
+       // if (fs instanceof FSArray) { //TODO: won't get parameterized arrays? no, there are no
+       // parameterized arrays in the impl
+       // enqueueFSArrayElements((FSArray) fs);
+       // }
+     }
+ 
+     // @formatter:off
+     /**
+      * For lists, 
+      *   see if this is a plain list
+      *     - no loops
+      *     - no other refs to list elements from outside the list
+      *     -- if so, return false;
+      * 
+      *   add all the elements of the list to visited_not_yet_written,
+      *     noting if they've already been added 
+      *     -- this indicates either a loop or another ref from outside,
+      *     -- in either case, return true - t
+      * @param curNode -
+      * @param featCode -
+      * @return false if no list element is multiply-referenced,
+      *         true if there is a loop or another ref from outside the list, for 
+      *         one or more list element nodes
+      */
+     // @formatter:on
+     private boolean isListElementsMultiplyReferenced(TOP listNode) {
+       boolean foundCycle = false;
+       CommonList curNode = (CommonList) listNode;
+       while (curNode instanceof NonEmptyList) { // stop on end or 0
+         if (!visited_not_yet_written.add((TOP) curNode)) {
+           foundCycle = true;
+           break;
+         }
+         curNode = curNode.getCommonTail();
+       }
+       return foundCycle;
+     }
+ 
+     // @formatter:off
+     /**
+      * ordinary FSs referenced as features are not checked by this routine;
+      * this is only called for FSlists of various kinds, and fs arrays of various kinds
+      * 
+      * Not all featValues should be enqueued;
+      *   list or array features which are marked **NOT** multiple-refs-allowed 
+      *     are serialized in-line
+      *   for JSON, when using dynamicMultiRef (the default), list / array FSs 
+      *     are serialized by ref (not in-line) if there are multiple refs to them
+      * 
+      *   for XMI and JSON, any FS ref marked as multiple-refs-allowed forces
+      *     the item onto the ref "queue".
+      * 
+      * (not handled here: ordinary FSs are serialized in-line in JSON with isDynamicMultiRef)
+      * 
+      * @param fi
+      *          - the feature, to look up the multiRefAllowed flag
+      * @param featVal
+      *          - the List or array element
+      * @param alreadyVisited
+      *          true if visited_not_yet_written contains the featVal
+      * @param isListNode
+      *          -
+      * @param isListFeat
+      *          -
+      * @return false if should skip enqueue because this array or list is being serialized inline
+      * @throws SAXException
+      *           -
+      */
+     // @formatter:on
+     private boolean isMultiRef_enqueue(FeatureImpl fi, TOP featVal, boolean alreadyVisited,
+             boolean isListNode, boolean isListFeat) throws SAXException {
+       if (!isDynamicMultiRef) {
+ 
+         // not JSON dynamic embedding, or dynamic embedding is turned off - compute static embedding
 -        // just for lists and arrays
++        // just for lists and arrays.
+         boolean multiRefAllowed = fi.isMultipleReferencesAllowed() || isListNode;
+         if (!multiRefAllowed) {
++          // Arrays cannot be resized, so it is ok if an empty array has multiple references to it
++          // even if multiRefAllowed is false because it is effectively immutable.
++          if ((featVal instanceof CommonArrayFS && ((CommonArrayFS<?>) featVal).isEmpty())) {
++            return false; // immutable empty array, no need to enqueue
++          }
++
+           // two cases: a list or non-list
+           // if a list, check/mark all the nodes in the list for any being multiply referenced
 -          if ((isListFeat && isListElementsMultiplyReferenced(featVal)) ||
+           // say: multi-ref not allowed, but discovered a multi-ref, will be serialized as separate
+           // item
 -                  (!isListFeat && alreadyVisited)) {
++          if ((isListFeat && isListElementsMultiplyReferenced(featVal))
++                  || (!isListFeat && alreadyVisited)) {
+             reportMultiRefWarning(fi);
+           } else {
+             // multi-ref not allowed, and this item is not multiply referenced (so far)
+             // expecting to serialize as embedded (if array or list, or JSON)
+             if (!isListFeat) { // already added visited for list nodes
+               visited_not_yet_written.add(featVal);
+             }
+           }
+           return false; // because static, multi-ref not allowed, no need to enqueue
+         } else { // is multiRefAllowed or in list node
+           return true; // static, multi-ref allowed or in list node, enqueue
+         }
+       }
+ 
+       // doing JSON dynamic determination of multi-refs
+       if (alreadyVisited) {
+         return !multiRefFSs.contains(featVal); // enqueue in the "queue" section, first time this
+                                                // happens
+       }
+       return true; // enqueue this item. May or may not be eventually written embedded
+                    // but we enqueue to track multi-use
+     }
+ 
+     /**
+      * Enqueue all FSs reachable from features of the given FS.
+      * 
+      * @param addr
+      *          address of an FS
+      * @param typeCode
+      *          type of the FS
+      * @param insideListNode
+      *          true iff the enclosing FS (addr) is a list type
+      */
+     private void enqueueFeatures(TOP fs) throws SAXException {
+ 
+       /**
+        * Handle FSArrays
+        */
+       if (fs instanceof FSArray) {
+ 
+         TOP[] theArray = ((FSArray) fs)._getTheArray();
+ 
+         for (TOP elem : theArray) {
+           if (isFiltering
+                   && (null == filterTypeSystem_inner.getType(elem._getTypeImpl().getName()))) {
+             continue; // skip because not in filter type system
+           }
+           if (elem != null) {
+             enqueueFsAndMaybeFeatures(elem);
+           }
+         }
+         return;
+       }
+ 
+       boolean insideListNode = fs instanceof CommonList;
+ 
+       if (fs instanceof UimaSerializable) {
+         ((UimaSerializable) fs)._save_to_cas_data();
+       }
+       for (FeatureImpl fi : fs._getTypeImpl().getFeatureImpls()) {
+         if (isFiltering && filterTypeSystem_inner.getFeatureByFullName(fi.getName()) == null) {
+           // skip features that aren't in the target type system
+           continue;
+         }
+         // final int featAddr = addr + cas.getFeatureOffset(feat);
+         // final int featVal = cas.getHeapValue(featAddr);
+         // if (featVal == CASImpl.NULL) { // null feature values do not refer to any other FS
+         // continue;
+         // }
+ 
+         // enqueue behavior depends on range type of feature
+         final int fsClass = fi.rangeTypeClass;
+         switch (fsClass) {
+           case LowLevelCAS.TYPE_CLASS_FS: {
+             enqueueFsAndMaybeFeatures(fs.getFeatureValue(fi));
+             break;
+           }
+           case LowLevelCAS.TYPE_CLASS_INTARRAY:
+           case LowLevelCAS.TYPE_CLASS_FLOATARRAY:
+           case LowLevelCAS.TYPE_CLASS_STRINGARRAY:
+           case LowLevelCAS.TYPE_CLASS_BOOLEANARRAY:
+           case LowLevelCAS.TYPE_CLASS_BYTEARRAY:
+           case LowLevelCAS.TYPE_CLASS_SHORTARRAY:
+           case LowLevelCAS.TYPE_CLASS_LONGARRAY:
+           case LowLevelCAS.TYPE_CLASS_DOUBLEARRAY:
+           case LowLevelCAS.TYPE_CLASS_FSARRAY: {
+             TOP array = fs.getFeatureValue(fi); // can be null
+             if (null == array) {
+               continue;
+             }
+             // we enqueue arrays if:
+             // when statically using multipleReferencesAllowed flag:
+             // when that says it's multiply referenced;
+             // otherwise, we skip enqueueing it because it will
+             // be picked up when serializing the feature
+             // when dynamically computing multiple-refs: we enqueue it
+             // unless already enqueued, in order to pick up any multiple refs
+             final boolean alreadyVisited = visited_not_yet_written.contains(array);
+             if (isMultiRef_enqueue(fi, array, alreadyVisited, false, false)) {
+               if (enqueued_multiRef_arrays_or_lists.add(array)) { // only do this once per item
+                 enqueueFsAndMaybeFeatures(array); // will add to queue list 1st time multi-ref
+                                                   // detected
+                 // or JSON isDynamicEmbedding is on (whether or not multi-ref)
+               } else {
+                 // for isDynamicMultiRef, this is the first time we detect multiple refs
+                 // do this here, because the enqueued_multiRef_arrays_or_lists.add above makes
+                 // the 2nd and subsequent multi-ref things bypass the enqueue call.
+                 // - only needed for isDynamicMultiRef, because only that returns true for
+                 // isMultiRef_enqueue
+                 // for the "first" instance, when it isn't yet known.
+                 if (isDynamicMultiRef) {
+                   multiRefFSs.add(array);
+                 }
+               }
+               // otherwise, it is singly referenced (so far) and will be embedded
+               // (or has already been enqueued, in dynamic embedding mode), so don't enqueue
+             } else if (array instanceof FSArray && !alreadyVisited) {
+               // enqueue any FSs reachable from an FSArray
+               enqueueFSArrayElements((FSArray) array);
+             }
+             break;
+           }
+           case TYPE_CLASS_INTLIST:
+           case TYPE_CLASS_FLOATLIST:
+           case TYPE_CLASS_STRINGLIST:
+           case TYPE_CLASS_FSLIST: {
+             // we enqueue lists if:
+             // when statically using multipleReferencesAllowed flag:
+             // when that says it's multiply referenced or
+             // we're inside a list which was earlier multiply referenced
+             // otherwise, we skip enqueueing it because it will
+             // be picked up when serializing the feature
+             // when dynamically computing multiple-refs: we enqueue it
+             // unless already enqueued, in order to pick up any multiple refs
+             TOP startOfList_node = fs.getFeatureValue(fi);
+             if (null == startOfList_node) {
+               // the feature, whose type is one of the lists, has a null value, so there's nothing
+               // to enqueue
+               continue;
+             }
+             final boolean alreadyVisited = visited_not_yet_written.contains(startOfList_node);
+             if (isMultiRef_enqueue(fi, startOfList_node, alreadyVisited, insideListNode, true)) {
+               if (enqueued_multiRef_arrays_or_lists.add(startOfList_node)) { // only do this once
+                                                                              // per item
+                 enqueueFsAndMaybeFeatures(startOfList_node);
+               } else {
+                 // for isDynamicMultiRef, this is the first time we detect multiple refs
+                 // do this here, because the enqueued_multiRef_arrays_or_lists.add above makes
+                 // the 2nd and subsequent multi-ref things bypass the enqueue call.
+                 // - only needed for isDynamicMultiRef, because only that returns true for
+                 // isMultiRef_enqueue
+                 // for the "first" instance, when it isn't yet known.
+                 if (isDynamicMultiRef) {
+                   multiRefFSs.add(startOfList_node);
+                 }
+               }
+             } else if (startOfList_node instanceof FSList && !alreadyVisited) {
+               // also, we need to enqueue any FSs reachable from an FSList
+               enqueueFSListElements((FSList) startOfList_node);
+             }
+             break;
+           }
+         }
+       } // end of loop over all features
+     }
+ 
+     /**
+      * Enqueues all FS reachable from an FSArray.
+      * 
+      * @param addr
+      *          Address of an FSArray
+      */
+     private void enqueueFSArrayElements(FSArray fsArray) throws SAXException {
+       for (TOP elem : fsArray._getTheArray()) {
+         if (elem != null) {
+           enqueueFsAndMaybeFeatures(elem);
+         }
+       }
+     }
+ 
+     /**
+      * Enqueues all Head values of FSList reachable from an FSList. This does NOT include the list
+      * nodes themselves.
+      * 
+      * @param addr
+      *          Address of an FSList
+      */
+     private void enqueueFSListElements(FSList<TOP> node) throws SAXException {
+       node.walkList_saxException(
+               n -> enqueueFsAndMaybeFeatures(((NonEmptyFSList<TOP>) n).getHead()), null);
+     }
+ 
+     /*
+      * Encode the indexed FS in the queue.
+      */
+     public void encodeIndexed() throws Exception {
+       if (null != previouslySerializedFSs) {
+         encodeFSs(previouslySerializedFSs);
+       }
+       if (null != modifiedEmbeddedValueFSs) {
+         encodeFSs(modifiedEmbeddedValueFSs);
+       }
+       for (List<TOP> fss : indexedFSs) {
+         if (fss != null) {
+           encodeFSs(fss);
+         }
+       }
+     }
+ 
+     private void encodeFSs(final List<TOP> fss) throws Exception {
+       for (TOP fs : fss) {
+         encodeFS(fs);
+       }
+     }
+ 
+     /*
+      * Encode all other enqueued (non-indexed) FSs. The queue is read out in FiFo order. This
+      * insures that FsLists which are only referenced via a single FS ref, get encoded as [ x x x ]
+      * format rather than as individual FSs (because the individual items are also in the queue as
+      * items, but later). The isWritten test prevents dupl writes
+      */
+     public void encodeQueued() throws Exception {
+ 
+       for (TOP fs : queue) {
+         // for some serializers, things could be enqueued multiple times in the ref queue
+         // so check if already written, and if so, skip
+         // Case where this happens: JSON serialization with dynamically determined single ref
+         // embedding
+         // - have to enqueue to check if multiple refs, even if embedding eventually
+         if (visited_not_yet_written.contains(fs)) {
+           // skip if JSON dynamically computing whether or not to embed things and there's only one
+           // item - it will be embedded instead
+           if (isDynamicMultiRef && !multiRefFSs.contains(fs)) {
+             continue; // skip writing embeddable item (for JSON dynamic embedding) from Q; will be
+                       // written from reference
+           }
+           encodeFS(fs);
+         }
+       }
+     }
+ 
+     // public Integer[] collectAllFeatureStructures() {
+     // final int indexedSize = indexedFSs.size();
+     // final int qSize = queue.size();
+     // final int rLen = indexedSize + queue.size();
+     // Integer[] r = new Integer[rLen];
+     // int i = 0;
+     // for (; i < indexedSize; i++) {
+     // r[i] = indexedFSs.get(i);
+     // }
+     // for (int j = 0; j < qSize; j++) {
+     // r[i++] = queue.get(j);
+     // }
+     // return r;
+     // }
+ 
+     /**
+      * Called for JSon Serialization Sort a view, by type and then by begin/end asc/des for subtypes
+      * of Annotation, then by id
+      */
+     public final Comparator<TOP> sortFssByType = new Comparator<TOP>() {
+       @Override
+       public int compare(TOP fs1, TOP fs2) {
+         int c = Integer.compare(fs1._getTypeImpl().getCode(), fs2._getTypeImpl().getCode());
+         if (c != 0) {
+           return c;
+         }
+         // final boolean hasSofa = tsi.subsumes(tsi.annotBaseTypeCode, typeCode1);
+         // if (hasSofa) {
+         // c = compareFeat(o1, o2, tsi.annotSofaFeatCode);
+         // if (c != 0) {
+         // return c;
+         // }
+ 
+         if (fs1 instanceof Annotation) {
+           Annotation fs1a = (Annotation) fs1;
+           Annotation fs2a = (Annotation) fs2;
+ 
+           c = Integer.compare(fs1a.getBegin(), fs2a.getBegin());
 -          if (c != 0)
++          if (c != 0) {
+             return c;
++          }
+ 
+           c = Integer.compare(fs2a.getEnd(), fs1a.getEnd()); // reverse order
 -          if (c != 0)
++          if (c != 0) {
+             return c;
++          }
+ 
+           // fall thru to do id compare
+         }
+         // not annotation, or equal begin/end/type
+         return Integer.compare(fs1._id, fs2._id); // return in @id order
+       }
+     };
+ 
+     // @formatter:off
+     /**
+      * Encode an individual FS.
+      * 
+      * Json has 2 encodings   
+      *  For type:
+      *  "typeName" : [ { "@id" : 123,  feat : value .... },
+      *                 { "@id" : 456,  feat : value .... },
+      *                 ...
+      *               ],
+      *      ... 
+      * 
+      *  For id:
+      *  "nnnn" : {"@type" : typeName ; feat : value ...}
+      * 
+      *  For cases where the top level type is an array or list, there is
+      *  a generated feature name, "@collection" whose value is 
+      *  the list or array of values associated with that type.
+      * 
+      * @param fs
+      *          the FS to be encoded.
+      * @throws SAXException
+      *           passthru
+      */
+     // @formatter:on
+     public void encodeFS(TOP fs) throws Exception {
+       final int typeCode = fs._getTypeImpl().getCode();
+ 
+       final int typeClass = classifyType(fs._getTypeImpl());
+       // for JSON, the items reachable via indexes are written first,
+       // and isIndexId = false
+       // The items reachable via refs are written next, and
+       // isIndexId = true;
+       boolean isIndexId = csss.writeFsStart(fs, typeCode);
+ 
+       // write the id if needed for reference
+       // - if it is not ref'd via index, and JSON is computing dynamic refs, and it is multiply
+       // ref'd
+       // - skip if not JSON dynamic ref, or in index, or not multiply ref'd
+       if (!isIndexId && isDynamicMultiRef && multiRefFSs.contains(fs)) {
+         csss.writeFsRef(fs);
+       } else {
+         visited_not_yet_written.remove(fs); // mark as written
+         switch (typeClass) {
+           case LowLevelCAS.TYPE_CLASS_FS:
+             csss.writeFs(fs, typeCode);
+             break;
+ 
+           case TYPE_CLASS_INTLIST:
+           case TYPE_CLASS_FLOATLIST:
+           case TYPE_CLASS_STRINGLIST:
+           case TYPE_CLASS_FSLIST:
+             csss.writeListsAsIndividualFSs(fs, typeCode);
+             break;
+ 
+           case LowLevelCAS.TYPE_CLASS_FSARRAY:
+           case LowLevelCAS.TYPE_CLASS_INTARRAY:
+           case LowLevelCAS.TYPE_CLASS_FLOATARRAY:
+           case LowLevelCAS.TYPE_CLASS_BOOLEANARRAY:
+           case LowLevelCAS.TYPE_CLASS_BYTEARRAY:
+           case LowLevelCAS.TYPE_CLASS_SHORTARRAY:
+           case LowLevelCAS.TYPE_CLASS_LONGARRAY:
+           case LowLevelCAS.TYPE_CLASS_DOUBLEARRAY:
+           case LowLevelCAS.TYPE_CLASS_STRINGARRAY:
+             csss.writeArrays(fs, typeCode, typeClass);
+             break;
+ 
+           default:
+             throw new RuntimeException("Error classifying FS type.");
+         }
+ 
+         csss.writeEndOfIndividualFs();
+       }
+     }
+ 
+     int getElementCountForSharedData() {
+       return (sharedData == null) ? 0 : sharedData.getOutOfTypeSystemElements().size();
+     }
+ 
+     /**
+      * Get the XMI ID to use for an FS.
+      * 
+      * @param fs
+      *          the FS
+      * @return XMI ID or null
+      */
+     public String getXmiId(TOP fs) {
+       int v = getXmiIdAsInt(fs);
+       return (v == 0) ? null : Integer.toString(v);
+     }
+ 
+     public int getXmiIdAsInt(TOP fs) {
+       if (fs == null) {
+         return 0;
+       }
+       if (isFiltering && null == filterTypeSystem_inner.getType(fs._getTypeImpl().getName())) { // return
+                                                                                                 // as
+                                                                                                 // null
+                                                                                                 // any
+                                                                                                 // references
+                                                                                                 // to
+                                                                                                 // types
+                                                                                                 // not
+                                                                                                 // in
+                                                                                                 // target
+                                                                                                 // TS
+         return 0;
+       }
+ 
+       if (sharedData == null) {
+         // in the absence of outside information, just use the FS address
+         return fs._id;
+       } else {
+         return sharedData.getXmiIdAsInt(fs);
+       }
+ 
+     }
+ 
+     public String getNameSpacePrefix(String uimaTypeName, String nsUri, int lastDotIndex) {
+       // determine what namespace prefix to use
+       String prefix = nsUriToPrefixMap.get(nsUri);
+       if (prefix == null) {
+         if (lastDotIndex != -1) { // have namespace
+           int secondLastDotIndex = uimaTypeName.lastIndexOf('.', lastDotIndex - 1);
+           prefix = uimaTypeName.substring(secondLastDotIndex + 1, lastDotIndex);
+         } else {
+           prefix = "noNamespace"; // is correct for older XMI standard too
+         }
+         // make sure this prefix hasn't already been used for some other namespace
+         // including out-of-type-system types (for XmiCasSerializer)
+         if (nsPrefixesUsed.contains(prefix)) {
+           String basePrefix = prefix;
+           int num = 2;
+           while (nsPrefixesUsed.contains(basePrefix + num)) {
+             num++;
+           }
+           prefix = basePrefix + num;
+         }
+         nsUriToPrefixMap.put(nsUri, prefix);
+         nsPrefixesUsed.add(prefix);
+       }
+       return prefix;
+     }
+ 
+     /*
+      * convert to shared string, without interning, reduce GCs
+      */
+     public String getUniqueString(String s) {
+       String u = uniqueStrings.get(s);
+       if (null == u) {
+         u = s;
+         uniqueStrings.put(s, s);
+       }
+       return u;
+     }
+ 
+     public String getTypeNameFromXmlElementName(XmlElementName xe) {
+       final String nsUri = xe.nsUri;
+       if (nsUri == null || nsUri.length() == 0) {
+         throw new UnsupportedOperationException();
+       }
+ 
+       final int pfx = XmiCasSerializer.URIPFX.length;
+       final int sfx = XmiCasSerializer.URISFX.length;
+ 
+       String r = (nsUri.startsWith(XmiCasSerializer.DEFAULT_NAMESPACE_URI)) ? ""
+               : nsUri.substring(pfx, nsUri.length() - sfx);
+       r = r.replace('/', '.');
+ 
+       return r + xe.localName;
+     }
+ 
+     public boolean isStaticMultiRef(FeatureImpl fi) {
+       return fi.isMultipleReferencesAllowed();
+     }
+ 
+   }
+ 
+   /**
+    * Classifies a type. This returns an integer code identifying the type as one of the primitive
+    * types, one of the array types, one of the list types, or a generic FS type (anything else).
+    * <p>
+    * The {@link LowLevelCAS#ll_getTypeClass(int)} method classifies primitives and array types, but
+    * does not have a special classification for list types, which we need for XMI serialization.
+    * Therefore, in addition to the type codes defined on {@link LowLevelCAS}, this method can return
+    * one of the type codes TYPE_CLASS_INTLIST, TYPE_CLASS_FLOATLIST, TYPE_CLASS_STRINGLIST, or
+    * TYPE_CLASS_FSLIST.
+    * 
+    * @param ti
+    *          the type to classify
+    * @return one of the TYPE_CLASS codes defined on {@link LowLevelCAS} or on this interface.
+    */
+   public static final int classifyType(TypeImpl ti) {
+     switch (ti.getCode()) {
+       case TypeSystemConstants.intListTypeCode:
+         return TYPE_CLASS_INTLIST;
+       case TypeSystemConstants.floatListTypeCode:
+         return TYPE_CLASS_FLOATLIST;
+       case TypeSystemConstants.stringListTypeCode:
+         return TYPE_CLASS_STRINGLIST;
+       case TypeSystemConstants.fsListTypeCode:
+         return TYPE_CLASS_FSLIST;
+       default:
+         return TypeSystemImpl.getTypeClass(ti);
+     }
+   }
+ 
+   private static boolean isArrayOrList(TOP fs) {
+     return fs instanceof CommonPrimitiveArray || fs instanceof FSArray || fs instanceof CommonList;
+   }
+ 
+ }