This is a port of the following commit, adapted for Java 8+: https://github.com/spring-projects/spring-framework/commit/89396ff01ff159aa7df18e332f3888cf9ce3dc20