diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
index 3eeca10a7..47dbf6530 100644
--- a/RELEASE_NOTES.md
+++ b/RELEASE_NOTES.md
@@ -4,7 +4,14 @@ ESA CCSDS MO services - Release Notes
These Release Notes include a short summary of the updates done for each version.
The different versions and respective updates are the following:
-### Version 14.0
+### Version 14.1 (18 July 2026)
+* Vendors the W3C XML Schema files instead of downloading them at build time (removes the build's dependency on network access to w3.org)
+* Fixes a race condition and silent failures in the LazyMessageBody decoding
+* Restores the log-and-continue handling of NotFoundException during decoding
+* No longer reports empty message bodies as failed decodes
+* Loads the consumer.properties file only once per JVM
+
+### Version 14.0 (04 July 2026)
* Removes the setters from the auto-generated classes
* Removes deprecated methods
* Adds the partial Monitor & Control service implementations (Action, Alert, and Packet) and respective testbed
diff --git a/RELEASING.md b/RELEASING.md
index 26be81926..c7956f9a2 100644
--- a/RELEASING.md
+++ b/RELEASING.md
@@ -76,6 +76,8 @@ git pull
git checkout -b vAA.B
```
+8. Bump the versions of ALL the pom files to the next development version (example, from: 14.0 to: 14.1-SNAPSHOT), then commit and push. Make sure every pom is updated, including any modules that are detached from the main reactor (e.g. the testbeds), which a single reactor-wide command may miss.
+
Extra
-------------
Complete Maven Central publishing guide available [here][sonatype_guide]!
diff --git a/api-generator/api-generator-maven-plugin/pom.xml b/api-generator/api-generator-maven-plugin/pom.xml
index b9211c080..efbf99d76 100644
--- a/api-generator/api-generator-maven-plugin/pom.xml
+++ b/api-generator/api-generator-maven-plugin/pom.xml
@@ -19,12 +19,12 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
api-generator-maven-plugin
- 14.0
+ 14.1
maven-plugin
ESA MO API Generator - Maven Plugin
diff --git a/api-generator/generator-docs/pom.xml b/api-generator/generator-docs/pom.xml
index 58eaa1106..6d3553480 100644
--- a/api-generator/generator-docs/pom.xml
+++ b/api-generator/generator-docs/pom.xml
@@ -19,12 +19,12 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
generator-docs
- 14.0
+ 14.1
jar
ESA MO API Generator - Documentation
diff --git a/api-generator/generator-interfaces/pom.xml b/api-generator/generator-interfaces/pom.xml
index 092c92498..138039b4d 100644
--- a/api-generator/generator-interfaces/pom.xml
+++ b/api-generator/generator-interfaces/pom.xml
@@ -19,12 +19,12 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
generator-interfaces
- 14.0
+ 14.1
jar
ESA MO API Generator - Interfaces
@@ -65,12 +65,12 @@
int.esa.ccsds.mo
xml-ccsds-mo-prototypes
- 14.0
+ 14.1
int.esa.ccsds.mo
xml-ccsds-mo-standards
- 14.0
+ 14.1
@@ -133,7 +133,7 @@
w3c.xsd
true
- ${project.build.directory}/xsd-ref/XMLSchema.xsd
+ ${basedir}/src/main/xsd-ref/XMLSchema.xsd
@@ -157,49 +157,6 @@
-
- org.codehaus.mojo
- wagon-maven-plugin
- 2.0.2
-
-
- get-xsd
- generate-sources
-
- download-single
-
-
- http://www.w3.org/2009/XMLSchema
- XMLSchema.xsd
- ${project.build.directory}/xsd-ref
-
-
-
- get-dtd
- generate-sources
-
- download-single
-
-
- http://www.w3.org/2009/XMLSchema
- XMLSchema.dtd
- ${project.build.directory}/xsd-ref
-
-
-
- get-dtd-types
- generate-sources
-
- download-single
-
-
- http://www.w3.org/2009/XMLSchema
- datatypes.dtd
- ${project.build.directory}/xsd-ref
-
-
-
-
org.apache.maven.plugins
maven-compiler-plugin
diff --git a/api-generator/generator-interfaces/src/main/xsd-ref/XMLSchema.dtd b/api-generator/generator-interfaces/src/main/xsd-ref/XMLSchema.dtd
new file mode 100644
index 000000000..64aa2d970
--- /dev/null
+++ b/api-generator/generator-interfaces/src/main/xsd-ref/XMLSchema.dtd
@@ -0,0 +1,513 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+%xs-datatypes;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/api-generator/generator-interfaces/src/main/xsd-ref/XMLSchema.xsd b/api-generator/generator-interfaces/src/main/xsd-ref/XMLSchema.xsd
new file mode 100644
index 000000000..21c707cd4
--- /dev/null
+++ b/api-generator/generator-interfaces/src/main/xsd-ref/XMLSchema.xsd
@@ -0,0 +1,1950 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ]>
+
+
+
+
+ Part 1 version: structures.xsd (rec-20120405)
+ Part 2 version: datatypes.xsd (rec-20120405)
+
+
+
+
+
+ The schema corresponding to this document is normative,
+ with respect to the syntactic constraints it expresses in the
+ XML Schema Definition Language. The documentation (within 'documentation' elements)
+ below, is not normative, but rather highlights important aspects of
+ the W3C Recommendation of which this is a part.
+
+ See below (at the bottom of this document) for information about
+ the revision and namespace-versioning policy governing this
+ schema document.
+
+
+
+
+
+ The simpleType element and all of its members are defined
+ towards the end of this schema document.
+
+
+
+
+ Get access to the xml: attribute groups for xml:lang
+ as declared on 'schema' and 'documentation' below
+
+
+
+
+
+
+ This type is extended by almost all schema types
+ to allow attributes from other namespaces to be
+ added to user schemas.
+
+
+
+
+
+
+
+
+
+
+
+ This type is extended by all types which allow annotation
+ other than <schema> itself
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This group is for the
+ elements which occur freely at the top level of schemas.
+ All of their types are based on the "annotated" type by extension.
+
+
+
+
+
+
+
+
+
+
+
+ This group is for the
+ elements which can self-redefine (see <redefine> below).
+
+
+
+
+
+
+
+
+
+
+
+ A utility type, not for public use
+
+
+
+
+
+
+
+
+
+ A utility type, not for public use
+
+
+
+
+
+
+
+
+
+ A utility type, not for public use
+
+ #all or (possibly empty) subset of {extension, restriction}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A utility type, not for public use
+
+
+
+
+
+
+
+
+
+
+
+ A utility type, not for public use
+
+ #all or (possibly empty) subset of {extension, restriction, list, union}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ for maxOccurs
+
+
+
+
+
+
+
+
+
+
+
+
+ for all particles
+
+
+
+
+
+
+
+ for element, group and attributeGroup,
+ which both define and reference
+
+
+
+
+
+
+
+ 'complexType' uses this
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This branch is short for
+ <complexContent>
+ <restriction base="xs:anyType">
+ ...
+ </restriction>
+ </complexContent>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Will be restricted to required or prohibited
+
+
+
+
+
+ Not allowed if simpleContent child is chosen.
+ May be overridden by setting on complexContent child.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This choice is added simply to
+ make this a valid restriction per the REC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Overrides any setting on complexType parent.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This choice is added simply to
+ make this a valid restriction per the REC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No typeDefParticle group reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A utility type, not for public use
+
+ #all or (possibly empty) subset of {substitution, extension,
+ restriction}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The element element can be used either
+ at the top level to define an element-type binding globally,
+ or within a content model to either reference a globally-defined
+ element or type or declare an element-type binding locally.
+ The ref form is not allowed at the top level.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This type is used for 'alternative' elements.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ group type for explicit groups, named top-level groups and
+ group references
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ group type for the three kinds of group
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This choice with min/max is here to
+ avoid a pblm with the Elt:All/Choice/Seq
+ Particle derivation constraint
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Only elements allowed inside
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ simple type for the value of the 'namespace' attr of
+ 'any' and 'anyAttribute'
+
+
+
+ Value is
+ ##any - - any non-conflicting WFXML/attribute at all
+
+ ##other - - any non-conflicting WFXML/attribute from
+ namespace other than targetNS
+
+ ##local - - any unqualified non-conflicting WFXML/attribute
+
+ one or - - any non-conflicting WFXML/attribute from
+ more URI the listed namespaces
+ references
+ (space separated)
+
+ ##targetNamespace or ##local may appear in the above list, to
+ refer to the targetNamespace of the enclosing
+ schema or an absent targetNamespace respectively
+
+
+
+
+ A utility type, not for public use
+
+
+
+
+
+
+
+ A utility type, not for public use
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A utility type, not for public use
+
+
+
+
+
+
+
+
+
+ A utility type, not for public use
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A utility type, not for public use
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A subset of XPath expressions for use
+in selectors
+ A utility type, not for public
+use
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A subset of XPath expressions for use
+in fields
+ A utility type, not for public
+use
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The three kinds of identity constraints, all with
+ type of or derived from 'keybase'.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A utility type, not for public use
+
+ A public identifier, per ISO 8879
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ notations for use within schema documents
+
+
+
+
+
+
+ Not the real urType, but as close an approximation as we can
+ get in the XML representation
+
+
+
+
+
+
+
+
+
+ In keeping with the XML Schema WG's standard versioning policy,
+ the material in this schema document will persist at the URI
+ http://www.w3.org/2012/04/XMLSchema.xsd.
+
+ At the date of issue it can also be found at the URI
+ http://www.w3.org/2009/XMLSchema/XMLSchema.xsd.
+
+ The schema document at that URI may however change in the future,
+ in order to remain compatible with the latest version of XSD
+ and its namespace. In other words, if XSD or the XML Schema
+ namespace change, the version of this document at
+ http://www.w3.org/2009/XMLSchema/XMLSchema.xsd will change accordingly;
+ the version at http://www.w3.org/2012/04/XMLSchema.xsd will not change.
+
+ Previous dated (and unchanging) versions of this schema document
+ include:
+
+ http://www.w3.org/2012/01/XMLSchema.xsd
+ (XSD 1.1 Proposed Recommendation)
+
+ http://www.w3.org/2011/07/XMLSchema.xsd
+ (XSD 1.1 Candidate Recommendation)
+
+ http://www.w3.org/2009/04/XMLSchema.xsd
+ (XSD 1.1 Candidate Recommendation)
+
+ http://www.w3.org/2004/10/XMLSchema.xsd
+ (XSD 1.0 Recommendation, Second Edition)
+
+ http://www.w3.org/2001/05/XMLSchema.xsd
+ (XSD 1.0 Recommendation, First Edition)
+
+
+
+
+
+
+
+
+
+
+
+ A utility type, not for public use
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #all or (possibly empty) subset of {restriction, extension, union, list}
+
+
+ A utility type, not for public use
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Can be restricted to required or forbidden
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Required at the top level
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Forbidden when nested
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An abstract element, representing facets in general.
+ The facets defined by this spec are substitutable for
+ this element, and implementation-defined facets should
+ also name this as a substitution-group head.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ base attribute and simpleType child are mutually
+ exclusive, but one or other is required
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ itemType attribute and simpleType child are mutually
+ exclusive, but one or other is required
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ memberTypes attribute must be non-empty or there must be
+ at least one simpleType child
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ In keeping with the XML Schema WG's standard versioning policy,
+ this schema document will persist at the URI
+ http://www.w3.org/2012/04/datatypes.xsd.
+
+ At the date of issue it can also be found at the URI
+ http://www.w3.org/2009/XMLSchema/datatypes.xsd.
+
+ The schema document at that URI may however change in the future,
+ in order to remain compatible with the latest version of XSD
+ and its namespace. In other words, if XSD or the XML Schema
+ namespace change, the version of this document at
+ http://www.w3.org/2009/XMLSchema/datatypes.xsd will change accordingly;
+ the version at http://www.w3.org/2012/04/datatypes.xsd will not change.
+
+ Previous dated (and unchanging) versions of this schema document
+ include:
+
+ http://www.w3.org/2012/01/datatypes.xsd
+ (XSD 1.1 Proposed Recommendation)
+
+ http://www.w3.org/2011/07/datatypes.xsd
+ (XSD 1.1 Candidate Recommendation)
+
+ http://www.w3.org/2009/04/datatypes.xsd
+ (XSD 1.1 Candidate Recommendation)
+
+ http://www.w3.org/2004/10/datatypes.xsd
+ (XSD 1.0 Recommendation, Second Edition)
+
+ http://www.w3.org/2001/05/datatypes.xsd
+ (XSD 1.0 Recommendation, First Edition)
+
+
+
+
+
+
+
diff --git a/api-generator/generator-interfaces/src/main/xsd-ref/datatypes.dtd b/api-generator/generator-interfaces/src/main/xsd-ref/datatypes.dtd
new file mode 100644
index 000000000..f9352bae1
--- /dev/null
+++ b/api-generator/generator-interfaces/src/main/xsd-ref/datatypes.dtd
@@ -0,0 +1,222 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/api-generator/generator-java/pom.xml b/api-generator/generator-java/pom.xml
index d3e71aa50..58eefe7dd 100644
--- a/api-generator/generator-java/pom.xml
+++ b/api-generator/generator-java/pom.xml
@@ -19,12 +19,12 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
generator-java
- 14.0
+ 14.1
jar
ESA MO API Generator - Java
diff --git a/api-generator/pom.xml b/api-generator/pom.xml
index f31a78976..4fa11d836 100644
--- a/api-generator/pom.xml
+++ b/api-generator/pom.xml
@@ -19,12 +19,12 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../parent/pom.xml
api-generator
- 14.0
+ 14.1
pom
ESA MO API Generator
diff --git a/apis/api-area001-v003-mal/pom.xml b/apis/api-area001-v003-mal/pom.xml
index 0f82e51d9..1ef685762 100644
--- a/apis/api-area001-v003-mal/pom.xml
+++ b/apis/api-area001-v003-mal/pom.xml
@@ -19,12 +19,12 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
api-area001-v003-mal
- 14.0
+ 14.1
jar
ESA MO API - MAL v003
diff --git a/apis/api-area001-v003-mal/src/main/java/org/ccsds/moims/mo/mal/helpertools/helpers/HelperMisc.java b/apis/api-area001-v003-mal/src/main/java/org/ccsds/moims/mo/mal/helpertools/helpers/HelperMisc.java
index e30b7c023..39605b354 100644
--- a/apis/api-area001-v003-mal/src/main/java/org/ccsds/moims/mo/mal/helpertools/helpers/HelperMisc.java
+++ b/apis/api-area001-v003-mal/src/main/java/org/ccsds/moims/mo/mal/helpertools/helpers/HelperMisc.java
@@ -124,6 +124,16 @@ private static Properties loadProperties(final String configFile, final String c
* @throws IOException if the file consumer properties file does no exist
*/
public static void loadConsumerProperties() throws MalformedURLException, IOException {
+ // Were they loaded already? This flag is independent from the provider's
+ // "PropertiesLoadedFlag" so that an application acting as both a consumer
+ // and a provider still loads both property files.
+ String propAreLoaded = System.getProperty("ConsumerPropertiesLoadedFlag");
+ if (propAreLoaded != null) {
+ if (propAreLoaded.equals("true")) {
+ return;
+ }
+ }
+
final Properties sysProps = System.getProperties();
final File file = new File(System.getProperty("consumer.properties", CONSUMER_PROPERTIES_FILE));
@@ -134,6 +144,7 @@ public static void loadConsumerProperties() throws MalformedURLException, IOExce
}
System.setProperties(sysProps);
+ System.setProperty("ConsumerPropertiesLoadedFlag", "true");
}
/**
@@ -218,7 +229,6 @@ public static void loadPropertiesFile() {
* SHARED_BROKER_PROPERTIES file will be read
*/
public static void loadPropertiesFile(Boolean useSharedBroker) {
-
// Were they loaded already?
String propAreLoaded = System.getProperty("PropertiesLoadedFlag");
if (propAreLoaded != null) {
@@ -296,11 +306,9 @@ public static void loadPropertiesFile(Boolean useSharedBroker) {
System.setProperties(sysProps);
System.setProperty("PropertiesLoadedFlag", "true");
-
} catch (MalformedURLException ex) {
Logger.getLogger(HelperMisc.class.getName()).log(Level.SEVERE, null, ex);
}
-
}
/**
diff --git a/apis/api-area002-v001-com/pom.xml b/apis/api-area002-v001-com/pom.xml
index 4b52f82a7..1c6a4e6e7 100644
--- a/apis/api-area002-v001-com/pom.xml
+++ b/apis/api-area002-v001-com/pom.xml
@@ -19,12 +19,12 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
api-area002-v001-com
- 14.0
+ 14.1
jar
ESA MO API - COM v001
diff --git a/apis/api-area003-v001-common/pom.xml b/apis/api-area003-v001-common/pom.xml
index f218b3a96..b5d2298e4 100644
--- a/apis/api-area003-v001-common/pom.xml
+++ b/apis/api-area003-v001-common/pom.xml
@@ -19,12 +19,12 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
api-area003-v001-common
- 14.0
+ 14.1
jar
ESA MO API - Common v001
diff --git a/apis/api-area004-v001-mc/pom.xml b/apis/api-area004-v001-mc/pom.xml
index e86049b4b..bd5d7bca0 100644
--- a/apis/api-area004-v001-mc/pom.xml
+++ b/apis/api-area004-v001-mc/pom.xml
@@ -19,12 +19,12 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
api-area004-v001-mc
- 14.0
+ 14.1
jar
ESA MO API - MC v001
diff --git a/apis/api-area004-v002-mc/pom.xml b/apis/api-area004-v002-mc/pom.xml
index eb23fabfc..ca170c633 100644
--- a/apis/api-area004-v002-mc/pom.xml
+++ b/apis/api-area004-v002-mc/pom.xml
@@ -19,12 +19,12 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
api-area004-v002-mc
- 14.0
+ 14.1
jar
ESA MO API - MC v002
diff --git a/apis/api-area005-v001-mps/pom.xml b/apis/api-area005-v001-mps/pom.xml
index 662b0c156..6ed4f4a0f 100644
--- a/apis/api-area005-v001-mps/pom.xml
+++ b/apis/api-area005-v001-mps/pom.xml
@@ -19,12 +19,12 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
api-area005-v001-mps
- 14.0
+ 14.1
jar
ESA MO API - MPS v001
diff --git a/apis/api-area009-v001-mpd/pom.xml b/apis/api-area009-v001-mpd/pom.xml
index e9cba0d1b..59642d8e8 100644
--- a/apis/api-area009-v001-mpd/pom.xml
+++ b/apis/api-area009-v001-mpd/pom.xml
@@ -19,12 +19,12 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
api-area009-v001-mpd
- 14.0
+ 14.1
jar
ESA MO API - MPD v001
diff --git a/apis/pom.xml b/apis/pom.xml
index 551c7b5fd..31a859deb 100644
--- a/apis/pom.xml
+++ b/apis/pom.xml
@@ -19,12 +19,12 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../parent/pom.xml
apis
- 14.0
+ 14.1
pom
ESA MO APIs
diff --git a/encodings/encoding-binary/pom.xml b/encodings/encoding-binary/pom.xml
index 843f2f8ab..b41d574d5 100644
--- a/encodings/encoding-binary/pom.xml
+++ b/encodings/encoding-binary/pom.xml
@@ -19,13 +19,13 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
encoding-binary
jar
- 14.0
+ 14.1
ESA MO Encoder - Binary
A simple Java binary encoder for the CCSDS MAL
diff --git a/encodings/encoding-string/pom.xml b/encodings/encoding-string/pom.xml
index c7d927b5c..334eee145 100644
--- a/encodings/encoding-string/pom.xml
+++ b/encodings/encoding-string/pom.xml
@@ -19,13 +19,13 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
encoding-string
jar
- 14.0
+ 14.1
ESA MO Encoder - String
A simple Java String based encoder for the CCSDS MAL
diff --git a/encodings/encoding-xml/pom.xml b/encodings/encoding-xml/pom.xml
index 56ad06161..2130fae2f 100644
--- a/encodings/encoding-xml/pom.xml
+++ b/encodings/encoding-xml/pom.xml
@@ -19,13 +19,13 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
encoding-xml
jar
- 14.0
+ 14.1
ESA MO Encoder - XML
A simple Java String based encoder for the CCSDS MAL
diff --git a/encodings/pom.xml b/encodings/pom.xml
index 3003c313a..18605409d 100644
--- a/encodings/pom.xml
+++ b/encodings/pom.xml
@@ -19,12 +19,12 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../parent/pom.xml
encodings
- 14.0
+ 14.1
pom
ESA MO Encodings
diff --git a/mal-impl/pom.xml b/mal-impl/pom.xml
index da12d40f5..5d6afeed7 100644
--- a/mal-impl/pom.xml
+++ b/mal-impl/pom.xml
@@ -19,13 +19,13 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../parent/pom.xml
mal-impl
jar
- 14.0
+ 14.1
ESA MO MAL Java Implementation
The ESA implementation of the CCSDS MAL in Java
diff --git a/parent/pom.xml b/parent/pom.xml
index b7d4330bf..feac821cd 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -17,7 +17,7 @@
4.0.0
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
pom
ESA MO POM
@@ -73,7 +73,7 @@
UTF-8
- 14.0
+ 14.1
${esa.mo.version}
${esa.mo.version}
diff --git a/pom.xml b/pom.xml
index 82f857410..d51204bbb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,7 +19,7 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
parent/pom.xml
diff --git a/services-impl/pom.xml b/services-impl/pom.xml
index 4e70946e1..38146809f 100644
--- a/services-impl/pom.xml
+++ b/services-impl/pom.xml
@@ -19,12 +19,12 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../parent/pom.xml
services-impl
- 14.0
+ 14.1
pom
ESA MO Services Implementations
diff --git a/services-impl/services-area003-v001-common/pom.xml b/services-impl/services-area003-v001-common/pom.xml
index 1c603918a..f7d80235f 100644
--- a/services-impl/services-area003-v001-common/pom.xml
+++ b/services-impl/services-area003-v001-common/pom.xml
@@ -19,12 +19,12 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
services-area003-v001-common
- 14.0
+ 14.1
jar
ESA MO Services - Common Services
diff --git a/services-impl/services-area004-v002-mc/pom.xml b/services-impl/services-area004-v002-mc/pom.xml
index 10a8a4b8d..618f57d5d 100644
--- a/services-impl/services-area004-v002-mc/pom.xml
+++ b/services-impl/services-area004-v002-mc/pom.xml
@@ -19,12 +19,12 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
services-area004-v002-mc
- 14.0
+ 14.1
jar
ESA MO Services - MC Services
diff --git a/services-impl/services-area009-v001-mpd/pom.xml b/services-impl/services-area009-v001-mpd/pom.xml
index 24efc85b0..421cbe722 100644
--- a/services-impl/services-area009-v001-mpd/pom.xml
+++ b/services-impl/services-area009-v001-mpd/pom.xml
@@ -19,12 +19,12 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
services-area009-v001-mpd
- 14.0
+ 14.1
jar
ESA MO Services - MPD Services
diff --git a/testbeds/pom.xml b/testbeds/pom.xml
index da6efb518..d7e4c02d4 100644
--- a/testbeds/pom.xml
+++ b/testbeds/pom.xml
@@ -19,12 +19,12 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../parent/pom.xml
testbeds
- 14.0
+ 14.1
pom
ESA CCSDS Testbed reactor build
diff --git a/testbeds/test-apis/pom.xml b/testbeds/test-apis/pom.xml
index 082a46b1a..0078e18ab 100644
--- a/testbeds/test-apis/pom.xml
+++ b/testbeds/test-apis/pom.xml
@@ -19,12 +19,12 @@
int.esa.ccsds.mo
testbed-pom
- 14.0
+ 14.1
../testbed-pom/pom.xml
test-apis
- 14.0
+ 14.1
pom
CCSDS MOIMS MO Testbed APIs
diff --git a/testbeds/test-apis/test-api-com/pom.xml b/testbeds/test-apis/test-api-com/pom.xml
index a69c6ee0c..073e184f4 100644
--- a/testbeds/test-apis/test-api-com/pom.xml
+++ b/testbeds/test-apis/test-api-com/pom.xml
@@ -19,12 +19,12 @@
int.esa.ccsds.mo
testbed-pom
- 14.0
+ 14.1
../../testbed-pom/pom.xml
api-com-test
- 14.0
+ 14.1
jar
CCSDS MOIMS MO Testbed API - COM
diff --git a/testbeds/test-apis/test-api-mal/pom.xml b/testbeds/test-apis/test-api-mal/pom.xml
index a1445ec62..55ae17b31 100644
--- a/testbeds/test-apis/test-api-mal/pom.xml
+++ b/testbeds/test-apis/test-api-mal/pom.xml
@@ -19,12 +19,12 @@
int.esa.ccsds.mo
testbed-pom
- 14.0
+ 14.1
../../testbed-pom/pom.xml
api-mal-test
- 14.0
+ 14.1
jar
CCSDS MOIMS MO Testbed API - MAL
diff --git a/testbeds/test-apis/test-api-mc/pom.xml b/testbeds/test-apis/test-api-mc/pom.xml
index b627f22a1..44a24b46a 100644
--- a/testbeds/test-apis/test-api-mc/pom.xml
+++ b/testbeds/test-apis/test-api-mc/pom.xml
@@ -19,12 +19,12 @@
int.esa.ccsds.mo
testbed-pom
- 14.0
+ 14.1
../../testbed-pom/pom.xml
api-mc-test
- 14.0
+ 14.1
jar
CCSDS MOIMS MO Testbed API - MC
diff --git a/testbeds/testbed-com-framework/pom.xml b/testbeds/testbed-com-framework/pom.xml
index cfa7d52e6..56dcbb8e8 100644
--- a/testbeds/testbed-com-framework/pom.xml
+++ b/testbeds/testbed-com-framework/pom.xml
@@ -19,13 +19,13 @@
int.esa.ccsds.mo
testbed-pom
- 14.0
+ 14.1
../testbed-pom/pom.xml
testbed-com-framework
jar
- 14.0
+ 14.1
CCSDS MOIMS MO Testbed COM - Harness
diff --git a/testbeds/testbed-com-provider-esa/pom.xml b/testbeds/testbed-com-provider-esa/pom.xml
index c80cc8ca5..d8016f98e 100644
--- a/testbeds/testbed-com-provider-esa/pom.xml
+++ b/testbeds/testbed-com-provider-esa/pom.xml
@@ -19,12 +19,12 @@
int.esa.ccsds.mo
testbed-pom
- 14.0
+ 14.1
../testbed-pom/pom.xml
testbed-com-provider-esa
- 14.0
+ 14.1
jar
CCSDS MOIMS MO Testbed COM - Provider Impl
diff --git a/testbeds/testbed-com/pom.xml b/testbeds/testbed-com/pom.xml
index 2acdf55b5..8188c2f3e 100644
--- a/testbeds/testbed-com/pom.xml
+++ b/testbeds/testbed-com/pom.xml
@@ -19,13 +19,13 @@
int.esa.ccsds.mo
testbed-pom
- 14.0
+ 14.1
../testbed-pom/pom.xml
testbed-com
jar
- 14.0
+ 14.1
CCSDS MOIMS MO Testbed for COM
diff --git a/testbeds/testbed-encoders/pom.xml b/testbeds/testbed-encoders/pom.xml
index e7e55d7ec..0e9b567f4 100644
--- a/testbeds/testbed-encoders/pom.xml
+++ b/testbeds/testbed-encoders/pom.xml
@@ -19,13 +19,13 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../testbed-pom/pom.xml
testbed-encoders
jar
- 14.0
+ 14.1
CCSDS MOIMS MO Testbed Encoders
diff --git a/testbeds/testbed-mal/pom.xml b/testbeds/testbed-mal/pom.xml
index 8e4e68129..37ef6271e 100644
--- a/testbeds/testbed-mal/pom.xml
+++ b/testbeds/testbed-mal/pom.xml
@@ -19,13 +19,13 @@
int.esa.ccsds.mo
testbed-pom
- 14.0
+ 14.1
../testbed-pom/pom.xml
testbed-mal
jar
- 14.0
+ 14.1
CCSDS MOIMS MO Testbed for MAL
diff --git a/testbeds/testbed-malspp-framework/pom.xml b/testbeds/testbed-malspp-framework/pom.xml
index b3fc2c924..94c1980f7 100644
--- a/testbeds/testbed-malspp-framework/pom.xml
+++ b/testbeds/testbed-malspp-framework/pom.xml
@@ -40,14 +40,14 @@
int.esa.ccsds.mo
testbed-pom
- 14.0
+ 14.1
../testbed-pom/pom.xml
int.esa.ccsds.mo
testbed-malspp-framework
jar
- 14.0
+ 14.1
CCSDS MOIMS MO Testbed Framework for MAL/SPP Binding
diff --git a/testbeds/testbed-malspp/pom.xml b/testbeds/testbed-malspp/pom.xml
index 3515f8001..50e189af7 100644
--- a/testbeds/testbed-malspp/pom.xml
+++ b/testbeds/testbed-malspp/pom.xml
@@ -40,14 +40,14 @@
int.esa.ccsds.mo
testbed-pom
- 14.0
+ 14.1
../testbed-pom/pom.xml
int.esa.ccsds.mo
testbed-malspp
jar
- 14.0
+ 14.1
CCSDS MOIMS MO Testbed for MAL/SPP Binding
diff --git a/testbeds/testbed-mc/pom.xml b/testbeds/testbed-mc/pom.xml
index 22c6d0336..43eac22d0 100644
--- a/testbeds/testbed-mc/pom.xml
+++ b/testbeds/testbed-mc/pom.xml
@@ -19,13 +19,13 @@
int.esa.ccsds.mo
testbed-pom
- 14.0
+ 14.1
../testbed-pom/pom.xml
testbed-mc
jar
- 14.0
+ 14.1
CCSDS MOIMS MO Testbed MC
diff --git a/testbeds/testbed-mpd/pom.xml b/testbeds/testbed-mpd/pom.xml
index 71c0afbd5..a0e86a713 100644
--- a/testbeds/testbed-mpd/pom.xml
+++ b/testbeds/testbed-mpd/pom.xml
@@ -19,14 +19,14 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
int.esa.ccsds.mo
testbed-mpd
jar
- 14.0
+ 14.1
CCSDS MOIMS MO Testbed MPD
diff --git a/testbeds/testbed-pom/pom.xml b/testbeds/testbed-pom/pom.xml
index 7784e3b0f..b6a1def80 100644
--- a/testbeds/testbed-pom/pom.xml
+++ b/testbeds/testbed-pom/pom.xml
@@ -19,13 +19,13 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
testbed-pom
pom
- 14.0
+ 14.1
CCSDS MOIMS MO Testbed POM
diff --git a/testbeds/testbed-util-spp/pom.xml b/testbeds/testbed-util-spp/pom.xml
index 8d8ea9570..81b1f2691 100644
--- a/testbeds/testbed-util-spp/pom.xml
+++ b/testbeds/testbed-util-spp/pom.xml
@@ -40,14 +40,14 @@
int.esa.ccsds.mo
testbed-pom
- 14.0
+ 14.1
../testbed-pom/pom.xml
int.esa.ccsds.mo
testbed-util-spp
jar
- 14.0
+ 14.1
CCSDS MOIMS MO Testbed utilities for the Space Packet Protocol
diff --git a/testbeds/testbed-util/pom.xml b/testbeds/testbed-util/pom.xml
index 985392667..508321e32 100644
--- a/testbeds/testbed-util/pom.xml
+++ b/testbeds/testbed-util/pom.xml
@@ -19,13 +19,13 @@
int.esa.ccsds.mo
testbed-pom
- 14.0
+ 14.1
../testbed-pom/pom.xml
testbed-util
jar
- 14.0
+ 14.1
CCSDS MOIMS MO Testbed utilities
diff --git a/testbeds/xml-tests/pom.xml b/testbeds/xml-tests/pom.xml
index 07eed6a80..118c08b14 100644
--- a/testbeds/xml-tests/pom.xml
+++ b/testbeds/xml-tests/pom.xml
@@ -18,7 +18,7 @@
int.esa.ccsds.mo
xml-tests
- 14.0
+ 14.1
jar
CCSDS MOIMS MO Testbed XML
diff --git a/tooling/basic-demo/pom.xml b/tooling/basic-demo/pom.xml
index 347d90e0c..6de8601bd 100644
--- a/tooling/basic-demo/pom.xml
+++ b/tooling/basic-demo/pom.xml
@@ -19,13 +19,13 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
basic-demo
jar
- 14.0
+ 14.1
ESA MO Java Demo
A Demo Java application for the CCSDS MAL
diff --git a/tooling/mo-navigator/pom.xml b/tooling/mo-navigator/pom.xml
index 64b353fc1..9d21153ff 100644
--- a/tooling/mo-navigator/pom.xml
+++ b/tooling/mo-navigator/pom.xml
@@ -19,13 +19,13 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
int.esa.ccsds.mo
mo-navigator
- 14.0
+ 14.1
jar
ESA MO Navigator
diff --git a/tooling/pom.xml b/tooling/pom.xml
index 5a23feeef..745ce085b 100644
--- a/tooling/pom.xml
+++ b/tooling/pom.xml
@@ -19,12 +19,12 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../parent/pom.xml
tooling
- 14.0
+ 14.1
pom
ESA MO Tooling
diff --git a/tooling/simple-mo-consumer/pom.xml b/tooling/simple-mo-consumer/pom.xml
index 233a32150..b9455e45d 100644
--- a/tooling/simple-mo-consumer/pom.xml
+++ b/tooling/simple-mo-consumer/pom.xml
@@ -7,12 +7,12 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
simple-mo-consumer
- 14.0
+ 14.1
jar
Simple MO Consumer
diff --git a/tooling/simple-mo-provider/pom.xml b/tooling/simple-mo-provider/pom.xml
index 53bc3aaaf..45979abac 100644
--- a/tooling/simple-mo-provider/pom.xml
+++ b/tooling/simple-mo-provider/pom.xml
@@ -7,12 +7,12 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
simple-mo-provider
- 14.0
+ 14.1
jar
Simple MO Provider
diff --git a/tooling/transport-bridge/pom.xml b/tooling/transport-bridge/pom.xml
index 46687e8e6..fc9b1198d 100644
--- a/tooling/transport-bridge/pom.xml
+++ b/tooling/transport-bridge/pom.xml
@@ -19,12 +19,12 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
transport-bridge
- 14.0
+ 14.1
jar
ESA MO Transport Bridge
diff --git a/transports/pom.xml b/transports/pom.xml
index c736abbc9..1e147a82b 100644
--- a/transports/pom.xml
+++ b/transports/pom.xml
@@ -19,12 +19,12 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../parent/pom.xml
transports
- 14.0
+ 14.1
pom
ESA MO Transports
diff --git a/transports/transport-file/pom.xml b/transports/transport-file/pom.xml
index 481424598..d3b6e6534 100644
--- a/transports/transport-file/pom.xml
+++ b/transports/transport-file/pom.xml
@@ -19,13 +19,13 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
transport-file
jar
- 14.0
+ 14.1
ESA MO Transport - File
A Java File based transport for CCSDS MAL
diff --git a/transports/transport-generic/pom.xml b/transports/transport-generic/pom.xml
index 7d91f0f84..5520c45ae 100644
--- a/transports/transport-generic/pom.xml
+++ b/transports/transport-generic/pom.xml
@@ -19,13 +19,13 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
transport-generic
jar
- 14.0
+ 14.1
ESA MO Transport - Generic Framework
A base Java framework for CCSDS MAL transports
diff --git a/transports/transport-generic/src/main/java/esa/mo/mal/transport/gen/body/LazyMessageBody.java b/transports/transport-generic/src/main/java/esa/mo/mal/transport/gen/body/LazyMessageBody.java
index ef496852e..e1740f414 100644
--- a/transports/transport-generic/src/main/java/esa/mo/mal/transport/gen/body/LazyMessageBody.java
+++ b/transports/transport-generic/src/main/java/esa/mo/mal/transport/gen/body/LazyMessageBody.java
@@ -92,7 +92,11 @@ public LazyMessageBody(final MALEncodingContext ctx,
final Object[] messageParts) {
this.ctx = ctx;
this.bodyPartCount = (messageParts != null) ? messageParts.length : 0;
- this.messageParts = messageParts;
+ // Never leave messageParts null while decodedBody is true: an empty body
+ // (e.g. a request with no arguments) is passed as null, and the repeated-
+ // read guard in decodeMessageBody() would otherwise report it as a failed
+ // decode. An empty array encodes as a zero-part body.
+ this.messageParts = (messageParts != null) ? messageParts : new Object[0];
this.encFactory = encFactory;
decodedBody = true;
}
@@ -228,12 +232,21 @@ else if ((o == null) || (o instanceof Element)) {
}
/**
- * Decodes the message body.
+ * Decodes the message body. Synchronized because the same body can be
+ * decoded from two threads: the thread of a synchronous consumer call
+ * unblocked by the interaction handler, and the message dispatcher thread
+ * delivering the same message to the interaction listener.
*
* @throws MALException if any error detected.
*/
- protected void decodeMessageBody() throws MALException {
+ protected synchronized void decodeMessageBody() throws MALException {
if (decodedBody) {
+ if (messageParts == null) {
+ // A previous decode attempt failed; fail loudly instead of
+ // letting the callers trip over the null messageParts
+ throw new MALException("The Message Body could not be decoded "
+ + "by a previous decoding attempt!");
+ }
return;
}
@@ -274,6 +287,15 @@ protected void decodeMessageBody() throws MALException {
} catch (NotFoundException ex) {
Transport.LOGGER.log(Level.WARNING,
"(2) Unable to decode the Message Body!", ex);
+ // The operation fields are unknown, so the body structure cannot be
+ // recovered. Degrade to an empty body (the historical log-and-continue
+ // behavior) instead of leaving messageParts null: otherwise the
+ // repeated-read guard above would later report this tolerated path as
+ // a SEVERE encoding error.
+ if (messageParts == null) {
+ bodyPartCount = 0;
+ messageParts = new Element[0];
+ }
}
}
diff --git a/transports/transport-http/pom.xml b/transports/transport-http/pom.xml
index 0c42d516e..f7653efff 100644
--- a/transports/transport-http/pom.xml
+++ b/transports/transport-http/pom.xml
@@ -19,13 +19,13 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
transport-http
jar
- 14.0
+ 14.1
ESA MO Transport - HTTP
A Java HTTP transport for CCSDS MAL
diff --git a/transports/transport-rmi/pom.xml b/transports/transport-rmi/pom.xml
index b1f5bf3b8..770f876e1 100644
--- a/transports/transport-rmi/pom.xml
+++ b/transports/transport-rmi/pom.xml
@@ -19,13 +19,13 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
transport-rmi
jar
- 14.0
+ 14.1
ESA MO Transport - RMI
A Java RMI transport for CCSDS MAL
diff --git a/transports/transport-spp/pom.xml b/transports/transport-spp/pom.xml
index 2763711d5..f50c415da 100644
--- a/transports/transport-spp/pom.xml
+++ b/transports/transport-spp/pom.xml
@@ -19,13 +19,13 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
transport-spp
jar
- 14.0
+ 14.1
ESA MO Transport - SPP
A Java SPP transport for CCSDS MAL
diff --git a/transports/transport-tcpip/pom.xml b/transports/transport-tcpip/pom.xml
index e25d0b69d..8fbb7e737 100644
--- a/transports/transport-tcpip/pom.xml
+++ b/transports/transport-tcpip/pom.xml
@@ -19,12 +19,12 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
transport-tcpip
- 14.0
+ 14.1
jar
ESA MO Transport - TCP/IP
diff --git a/transports/transport-zmtp/pom.xml b/transports/transport-zmtp/pom.xml
index 5473c23d7..a293064a5 100644
--- a/transports/transport-zmtp/pom.xml
+++ b/transports/transport-zmtp/pom.xml
@@ -19,13 +19,13 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
transport-zmtp
jar
- 14.0
+ 14.1
ESA MO Transport - ZMTP
A Java ZeroMQ Transport Protocol binding for CCSDS MAL
diff --git a/xml-service-specifications/pom.xml b/xml-service-specifications/pom.xml
index e8f7bc4a5..0c5e85bb4 100644
--- a/xml-service-specifications/pom.xml
+++ b/xml-service-specifications/pom.xml
@@ -19,13 +19,13 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../parent/pom.xml
int.esa.ccsds.mo
xml-service-specifications
- 14.0
+ 14.1
pom
ESA MO XML specifications
diff --git a/xml-service-specifications/xml-ccsds-mo-prototypes/pom.xml b/xml-service-specifications/xml-ccsds-mo-prototypes/pom.xml
index 0032a9219..757918d5e 100644
--- a/xml-service-specifications/xml-ccsds-mo-prototypes/pom.xml
+++ b/xml-service-specifications/xml-ccsds-mo-prototypes/pom.xml
@@ -19,13 +19,13 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
int.esa.ccsds.mo
xml-ccsds-mo-prototypes
- 14.0
+ 14.1
jar
ESA MO XML specifications - MO Prototypes
diff --git a/xml-service-specifications/xml-ccsds-mo-standards/pom.xml b/xml-service-specifications/xml-ccsds-mo-standards/pom.xml
index f029ded37..545c50bf4 100644
--- a/xml-service-specifications/xml-ccsds-mo-standards/pom.xml
+++ b/xml-service-specifications/xml-ccsds-mo-standards/pom.xml
@@ -19,13 +19,13 @@
int.esa.ccsds.mo
parent
- 14.0
+ 14.1
../../parent/pom.xml
int.esa.ccsds.mo
xml-ccsds-mo-standards
- 14.0
+ 14.1
jar
ESA MO XML specifications - MO Standards