When a customer tries cf push an app that is built with Spring Boot 1.4.0 + Embedded Tomcat 8.5.4, it fails.
cf logs APP_NAME --recent shows the following error message:
2017-05-09T03:24:15.08-0400 [APP/PROC/WEB/0]OUT 2017-05-09 07:24:15.081 INFO 14 --- [ main] o.apache.catalina.core.StandardService : Starting service Tomcat 2017-05-09T03:24:15.08-0400 [APP/PROC/WEB/0]OUT 2017-05-09 07:24:15.086 INFO 14 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.4 2017-05-09T03:24:15.18-0400 [APP/PROC/WEB/0]OUT 2017-05-09 07:24:15.180 WARN 14 --- [ost-startStop-1] org.apache.catalina.webresources.Cache : Unable to add the resource at [/WEB-INF/lib/aws-java-sdk-kms-1.11.119.jar] to the cache because there was insufficient free space available after evicting expired cache entries - consider increasing the maximum size of the cache 2017-05-09T03:24:15.33-0400 [APP/PROC/WEB/0]OUT 2017-05-09 07:24:15.329 WARN 14 --- [ost-startStop-1] org.apache.catalina.webresources.Cache : Unable to add the resource at [/WEB-INF/lib/aws-java-sdk-kms-1.11.119.jar] to the cache because there was insufficient free space available after evicting expired cache entries - consider increasing the maximum size of the cache 2017-05-09T03:24:15.69-0400 [APP/PROC/WEB/0]OUT 2017-05-09 07:24:15.686 ERROR 14 --- [cat-startStop-1] org.apache.catalina.core.ContainerBase : A child container failed during start 2017-05-09T03:24:15.69-0400 [APP/PROC/WEB/0]OUT java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]
This is caused by a resource caching bug in Spring Boot 1.4.0 with Embedded Tomcat 8.5.4.
This bug would be triggered whenever there is a .class or .jar file under /WEB-INF/lib/.
More details of this bug can be found here.
The bug was fixed in Tomcat 8.5.5 (which is included in Spring Boot 1.4.1), so use Spring Boot 1.4.1 to rebuilt the app and cf push again.