I'm trying to move a Tapestry app to the cloud, and came across this confounding error. I'm running Tomcat 7 and JDK 7 on CentOS. The war file works fine in my lab running on a bare metal CentOS 6.5 box, but when I run it in the cloud (RackSpace) on CentOS 6.7 or 7.2 (my only CentOS options), it blows up, showing me this error in the browser:
type Exception report message Unable to locate class file for 'com.sixbuilder.ui.pages.ExceptionReport' in class load org.apache.tapestry5.internal.plastic.PlasticClassLoader@25f5298. What's weird is that during Tapestry boot-up, it lists the ExceptionReport as being an available resource, so obviously it can find the class. The ExceptionReport is a special page to be displayed when an un-handled exception is thrown in the UI. Which brings me to the other weird thing, which is that Tapestry was trying to display the ExceptionReport page as a result of a null pointer exception, which should never have been thrown in the first place. At that time it's trying to convert a Set of files to a List of files, and I can see that the directory that is being listed clearly has files, so the NPE should never have been thrown. Other parts of the app were able to access the local file system before this exception is thrown, so it's not a simple file permissions issue. At this point the only thing I can think of is that Tapestry is somehow not liking the virtualized server. Has anyone encountered this? The entire stack trace: [ERROR] pages.Home Render queue error in Expansion[PropBinding[expansion Home(LastMaintenanceCompletionDate)]]: org.apache.tapestry5.ioc.internal.util.TapestryException org.apache.tapestry5.ioc.internal.util.TapestryException [at classpath:com/sixbuilder/ui/pages/Home.tml, line 375] at org.apache.tapestry5.internal.bindings.PropBinding.get(PropBinding.java:65) at org.apache.tapestry5.internal.structure.ExpansionPageElement.render(ExpansionPageElement.java:45) at org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:72) at org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:124) at $PageRenderQueue_96598da390b9.render(Unknown Source) at $PageRenderQueue_96598da390b8.render(Unknown Source) at org.apache.tapestry5.internal.services.MarkupRendererTerminator.renderMarkup(MarkupRendererTerminator.java:37) at com.sixbuilder.ui.services.AppModule$2.renderMarkup(AppModule.java:171) at $MarkupRenderer_96598da390bf.renderMarkup(Unknown Source) at org.apache.tapestry5.services.TapestryModule$30.renderMarkup(TapestryModule.java:1977) at $MarkupRenderer_96598da390bf.renderMarkup(Unknown Source) at org.apache.tapestry5.services.TapestryModule$29.renderMarkup(TapestryModule.java:1959) at $MarkupRenderer_96598da390bf.renderMarkup(Unknown Source) at org.apache.tapestry5.services.TapestryModule$28.renderMarkup(TapestryModule.java:1944) at $MarkupRenderer_96598da390bf.renderMarkup(Unknown Source) at org.apache.tapestry5.services.TapestryModule$27.renderMarkup(TapestryModule.java:1930) at $MarkupRenderer_96598da390bf.renderMarkup(Unknown Source) at org.got5.tapestry5.jquery.services.js.JSModule$1.renderMarkup(JSModule.java:40) at $MarkupRenderer_96598da390bf.renderMarkup(Unknown Source) at com.trsvax.bootstrap.services.BootstrapModule$2.renderMarkup(BootstrapModule.java:197) at $MarkupRenderer_96598da390bf.renderMarkup(Unknown Source) at org.apache.tapestry5.services.TapestryModule$26.renderMarkup(TapestryModule.java:1912) at $MarkupRenderer_96598da390bf.renderMarkup(Unknown Source) at org.apache.tapestry5.services.TapestryModule$25.renderMarkup(TapestryModule.java:1893) at $MarkupRenderer_96598da390bf.renderMarkup(Unknown Source) at com.trsvax.bootstrap.services.BootstrapModule$1.renderMarkup(BootstrapModule.java:188) at $MarkupRenderer_96598da390bf.renderMarkup(Unknown Source) at $MarkupRenderer_96598da390b7.renderMarkup(Unknown Source) at org.apache.tapestry5.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:47) at $PageMarkupRenderer_96598da390b5.renderPageMarkup(Unknown Source) at org.apache.tapestry5.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:67) at $PageResponseRenderer_96598da39018.renderPageResponse(Unknown Source) at org.apache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:64) at org.apache.tapestry5.services.TapestryModule$38.handle(TapestryModule.java:2221) at $PageRenderRequestHandler_96598da3901a.handle(Unknown Source) at $PageRenderRequestHandler_96598da39014.handle(Unknown Source) at org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handlePageRender(ComponentRequestHandlerTerminator.java:48) at org.apache.tapestry5.services.InitializeActivePageName.handlePageRender(InitializeActivePageName.java:47) at $ComponentRequestHandler_96598da39015.handlePageRender(Unknown Source) at $ComponentRequestHandler_96598da38fd3.handlePageRender(Unknown Source) at org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:45) at $Dispatcher_96598da38fd6.dispatch(Unknown Source) at $Dispatcher_96598da38fcf.dispatch(Unknown Source) at org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:302) at org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26) at $RequestHandler_96598da38fd0.service(Unknown Source) at org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:902) at $RequestHandler_96598da38fd0.service(Unknown Source) at org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:892) at $RequestHandler_96598da38fd0.service(Unknown Source) at org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:90) at $RequestHandler_96598da38fd0.service(Unknown Source) at com.sixbuilder.ui.services.AppModule$1.service(AppModule.java:136) at $RequestFilter_96598da38fca.service(Unknown Source) at $RequestHandler_96598da38fd0.service(Unknown Source) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:105) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:96) at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:119) at $RequestHandler_96598da38fd0.service(Unknown Source) at $RequestHandler_96598da38fc2.service(Unknown Source) at org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:253) at org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53) at $HttpServletRequestHandler_96598da38fc4.service(Unknown Source) at org.got5.tapestry5.jquery.services.AjaxUploadServletRequestFilter.service(AjaxUploadServletRequestFilter.java:26) at $HttpServletRequestHandler_96598da38fc4.service(Unknown Source) at org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44) at $HttpServletRequestHandler_96598da38fc4.service(Unknown Source) at org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) at $HttpServletRequestFilter_96598da38fc0.service(Unknown Source) at $HttpServletRequestHandler_96598da38fc4.service(Unknown Source) at org.apache.tapestry5.services.TapestryModule$1.service(TapestryModule.java:852) at $HttpServletRequestHandler_96598da38fc4.service(Unknown Source) at $HttpServletRequestHandler_96598da38fbd.service(Unknown Source) at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:171) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.NullPointerException at java.util.Objects.requireNonNull(Objects.java:203) at java.util.Arrays$ArrayList.<init>(Arrays.java:3813) at java.util.Arrays.asList(Arrays.java:3800) at com.sixbuilder.datatypes.jobhistory.JobHistoryManager.getJobHistoryRecords(JobHistoryManager.java:429) at com.sixbuilder.datatypes.jobhistory.JobHistoryManager.getLastSuccessfulCompletedRecord(JobHistoryManager.java:362) at com.sixbuilder.ui.base.MyPage.getLastMaintenanceCompletionDate(MyPage.java:913) at $InternalPropertyConduit_96598da39134.get(Unknown Source) at org.apache.tapestry5.internal.bindings.PropBinding.get(PropBinding.java:61) ... 91 more [ERROR] TapestryModule.RequestExceptionHandler Processing of request failed with uncaught exception: Render queue error in Expansion[PropBinding[expansion Home(LastMaintenanceCompletionDate)]]: org.apache.tapestry5.ioc.internal.util.TapestryException org.apache.tapestry5.internal.services.RenderQueueException: Render queue error in Expansion[PropBinding[expansion Home(LastMaintenanceCompletionDate)]]: org.apache.tapestry5.ioc.internal.util.TapestryException [at classpath:com/sixbuilder/ui/pages/Home.tml, line 375] at org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:81) at org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:124) at $PageRenderQueue_96598da390b9.render(Unknown Source) at $PageRenderQueue_96598da390b8.render(Unknown Source) at org.apache.tapestry5.internal.services.MarkupRendererTerminator.renderMarkup(MarkupRendererTerminator.java:37) at com.sixbuilder.ui.services.AppModule$2.renderMarkup(AppModule.java:171) at $MarkupRenderer_96598da390bf.renderMarkup(Unknown Source) at org.apache.tapestry5.services.TapestryModule$30.renderMarkup(TapestryModule.java:1977) at $MarkupRenderer_96598da390bf.renderMarkup(Unknown Source) at org.apache.tapestry5.services.TapestryModule$29.renderMarkup(TapestryModule.java:1959) at $MarkupRenderer_96598da390bf.renderMarkup(Unknown Source) at org.apache.tapestry5.services.TapestryModule$28.renderMarkup(TapestryModule.java:1944) at $MarkupRenderer_96598da390bf.renderMarkup(Unknown Source) at org.apache.tapestry5.services.TapestryModule$27.renderMarkup(TapestryModule.java:1930) at $MarkupRenderer_96598da390bf.renderMarkup(Unknown Source) at org.got5.tapestry5.jquery.services.js.JSModule$1.renderMarkup(JSModule.java:40) at $MarkupRenderer_96598da390bf.renderMarkup(Unknown Source) at com.trsvax.bootstrap.services.BootstrapModule$2.renderMarkup(BootstrapModule.java:197) at $MarkupRenderer_96598da390bf.renderMarkup(Unknown Source) at org.apache.tapestry5.services.TapestryModule$26.renderMarkup(TapestryModule.java:1912) at $MarkupRenderer_96598da390bf.renderMarkup(Unknown Source) at org.apache.tapestry5.services.TapestryModule$25.renderMarkup(TapestryModule.java:1893) at $MarkupRenderer_96598da390bf.renderMarkup(Unknown Source) at com.trsvax.bootstrap.services.BootstrapModule$1.renderMarkup(BootstrapModule.java:188) at $MarkupRenderer_96598da390bf.renderMarkup(Unknown Source) at $MarkupRenderer_96598da390b7.renderMarkup(Unknown Source) at org.apache.tapestry5.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:47) at $PageMarkupRenderer_96598da390b5.renderPageMarkup(Unknown Source) at org.apache.tapestry5.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:67) at $PageResponseRenderer_96598da39018.renderPageResponse(Unknown Source) at org.apache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:64) at org.apache.tapestry5.services.TapestryModule$38.handle(TapestryModule.java:2221) at $PageRenderRequestHandler_96598da3901a.handle(Unknown Source) at $PageRenderRequestHandler_96598da39014.handle(Unknown Source) at org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handlePageRender(ComponentRequestHandlerTerminator.java:48) at org.apache.tapestry5.services.InitializeActivePageName.handlePageRender(InitializeActivePageName.java:47) at $ComponentRequestHandler_96598da39015.handlePageRender(Unknown Source) at $ComponentRequestHandler_96598da38fd3.handlePageRender(Unknown Source) at org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:45) at $Dispatcher_96598da38fd6.dispatch(Unknown Source) at $Dispatcher_96598da38fcf.dispatch(Unknown Source) at org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:302) at org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26) at $RequestHandler_96598da38fd0.service(Unknown Source) at org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:902) at $RequestHandler_96598da38fd0.service(Unknown Source) at org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:892) at $RequestHandler_96598da38fd0.service(Unknown Source) at org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:90) at $RequestHandler_96598da38fd0.service(Unknown Source) at com.sixbuilder.ui.services.AppModule$1.service(AppModule.java:136) at $RequestFilter_96598da38fca.service(Unknown Source) at $RequestHandler_96598da38fd0.service(Unknown Source) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:105) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:96) at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:119) at $RequestHandler_96598da38fd0.service(Unknown Source) at $RequestHandler_96598da38fc2.service(Unknown Source) at org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:253) at org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53) at $HttpServletRequestHandler_96598da38fc4.service(Unknown Source) at org.got5.tapestry5.jquery.services.AjaxUploadServletRequestFilter.service(AjaxUploadServletRequestFilter.java:26) at $HttpServletRequestHandler_96598da38fc4.service(Unknown Source) at org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44) at $HttpServletRequestHandler_96598da38fc4.service(Unknown Source) at org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) at $HttpServletRequestFilter_96598da38fc0.service(Unknown Source) at $HttpServletRequestHandler_96598da38fc4.service(Unknown Source) at org.apache.tapestry5.services.TapestryModule$1.service(TapestryModule.java:852) at $HttpServletRequestHandler_96598da38fc4.service(Unknown Source) at $HttpServletRequestHandler_96598da38fbd.service(Unknown Source) at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:171) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) Caused by: org.apache.tapestry5.ioc.internal.util.TapestryException [at classpath:com/sixbuilder/ui/pages/Home.tml, line 375] at org.apache.tapestry5.internal.bindings.PropBinding.get(PropBinding.java:65) at org.apache.tapestry5.internal.structure.ExpansionPageElement.render(ExpansionPageElement.java:45) at org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:72) ... 89 more Caused by: java.lang.NullPointerException at java.util.Objects.requireNonNull(Objects.java:203) at java.util.Arrays$ArrayList.<init>(Arrays.java:3813) at java.util.Arrays.asList(Arrays.java:3800) at com.sixbuilder.datatypes.jobhistory.JobHistoryManager.getJobHistoryRecords(JobHistoryManager.java:429) at com.sixbuilder.datatypes.jobhistory.JobHistoryManager.getLastSuccessfulCompletedRecord(JobHistoryManager.java:362) at com.sixbuilder.ui.base.MyPage.getLastMaintenanceCompletionDate(MyPage.java:913) at $InternalPropertyConduit_96598da39134.get(Unknown Source) at org.apache.tapestry5.internal.bindings.PropBinding.get(PropBinding.java:61) ... 91 more [ERROR] ioc.Registry Unable to locate class file for 'com.sixbuilder.ui.pages.ExceptionReport' in class loader org.apache.tapestry5.internal.plastic.PlasticClassLoader@25f5298. [ERROR] ioc.Registry Operations trace: [ERROR] ioc.Registry [ 1] Constructing instance of page class com.sixbuilder.ui.pages.ExceptionReport [ERROR] ioc.Registry [ 2] Creating ComponentAssembler for com.sixbuilder.ui.pages.ExceptionReport [ERROR] ioc.Registry [ 3] Creating instantiator for component class com.sixbuilder.ui.pages.ExceptionReport