Server.log filling up with message “http://apache.org/xml/features/disallow-doctype-decl”
August 12, 2026
Server.log filling up with message “http://apache.org/xml/features/disallow-doctype-decl”
August 12, 2026
Followers: 0 people

Since migrating to CF 2025, our server.log has recorded entries like this everytime we run a cfindex with action update:

“Error”,”ajp-nio-127.0.0.1-8024-exec-26″,”07/26/26″,”03:40:19″,””,”http://apache.org/xml/features/disallow-doctype-decl”

These are simple collections populated by queries, and the number of log entries are far greater than the number of collection items. For example, our daily re-index of several collections totalling <10K items generates over 40K log entries. Despite these errors, the collections are updating.

Neither the debugging nor exception.log entries (redacted sample below) are pointing us to solutions. This issue has persisted through Updates 9-11. Is anyone else experiencing this problem?

“Error”,”ajp-nio-127.0.0.1-8024-exec-29″,”08/03/26″,”14:25:11″,””,”http://apache.org/xml/features/disallow-doctype-decl”
org.xml.sax.SAXNotRecognizedException: http://apache.org/xml/features/disallow-doctype-decl
at org.cyberneko.html.parsers.DOMFragmentParser.setFeature(DOMFragmentParser.java:249)
at coldfusion.tagext.search.HTMLParser.configureSecureDOMFragmentParser(HTMLParser.java:200)
at coldfusion.tagext.search.HTMLParser.<init>(HTMLParser.java:83)
at coldfusion.tagext.search.IndexTag.doQueryUpdate(IndexTag.java:878)
at coldfusion.tagext.search.IndexTag.doStartTag(IndexTag.java:346)
at coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:4949)
at cfspider_seminararchives22ecfm777662127._factor20(D:inetpubwwwroot…:372)
at cfspider_seminararchives22ecfm777662127.runPage(D:inetpubwwwroot…:1)
at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:222)
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:606)
at coldfusion.filter.CspFilter.invoke(CspFilter.java:24)
at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:43)
at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40)
at coldfusion.filter.PathFilter.invoke(PathFilter.java:155)
at coldfusion.filter.IpFilter.invoke(IpFilter.java:45)
at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:87)
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:233)
at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:273)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:138)
at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:46)
at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:42)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:138)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:165)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:88)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:113)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:83)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:72)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:354)
at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:448)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:1272)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1797)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:973)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:491)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
at java.base/java.lang.Thread.run(Thread.java:1583)
All Comments
Sort by:  Most Recent
2026-08-12 13:53:16
2026-08-12 13:53:16

Pete, while it’s of course frustrating to experience such an error, solving it sometimes takes detective work. I suspect you’ve searched for references and found none. And since you say the problem remains in updates 9-11 (and perhaps 12,which came out yesterday), it seems you’re regarding this as a bug that you hoped some cf update would eventually fix.

But let’s consider it instead as something being the result of a change introduced by some update. As you may know, most cf updates address security concerns, and some remove functionality (sacrificing compatibility for security), while at the same time offering a jvm arg that can be added to cf to reverse that changed behavior (sacrificing security for compatibility).

Indeed, multiple updates to cf2025 and cf2023 have done that. There is a page for each of those listing them:

https://guides.adobe.com/coldfusion/en/docs/install-and-configure-coldfusion/jvm-arguments-coldfusion-2025.html

https://guides.adobe.com/coldfusion/en/docs/install-and-configure-coldfusion/new-jvm-arguments-2023-2021-coldfusion-updates.html

But in reviewing that list, none may be obvious (none are said to affect cfindex, but several relate to xml–as your error refers to). 

In that case, surmising which arg may affect you depends on knowing when this cfindex behavior last worked for you. So when it did, were you on cf2023? 2021? And either way, what update level? Some changes “happening when moving to  cf2025” would have happened “in cf2023”–but only if you’d kept it updated. People often work on servers where no one was keeping cf updated.

So for example (and perhaps this will be a workaround for you), update 3 of cf2025 (and update 15 of cf2023) introduced a change that could result in the error you see, though it’s not so obvious that it would. (I discussed it in my blog post on the update last year.)

Can you try adding:

-Dcoldfusion.xml.allowExternalEntities=true

to the end of your java.args line in the jvm.config file in your cf instance (likely in coldfusion2025/cfusion/bin. Save off a copy of the file before changing it). And don’t add this as a new line, but at the end of all values on that java.args line, with a space separating it from others. Save the file (keeping it open), then restart cf.

If cf won’t start, you made some mistake in adding that arg (thus my two warnings, and also why I proposed you keep the file open). Worst case, recover using the file copy you’d made. 

Does that fix it? If so, that’s “good news”, that the error stops. But again you’ve removed a protection Adobe had added for your good. Am I saying leave it at this? No. The point here is that if you confirm this fixes it, you can also dig into what xml is at issue…whether something you’re processing or that Cf itself (or the solr engine underlying cfindex) may be.

And at least if it’s the latter, you or Adobe can dig into what that’s about, that was sensitive to this change. And yes, maybe they will then see it as a bug to be fixed.

I know this ws a lot to read. You likely just want a solution, not a sermon or theories. Again, we can’t KNOW this will fix things. That’s why I’d asked when things last worked for you. And I shared the rest to help you or others here in narrowing down the problem and solution.

Please let us know if you try this. 

Like
()