I have found two critical bugs related to the upgrade to Adobe ColdFusion 2023. All of these bugs are new to CF2023 and did not exist with CF2016 through CF2021. Both of these bugs are critical, however, with the first bug below, there are some workarounds.



Error: java.lang.ClassNotFoundException: org.hibernate.HibernateException not found by orm

This bug appears after a brief period of time after the application is installed and ORM is configured on a new CF2021 server with the 4th update is installed. It is deceptive as everything is running fine and dandy when it shows up. You can eliminate the error after restarting the ColdFusion server, but after a brief period of time, it will show up again. 

However, there are a few workarounds found in the Adobe Bug Tracker for ticket CF-4218706. Some of the workarounds included reinstalling ColdFusion and removing the performance manager from ColdFusion, but success using these methods was spotty. In the bug tracker ticket, Ashudeep S suggested using the following workaround- this workaround was successful with a lot of folks, including me.


  1. Go to the <cfusion>/lib directory and open the exportpackages.txt file.
  2. Remove the  _javax.persistence_ entry. 
  3. Save the file.
  4. Restart the ColdFusion server 

Full stack trace:


java.lang.ClassNotFoundException: org.hibernate.HibernateException not found by orm [125]
at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1591)
at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79)
at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1976)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
at coldfusion.orm.hibernate.ConfigurationManager.initConfiguration(ConfigurationManager.java:68)
at coldfusion.orm.hibernate.HibernateProvider.initializeORMForApplication(HibernateProvider.java:168)
at coldfusion.orm.hibernate.HibernateProvider.beforeApplicationStart(HibernateProvider.java:77)
at coldfusion.filter.ApplicationFilter.fireBeforeAppStartEvent(ApplicationFilter.java:819)
at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:433)
at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:43)
at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40)
at coldfusion.filter.PathFilter.invoke(PathFilter.java:162)
at coldfusion.filter.IpFilter.invoke(IpFilter.java:45)
at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:97)
at coldfusion.filter.BrowserDebugFilter.invoke(BrowserDebugFilter.java:81)
at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:60)
at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62)
at coldfusion.CfmServlet.service(CfmServlet.java:231)
at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:311)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:46)
at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:47)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at coldfusion.inspect.weinre.MobileDeviceDomInspectionFilter.doFilter(MobileDeviceDomInspectionFilter.java:57)
at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:47)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:373)
at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:459)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:833)

Error: The CacheManager has been shut down. It can no longer be used.


Important Update April 2024

This bug appears to be fixed using ColdFusion version 2023.0.07.330663


Original Bug

This bug may potentially be related to the workaround that I used to overcome the org.hibernate.HibernateException error found above. However, it is difficult to diagnose as both of these bugs do not immediately occur. However, I am consistently getting this particular bug after a short period of time when I use anything related to native ColdFusion caching or when using the ColdFusion security functions. For example, in ColdFusion 2023 updater 4, this occurs whenever I use the cfcache tag, and also occurs when using any of the functions used for authentication, such as using GetAuthUser() or when using other security functions such as isUserInRole. I suspect that this may be related to ColdFusion ORM as CF ORM uses EHCache as a secondary caching provider.

This particular bug also has raised its head with ColdFusion 10 and 11. Adobe had a nearly identical bug ticket and provided a hotfix that addressed this issue with CF 11, so hopefully there can be a quick resolution for this issue.

I submitted a ColdFusion bug for this issue. See https://tracker.adobe.com/#/view/CF-4219346


Full Stack Trace:


The CacheManager has been shut down. It can no longer be used.
 
The error occurred in C:/inetpub/wwwroot/gregoryalexander.com/blog/index.cfm: line 191
189 : </cfsilent>
190 : 
191 : <cfcache action="cache" key="#cacheKey#" stripwhitespace="#application.minimizeCode#" usequerystring="true" useCache="#useCache#" expireURL="#application.baseUrl#/includes/flushCache.cfm">
192 : 	<cfinclude template="#application.baseUrl#/includes/templates/footerHtml.cfm" />
193 : </cache>

Stack Trace
at cfindex2ecfm127566324.runPage(C:/inetpub/wwwroot/gregoryalexander.com/blog/index.cfm:191)

java.lang.IllegalStateException: The CacheManager has been shut down. It can no longer be used.
	at net.sf.ehcache.CacheManager.checkStatus(CacheManager.java:1610)
	at net.sf.ehcache.CacheManager.getCache(CacheManager.java:1142)
	at coldfusion.cache.ehcache.GenericEhcache._getCache(GenericEhcache.java:432)
	at coldfusion.cache.ehcache.GenericEhcache.getCache(GenericEhcache.java:349)
	at coldfusion.cache.ehcache.GenericEhcache.get(GenericEhcache.java:136)
	at coldfusion.tagext.io.cache.CacheTagHelper.checkFromTemplateCache(CacheTagHelper.java:102)
	at coldfusion.tagext.io.cache.CacheTag.checkTemplatecache(CacheTag.java:695)
	at coldfusion.tagext.io.cache.CacheTag.doStartTag(CacheTag.java:618)
	at coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:5088)
	at cfindex2ecfm127566324.runPage(C:inetpubwwwrootgregoryalexander.comlogindex.cfm:191)
	at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:257)
	at coldfusion.tagext.lang.IncludeTag.handlePageInvoke(IncludeTag.java:749)
	at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:578)
	at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)
	at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:573)
	at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:43)
	at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40)
	at coldfusion.filter.PathFilter.invoke(PathFilter.java:162)
	at coldfusion.filter.IpFilter.invoke(IpFilter.java:45)
	at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:97)
	at coldfusion.filter.BrowserDebugFilter.invoke(BrowserDebugFilter.java:81)
	at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
	at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
	at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:60)
	at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
	at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
	at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62)
	at coldfusion.CfmServlet.service(CfmServlet.java:231)
	at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:311)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:46)
	at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:47)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at coldfusion.inspect.weinre.MobileDeviceDomInspectionFilter.doFilter(MobileDeviceDomInspectionFilter.java:57)
	at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:47)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:373)
	at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:459)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.base/java.lang.Thread.run(Thread.java:833)