I stumbled upon one case where HeuristicPojoProcessor can cause this.  In
visitEnd(), it tests separately whether an implementation has services,
references, or properties (as determined by previous introspectors).  If an
implementation has services but no references or properties, it will fall
into calcPropRefs() which will turn unannotated setters into properties.

One would think that the first thing HeuristicPojoProcessor.visitEnd()
should do is

  if (!type.getServices().isEmpty() || !type.getReferenceMembers().isEmpty()
|| !type.getPropertyMembers().isEmpty())
      return;

If all 3 are empty, then it can do its thing.

But visitEnd() also calls evaluateConstructor() in 2 places, including when
it knows there are references or properties.  I'm not sure why it's trying
to evaluate constructors in an annotated POJO.

Greg

Reply via email to