Skip to content

Commit 96e5c8b

Browse files
committed
Minor streamlining
1 parent b7d9dfe commit 96e5c8b

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

src/main/java/com/fasterxml/jackson/databind/introspect/POJOPropertiesCollector.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -644,24 +644,21 @@ protected void _addCreators(Map<String, POJOPropertyBuilder> props)
644644
final PotentialCreators creators = _potentialCreators;
645645

646646
// First, resolve explicit annotations for all potential Creators
647-
// (but do NOT filter out DISABLED ones yet!)
647+
// (note: will skip ones annotated as DISABLED)
648648
List<PotentialCreator> constructors = _collectCreators(_classDef.getConstructors());
649649
List<PotentialCreator> factories = _collectCreators(_classDef.getFactoryMethods());
650650

651-
final PotentialCreator canonical;
652-
653-
// Find and mark "canonical" constructor for Records.
651+
// Then find and mark the "canonical" constructor (if one exists):
652+
// for Java Records and potentially other types too ("data classes":
654653
// Needs to be done early to get implicit names populated
654+
final PotentialCreator canonical;
655655
if (_isRecordType) {
656656
canonical = JDK14Util.findCanonicalRecordConstructor(_config, _classDef, constructors);
657657
} else {
658658
canonical = _annotationIntrospector.findCanonicalCreator(_config, _classDef,
659659
constructors, factories);
660660
}
661661

662-
// Next: remove creators marked as explicitly disabled
663-
_removeDisabledCreators(constructors);
664-
_removeDisabledCreators(factories);
665662
// And then remove non-annotated static methods that do not look like factories
666663
_removeNonFactoryStaticMethods(factories, canonical);
667664

@@ -762,7 +759,10 @@ private List<PotentialCreator> _collectCreators(List<? extends AnnotatedWithPara
762759
for (AnnotatedWithParams ctor : ctors) {
763760
JsonCreator.Mode creatorMode = _useAnnotations
764761
? _annotationIntrospector.findCreatorAnnotation(_config, ctor) : null;
765-
result.add(new PotentialCreator(ctor, creatorMode));
762+
// 06-Jul-2024, tatu: Let's immediately drop ones marked for ignoral
763+
if (creatorMode != JsonCreator.Mode.DISABLED) {
764+
result.add(new PotentialCreator(ctor, creatorMode));
765+
}
766766
}
767767
return (result == null) ? Collections.emptyList() : result;
768768
}

0 commit comments

Comments
 (0)