In spring shell 3.x an option @Option(longName = "test", description = "some description") String test was null when not specified. In spring shell 4.x it is an empty string "". That breaks old behavior and seems to be counter intuitive for me. I assume it is a bug. If that is wanted behavior feel free to close this issue.