Developer Guide

JEAF Generator Error Codes

Current Version

JEAF Generator Error Codes

This page describes all the possible errors and warnings that might come up during code generation.


Code Type Description
9100 Error JEAF Generator expects a specific version of the so called JEAF Meta Model (JMM). The JMM version that is used by your UML model seems to be outdated. Please upgrade to latest version of JMM.
9101 Warning When working with OpenAPI and REST there are some restrictions concerning the data types that can be used in Java. This warning tells you that in a specific REST operation a incompatible parameter or return type is used. This will lead to an invalid request / response from an OpenAPI perspective.
9102 Warning Depending on how you export XMI files from your MagicDraw UML model, it might happen that the files contain information about file systems paths. This should not be an issue on the machine where you exported the files. However, it may lead to problems on other devices or your CI/CD infrastructure where file system paths might not be the same.
9103 Warning When working with OpenAPI and REST there are some restrictions concerning the data types that can be used in Java. This warning tells you that in a defined «BeanParam» at least one property uses an incompatible type. This will lead to an invalid request / response from an OpenAPI perspective.
9104 Error When defining the path of a REST resource then the path that is defined on the «RESTResource» (not «RESTOperation») must start with a '/'.
9105 Error The resource path of an «RESTOperation» is the combination of the path of the «RESTResource» and the «RESTOperation». However at least one of them has to be defined.
9106 Error The path of a «RESTOperation» must not start with '/'.
9107 Error Each «RESTOperation» must define at least one HTTP method. If this message occurs then you have to fix your UML model.
9108 Error The «RESTOperation» uses a HTTP status code that is not compatible with JAX-RS standard.
9109 Error The supported consumed media types can either be defined on the «RESTResource» or on the «RESTOperation» but at least on one of them the information has to be defined.
9110 Error The produced media types can either be defined on the «RESTResource» or on the «RESTOperation» but at least on one of them the information has to be defined.
9111 Error All input parameters of a «RESTOperation» must have a name. Please fix the issue in your UML model.
9112 Error All input parameters that are not explicitly marked as «HeaderParam», «PathParam», «BeanParam» etc. are treated as body. However REST only supports one body per request. So please ensure that there is not more than 1 body per request.
9113 Error A «RESTOperation» defines a body parameter, however it’s HTTP method does not allow to use a body.
9114 Error It’s not allowed to have more than 1 global error response for an OpenAPI specification in an UML model.
9115 Error «OpenAPIResponse» types need to define exactly one response type
9116 Error «OpenAPIDataType» must have 1 property as long as they are not modeled as composite data types.
9117 Error «OpenAPIDataType» must only have primitive types of properties, as long as they are not modeled as composite data types.
9118 Error «OpenAPIDataType» must not have multi valued properties, as long as they are not modeled as composite data types.
9119 Error «OpenAPIDataType» must not have parent classes.
9120 Error When defining a «PathParam» for a «RESTOperation» it is required that path parameters are required.
9121 Error «PathParam» must not be defined as multi valued in the UML model.
9122 Warning It is strongly recommended that the elements of the UML model have a meaningful documentation ;-)
9123 Error When working with so called composite data types then inheritance is not supported for them.
9124 Error When modeling attributes in UML it is important that they also have a type. If a type is not defined then code generation is not possible.
9125 Error When modeling attributes and associations then it is required that they also have a type. If it is not defined then code generation is not possible.
9126 Error When modeling operations of services it is required that they also have a return type. Also case "void" has to be defined in UML model. In addition multi valued primitive types are not supported as return types.
9127 Error When modeling parameters of operations it is required that they also have a name. If there are input parameters without a name then code generation is not possible.
9128 Error When modeling methods also a return type is required not only for methods that really return something but also in case of void. If a method does not define a return type then code generation is not possible.
9129 Error When modeling method then they also have to have a name. Otherwise code generation is not possible.
9130 Error All parameters within the UML model need to have a type. Otherwise code generation is not possible.
9131 Error When modeling activities you have to ensure that each «JEAFActivity» does not have more than one return parameter.
9132 Error When modeling «JEAFComponents» you have to ensure that each component has defined a layer.
9133 Error Class that are modeled as «PersistentObject» must have a so called “class id” with a value greater zero.
9134 Error When modeling persistent classes and their associations it is required that either both ends of an association have applied stereotype «Role» or none of them.
9135 Error When modeling associations between classes then it is required that navigable associations ends have set a role name. Otherwise code generation is not possible.
9136 Error «ObjectMapping» is invalid according to the error message
9137 Error Minimum value for for Java Bean Validation «DecimalMin» is missing.
9138 Error For a specific Java Bean Validation a string-based or numeric target type is expected.
9139 Error Maximum value for for Java Bean Validation «DecimalMax» is missing.
9140 Error For a specific Java Bean Validation a numeric target type is expected.
9141 Error When working with Java Bean Validation «Digit» then the integral and fractional digits have to be defined properly.
9142 Error When working with Java Bean Validation «Digit» then the integral and fractional digits have to be defined properly.
9143 Error When working with Java Bean Validation «Size» then its minimal size has to be set properly.
9144 Error When working with Java Bean Validation «Size» then its maximum size has to be set properly.
9145 Error When working with Java Bean Validation «Size» maximum size has to be greater or equal to minimum size.
9146 Error When working with Java Bean Validation «Size» then at least minimum or maximum size has to be set.
9147 Error For a specific Java Bean Validation a String, Collection and Map target type is expected.
9148 Error When working with Java Bean Validation «Pattern» then a regexp pattern has to be set.
9149 Error For a specific Java Bean Validation a String target type is expected.
9150 Error For a specific Java Bean Validation a boolean target type is expected.
9151 Error For a specific Java Bean Validation a date target type is expected.
9152 Warning Special stereotype «Ignore» can be used to explicitly exclude model elements from code generation. However this mechanism is intended to be a workaround / short term solution and not a permanent one ;-).

