Seems there are more issues with that patch. I've ...
# adobe
a
Seems there are more issues with that patch. I've got a client with some ACF 2018 servers that after installing it, they get this: java.lang.NoSuchMethodError: coldfusion.runtime.CFPage.XmlSearch(Lcoldfusion/xml/XmlNodeList;Ljava/lang/String;)Ljava/lang/Object; when code hits
XmlSearch
Copy code
"Error","ajp-nio-127.0.0.1-8018-exec-26","10/11/22","20:05:55",<appname>,"coldfusion.runtime.CFPage.XmlSearch(Lcoldfusion/xml/XmlNodeList;Ljava/lang/String;)Ljava/lang/Object; The specific sequence of files included or processed is: \\<ip>\<filepath>, line: 34 "
java.lang.NoSuchMethodError: coldfusion.runtime.CFPage.XmlSearch(Lcoldfusion/xml/XmlNodeList;Ljava/lang/String;)Ljava/lang/Object;
	at <somecfc>$func<SOMEFUNCTION>.runFunction(\\<ip>\<filepath>:34)
	at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:554)
	at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
	at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:485)
	at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:448)
	at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:95)
	at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:399)
	at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:372)
	at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:288)
	at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:830)
	at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:613)
	at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:438)
	at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:3627)
	at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:3604)
	at cfApplication2ecfc5656677$funcONAPPLICATIONSTART.runFunction(<Application.cfc>:5545)
	at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:554)
	at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:485)
	at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:448)
	at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:95)
	at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:399)
	at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:372)
	at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:288)
	at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:830)
	at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:613)
	at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:438)
	at coldfusion.runtime.AppEventInvoker.invoke(AppEventInvoker.java:115)
	at coldfusion.runtime.AppEventInvoker.onApplicationStart(AppEventInvoker.java:238)
	at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:418)
	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:96)
	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:226)
	at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:311)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
	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:189)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at com.intergral.fusionreactor.j2ee.filterchain.WrappedFilterChain.doFilter(WrappedFilterChain.java:134)
	at com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.doNext(FusionReactorRequestHandler.java:764)
	at com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.doHttpServletRequest(FusionReactorRequestHandler.java:344)
	at com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.doFusionRequest(FusionReactorRequestHandler.java:207)
	at com.intergral.fusionreactor.j2ee.filter.FusionReactorRequestHandler.handle(FusionReactorRequestHandler.java:801)
	at com.intergral.fusionreactor.j2ee.filter.FusionReactorCoreFilter.doFilter(FusionReactorCoreFilter.java:36)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at com.intergral.fusionreactor.j2ee.filterchain.WrappedFilterChain.doFilter(WrappedFilterChain.java:71)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at com.intergral.fusionreactor.agent.filter.FusionReactorStaticFilter.doFilter(FusionReactorStaticFilter.java:54)
	at com.intergral.fusionreactor.agent.pointcuts.NewFilterChainPointCut$1.invoke(NewFilterChainPointCut.java:42)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:377)
	at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:463)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743)
	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:834)
s
Is this one of those cases where you need to delete the contents of the
cfclasses
folder because compiled classes are incompatible across versions?
p
@seancorfield you are right. We did some change in XML signature and that needs clearing of compiled classes. We did test this scenario before the release and it was working as expected however, we are testing again to verify whether it is clearing the classes while applying the update in CF2018. In CF2021, it is working just fine.
👍🏻 1
👍 1
s
Binary compatibility is a pain 🙂
👍 3
a
Oh boy, Thanks for the slack cfml community. I couldn't able to found the solution on google search. Here are the steps to fix the problem: 1 - Stop the Coldfusion 2018 Application Server from Services.msc 2 - Move or Delete all files from C:\ColdFusion2018\cfusion\wwwroot\WEB-INF\cfclasses 3 - Start the server again from Services.msc 4 - Run you application via browser and everything gets back to normal. 🙌 P.S. Your path may be different.
s
Also: uncheck Save class files in the Admin -- which would prevent this from happening and can improve performance on large apps (because have tens of thousands of class files in that flat folder can cause file system access slowness). Note: not a problem on Lucee because it stores class files in a tree structure, not a flat directory!
👍 1
m
Is the disabling of class file saving considered safe for production servers or is your advice for non-prod systems only?
s
@Marc Funaro Yes, that advice is for production servers. And that advice came to me from Tom Jordahl on the CF team back in the Macromedia days. He was actually surprised to learn that it defaulted to ON!
m
Nice - got bit by this little issue today on our prod servers, even though the same update went through four other non-prod servers first (where saving class files must be turned off...)