diff --git a/src/main/java/com/fasterxml/jackson/databind/introspect/POJOPropertiesCollector.java b/src/main/java/com/fasterxml/jackson/databind/introspect/POJOPropertiesCollector.java index e90ae2f62d..18d1cae2a8 100644 --- a/src/main/java/com/fasterxml/jackson/databind/introspect/POJOPropertiesCollector.java +++ b/src/main/java/com/fasterxml/jackson/databind/introspect/POJOPropertiesCollector.java @@ -713,6 +713,9 @@ protected void _addCreators(Map props) } // Anything else left, add as possible implicit Creators + // ... but first, trim non-visible + _removeNonVisibleCreators(constructors); + _removeNonVisibleCreators(factories); creators.setImplicitDelegating(constructors, factories); // And finally add logical properties for the One Properties-based @@ -765,6 +768,17 @@ private void _removeDisabledCreators(List ctors) } } + private void _removeNonVisibleCreators(List ctors) + { + Iterator it = ctors.iterator(); + while (it.hasNext()) { + PotentialCreator ctor = it.next(); + if (!_visibilityChecker.isCreatorVisible(ctor.creator())) { + it.remove(); + } + } + } + private void _removeNonFactoryStaticMethods(List ctors) { final Class rawType = _type.getRawClass();