Proper solution to this is to clean up your UML model. That’s why a warning is shown during code generation.
9153 Warning OpenAPI standard defines that for whatever reason some header fields should not be mentioned in the OpenAPI specification e.g. Authorization header. However from an overall perspective it still might make sense to explicitly model them e.g. if these fields are still required in Java code.
Putting it all together in very most cases this warning can be ignored and is only generated to emphasis that these headers did not get “forgotten” in generation of OpenAPI specification but are not added by intention.

For further details please also refer to https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.3.md#parameterObject
9154 Warning JEAF Generator supports to mark various elements in the UML model as deprecated. This information is also added to the generated code and OpenAPI specification.

However, there are cases where OpenAPI does not allow to mark an element as deprecated. Namely this is the case for single valued references to other complex types like a 0..1 associations to another object. In this case the generated Java code will still contain the deprecation but the OpenAPI specification will not have "deprecation: true". Instead only a comment inside the file is created.
9155 Error JAX-RS specification only allows to use java.util.List, java.util.Set or java.util.SortedSet for header params but not java.util.Collection. Please fix your UML model so that either List, Set or SortedSet is used for multi valued header fields.
9156 Error JAX-RS specification only allows to use java.util.List, java.util.Set or java.util.SortedSet for query params but not java.util.Collection. Please fix your UML model so that either List, Set or SortedSet is used for multi valued query params.
9157 Error JEAF Generator supports to also make the public representation of a composite data type visible internally. To do so, a property has to be marked with stereotype «CompositeDataTypePublicField». In addition it is required that the property is of type String.
9158 Error JEAF Generator supports so called soft links. They can be used to modularize your model without loosing information about real types. One possibility when using soft links is to use so called custom generic soft links. In this case you can define your own type that should be used to represent the soft link association. This type, however has to be configured in JEAF Generator Maven Plugin.
9159 Warning JEAF Generator supports so called OpenAPI Data Types. They can be used a strong type representation for basic types. For OpenAPI Data Types it is strongly recommended that they are immutable.
9160 Error And model element can either be marked with stereotype «POJO» or «ServiceObject» but not both of them a the same time.
9161 Warning If a model element is marked as deprecated also a description, a since  flag and the planned removal date of the deprecation should be provided so that consumers of the classes, services etc. can prepare.
9162 Error If a model element is marked as composite data type then a name for the public field representation is required to be set in the model.
9163 Warning In case that a class has one or more non-transient bidirectional associations it is not possible to generate equals() and hashCode() as it requires some business knowledge to do so. If equals() and hashCode() are required for such a class then it has to be implemented manually.
9164 Error JEAF Generator supports so called soft links. They can be used to modularize and decouple your application. Due to that it does not make sense to use them in combination with bidirectional associations.
9165 Error A REST operation path defines one or more path params but not all of them are also present as parameters in the defined REST operation
9166 Error A REST operation defines path parameters that are not defined on the operations paths as parameters
9167 Error JEAF Generator supports usage of so called Template Bindings in UML which are an equivalent to generics in Java. If a class makes usage of such a template binding then also a parameter substitution has to be defined in the UML model.
9168 Error JEAF Generator supports usage of so called Template Bindings in UML which are an equivalent to generics in Java. However in UML it is possible to define more than one template binding per class. This is currently not supported by JEAF Generator.
9169 Error Enumerations might have mandatory properties without default values. If an enumeration literal is defined in the UML model and not all mandatory properties without default value are set, then this error message will be used.
9170 Error Names of classes, enumerations, properties, parameters and operations must match to regular expression ^([a-zA-Z_$][a-zA-Z\\d_$]*)$ according to Java Language Specification.
This means:
* it has to start with an letter (lower or upper case), _ or $
* blanks are not allowed
* it may contain numbers but not at the beginning
9171 Error JEAF Generator supports to split a model into several OpenAPI specifications. If in such a case one OpenAPI specification refers to the types of another one, then a dependency between OpenAPI specs has to be defined in the UML model.

If you want you can disable this check using configuration parameter disableOpenAPIDependencyChecks. However, please be aware that not checking dependencies might lead to inconsistent or incorrect OpenAPI specifications.
9172 Error When working with OpenAPI specifications then all complex types that are used must belong to an OpenAPI specification.
Please make sure that OpenAPI types only use basic types or other OpenAPI types that belong to an OpenAPI specification (same or referenced one).
9173 Error JEAF Generator support developers with special code generation for backward compatibility for Java properties. Due to that tagged value generateBackwardCompatibility and successorName of stereotype «JEAFDeprecated» can only be used for properties.
9174 Error JEAF Generator support developers with special code generation for backward compatibility for Java properties. Therefore it is possible to define the successor of an already existing property. The name of the successor must match to a real property of the same class.
9175 Error JEAF Generator support developers with special code generation for backward compatibility for Java properties. Therefore it is possible to define the successor of an already existing property. The name of the successor must be set.
9176 Error JEAF Generator supports to generate NotNull / NotEmpty annotations based on the UML model information for properties and parameters. However, in Java there is no really default which annotatrion to use. So, JEAF Generator explicitly expects that the name of the annotation that should be used is defined in the Maven configuration.