Here's a simple use case:

@ConfigurationPropertiesSource
public class BaseType {

    /**
     * Name to use.
     */
    private String name = "test";

    private final Inner inner = new Inner();

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Inner getInner() {
        return this.inner;
    }

    public static class Inner {

        /**
         * Some smart description
         */
        private int counter = 42;

        public int getCounter() {
            return this.counter;
        }

        public void setCounter(int counter) {
            this.counter = counter;
        }
    }
}

If we extend in another module from BaseType, something like

@ConfigurationProperties("example")
public class ExampleType extends BaseType { ...}

Then the inner properties are not documented. To make this work, we need to annotate Inner with @ConfigurationPropertiesSource as well. That's a bit confusing as we do this automatically for configuration properties.

When fixing this, there are a number of classes that should be updated, for instance org.springframework.boot.http.client.autoconfigure.reactive.AbstractClientHttpConnectorProperties.