Recently I found myself writing some code that needed to leverage StartupStep, and found the explicit end() call to result in some painful handling. While I could (and in hindsight probably should) create a PR without an issue to do this, figured it would be better to check if the following change to StartupStep would be welcome.

public interface StartupStep extends AutoCloseable {
// Note, all the other methods have been removed for brevity, only the changes are shown.
    void end();

        @Override
        default void close() throws Exception {
             this.end();
        } 
}

This would let the following code work,

public void customPostProcessing(SomeBeanInstance bean, ApplicationStartup startup) {
    try(var step = startup.start(bean.getName())) {
         step.tag("myTag", "myValue");
         dostuff(bean);
    } catch (CustomException ce) { ... }
}

Where before if you wanted to call end() and handle exceptions, you'd have to ensure the StartupStep's scope would work for that.