@@ -768,6 +768,24 @@ public Version version() {
768
768
public ObjectMapper registerModule (Module module )
769
769
{
770
770
_assertNotNull ("module" , module );
771
+ // Let's ensure we have access to name and version information,
772
+ // even if we do not have immediate use for either. This way we know
773
+ // that they will be available from beginning
774
+ String name = module .getModuleName ();
775
+ if (name == null ) {
776
+ throw new IllegalArgumentException ("Module without defined name" );
777
+ }
778
+ Version version = module .version ();
779
+ if (version == null ) {
780
+ throw new IllegalArgumentException ("Module without defined version" );
781
+ }
782
+
783
+ // [databind#2432]: Modules may depend on other modules; if so, register those first
784
+ for (Module dep : module .getDependencies ()) {
785
+ registerModule (dep );
786
+ }
787
+
788
+ // then module itself
771
789
if (isEnabled (MapperFeature .IGNORE_DUPLICATE_MODULE_REGISTRATIONS )) {
772
790
Object typeId = module .getTypeId ();
773
791
if (typeId != null ) {
@@ -782,24 +800,6 @@ public ObjectMapper registerModule(Module module)
782
800
}
783
801
}
784
802
}
785
-
786
- /* Let's ensure we have access to name and version information,
787
- * even if we do not have immediate use for either. This way we know
788
- * that they will be available from beginning
789
- */
790
- String name = module .getModuleName ();
791
- if (name == null ) {
792
- throw new IllegalArgumentException ("Module without defined name" );
793
- }
794
- Version version = module .version ();
795
- if (version == null ) {
796
- throw new IllegalArgumentException ("Module without defined version" );
797
- }
798
-
799
- // [databind#2432]: Modules may depend on other modules; if so, register those first
800
- for (Module dep : module .getDependencies ()) {
801
- registerModule (dep );
802
- }
803
803
804
804
// And then call registration
805
805
module .setupModule (new Module .SetupContext ()
0 commit comments