Copy link to clipboard
Copied
On Thursday, the error below began appearing after the last 2023 coldfusion update on my cfindex code that is atleast 10 years old. I found removing the .dot file extension from my extensions list stopped the error from occurring. However, .docx files will not index now.
I tried to uninstall the update 15, although this did not solve the error or the indexing issue
Message | com.zaxxer.sparsebits.SparseBitSet not found by poi-5.4.1 [36] |
StackTrace | java.lang.ClassNotFoundException: com.zaxxer.sparsebits.SparseBitSet not found by poi-5.4.1 [36] at org.apache.poi.xslf.usermodel.XSLFSheet.<init>(XSLFSheet.java:89) at org.apache.poi.xslf.usermodel.XSLFSlideMaster.<init>(XSLFSlideMaster.java:64) at org.apache.poi.ooxml.POIXMLFactory.createDocumentPart(POIXMLFactory.java:61) at org.apache.poi.ooxml.POIXMLDocumentPart.read(POIXMLDocumentPart.java:671) at org.apache.poi.ooxml.POIXMLDocument.load(POIXMLDocument.java:165) at org.apache.poi.xslf.usermodel.XMLSlideShow.<init>(XMLSlideShow.java:126) at coldfusion.tagext.search.MSDocument.readPPTX(MSDocument.java:206) at coldfusion.tagext.search.SolrUtils.getSolrDocument(SolrUtils.java:817) at coldfusion.tagext.search.SolrUtils.addDocument(SolrUtils.java:1439) at coldfusion.tagext.search.IndexTag.doUpdate(IndexTag.java:683) at coldfusion.tagext.search.IndexTag.doStartTag(IndexTag.java:352) at coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:5083) at cffile_index_intranet2ecfm1052529286.runPage(D:\tasks\file_index_intranet.cfm:38) at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:251) 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:613) 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:199) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) 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:168) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) 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.valves.RemoteIpValve.invoke(RemoteIpValve.java:762) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359) at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:447) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:935) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1826) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1189) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:658) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) at java.base/java.lang.Thread.run(Thread.java:833) |
I know the indexing was functioning correctly prior to the update. I have an application that compares directory files to indexed files daily. Missing indexed files generate a ticket in our ticketing system for my review. This ticket was generated the day after the update installation.
By @keith_6356
From your description of when the error occurred and from researching the POI namespace error online, I think it is caused by the library xmlbeans-5.3.0.jar. Update 15 introduced this new XmlB
...Keith, please now try to see if that remaining problem goes away with stopping cf, deleting the felix-cache folder (in cfusion/bin), then restarting cf.
Copy link to clipboard
Copied
Keith, I'm unaware of that being a known issue with update 15...but then again you found that in uninstalling that the problem remains. So the issue may or may not be about the specific "update" but rather about something amiss during your update process. I will elaborate. (Maybe someone else may know something about this .docx matter if it's a known one.)
1) First, though, can you just stop CF, delete the cfusion/bin/felix-cache folder, then start CF and test again? That has been a workaround for many recent problms people have experienced after an update. If that helps while you are on u14, THEN try going to u15 and after that update is done, REPEAT THAT STEP of deleting the felix-cache. For now, don't ask about it or contemplate whether it could/should help. 🙂 FWIW it's mentioned in some of the update technotes as a thing to do to solve "known issues".
If you'll just please try it and let us know how it goes, we can go to another step if it does NOT work.
2) And if "that didn't help", please then confirm for us a) are you doing the update within the CF Admin or via the command line (and the "java -jar" approach or using the cfpm tool)? Also b) what is the value in your CF Admin for the "packages url" (available via the the "settings" tab on the "package manager" page, where you can see CF updates). I can explain later, if needed, why I ask those questions.
Finally, c) did you confirm in your update log that there was a count of 0 for "fatalerrors" and "nonfatalerrors"? I elaborate on that last point in a post here. BTW, that log is created both for an install AND for an uninstall of any CF update.
There's still more I and others could share, but let's see how things go. Hope something above here helps you.
Copy link to clipboard
Copied
I googled this error and found posable solutions, In my test environment i tried
Refresh are being being done with cfindex command using a path in .cfm files with CF admin scheduled tasks
There are no errors in the log, it seems it is skipping over the files as if there were not included in the extensions.
Copy link to clipboard
Copied
Please consider and reply to point 2 in my initial reply here.
Also,. If you are saying you found other online discussions of your specific issue, please share links to any in case it could help others here, either facing or helping with this problem.
Finally, you mention deleting the jvm config. That's frankly a shocking idea, which I've never heard proposed. If you can share any link to a discussion suggesting that, I'd be very interested to know of it.
Copy link to clipboard
Copied
I thought you ment updating the collection, Yes I used the coldfusion admin to install updates.
There were just results in Goole AI, I'm sure they come from may feeds/forums,
Honestly, that idea surprised me too. It is a quick test. Remove the line if it does not work. There is no risk.
Copy link to clipboard
Copied
I met remove the file, if it dosen;t work, restore the file. no risk.
Copy link to clipboard
Copied
I did find an error WARNING: Could not index Y:\Repository\English\rmc_intranet\Information Technology\Documentation\How_to_remove_protective_view_excel.docx in SOLR. Check the exception for more details: Cannot resolve type for handle _XY_Q=space|R=space@http://www.w3.org/XML/1998/namespace (org.apache.poi.schemas.ooxml.system.ooxml.cttext7f5btype) - code 13
Copy link to clipboard
Copied
The error in your last post is related to the error you initially reported. It happens because ColdFusion is missing new versions of certain libraries. As a result it falls back on older libraries which are no longer valid.
Copy link to clipboard
Copied
@keithm99725152 , deleting jvm.config might have made the situation worse. Could you please share the contents of the current jvm.config file? Then we can all have a look and give you feedback if and where necessary.
My suggestion:
Copy link to clipboard
Copied
I restored jvm.config, re-installed update 15, No more packages available to install, tested still getting error, stopped application server, deleted felix-cache folder. restarted application server, tested again, still recievingsame error.
Copy link to clipboard
Copied
OK let's see whether you have that library. What do you get when you run the following code?
<cfscript>
obj=createobject("java","com.zaxxer.sparsebits.SparseBitSet");
writedump(obj.getClass().getProtectionDomain().getCodeSource().getLocation().getPath());
</cfscript>
Copy link to clipboard
Copied
C:/ColdFusion2023/bundles/repo/SparseBitSet-1.2.jar
Copy link to clipboard
Copied
Since that library is in your installation, it means the class com.zaxxer.sparsebits.SparseBitSet is there too. So there is likely something wrong with ColdFusion's classpath.
That takes us back to jvm.config. There might be a mistake in the settings there. Could you share the contents of /bin/jvm.config?
Copy link to clipboard
Copied
#
# VM configuration
#
# Where to find JVM, if {java.home}/jre exists then that JVM is used
# if not then it must be the path to the JRE itself
java.home=C:\\ColdFusion2023\\jre
#
# If no java.home is specified a VM is located by looking in these places in this
# order:
#
# 1) ../runtime/jre
# 2) registry (windows only)
# 3) JAVA_HOME env var plus jre (ie $JAVA_HOME/jre)
# 4) java.exe in path
#
# Arguments to VM
java.args=-server -Xms256m -Xmx4000m -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 --add-exports=java.desktop/sun.awt.image=ALL-UNNAMED --add-exports=java.desktop/sun.java2d=ALL-UNNAMED --add-exports=java.base/sun.util.calendar=ALL-UNNAMED --add-exports=java.desktop/sun.awt=ALL-UNNAMED --add-opens=java.base/java.time=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/sun.security.rsa=ALL-UNNAMED --add-opens=java.base/sun.security.pkcs=ALL-UNNAMED --add-opens=java.base/sun.security.x509=ALL-UNNAMED --add-opens=java.base/sun.security.util=ALL-UNNAMED --add-opens=java.base/java.security=ALL-UNNAMED --add-opens=java.base/sun.util.cldr=ALL-UNNAMED --add-opens=java.base/sun.util.locale.provider=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED -XX:+UseParallelGC -Djdk.attach.allowAttachSelf=true -Dcoldfusion.home={application.home} -Duser.language=en -Dcoldfusion.rootDir={application.home} -Dcoldfusion.libPath={application.home}/lib -Dorg.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER=true -Dcoldfusion.jsafe.defaultalgo=FIPS186Random -Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.JavaUtilLog -Djava.util.logging.config.file={application.home}/lib/logging.properties -Dtika.config=tika-config.xml -Djava.locale.providers=COMPAT,SPI -Dsun.font.layoutengine=icu -Dcom.sun.media.jai.disableMediaLib=true -Dcoldfusion.classPath={application.home}/lib/updates,{application.home}/lib/,{application.home}/gateway/lib/,{application.home}/wwwroot/WEB-INF/cfform/jars,{application.home}/bin/cf-osgicli.jar
# Comma separated list of shared library path
java.library.path={application.home}/lib,{application.home}/jintegra/bin,{application.home}/jintegra/bin/international
# Comma separated list of shared library path for non-windows
java.nixlibrary.path={application.home}/lib
java.class.path=
Copy link to clipboard
Copied
Hmm, it seems OK. I cannot see any obvious classpath issue. Anyway, I have attached an extended jvm.config sample for you to test with. As a "second opinion".
Steps:
Copy link to clipboard
Copied
Here are my java.args flags in one column, so you can easily check them:
# Arguments to VM
java.args=
-Xdebug
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
-server
--add-exports=java.desktop/sun.awt.image=ALL-UNNAMED
--add-exports=java.desktop/sun.java2d=ALL-UNNAMED
--add-exports=java.base/sun.security.tools.keytool=ALL-UNNAMED
--add-exports=java.base/sun.util.calendar=ALL-UNNAMED
--add-exports=java.desktop/sun.awt=ALL-UNNAMED
--add-opens=java.desktop/java.awt=ALL-UNNAMED
--add-opens=java.desktop/java.awt.image=ALL-UNNAMED
--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED
--add-opens=java.base/java.lang.ref=ALL-UNNAMED
--add-opens=java.base/java.time=ALL-UNNAMED
--add-opens=java.base/java.util=ALL-UNNAMED
--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
--add-opens=java.base/java.nio=ALL-UNNAMED
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/sun.security.rsa=ALL-UNNAMED
--add-opens=java.base/sun.security.pkcs=ALL-UNNAMED
--add-opens=java.base/sun.security.x509=ALL-UNNAMED
--add-opens=java.base/sun.security.util=ALL-UNNAMED
--add-opens=java.base/java.security=ALL-UNNAMED
--add-opens=java.base/sun.util.cldr=ALL-UNNAMED
--add-opens=java.base/sun.util.locale.provider=ALL-UNNAMED
--add-opens=java.base/java.net=ALL-UNNAMED
--add-opens=java.base/java.io=ALL-UNNAMED
--add-opens=java.base/java.util.concurrent=ALL-UNNAMED
--add-opens=jdk.attach/sun.tools.attach=ALL-UNNAMED
-Xms4096m
-Xmx4096m
-XX:+UseParallelGC
-Djdk.attach.allowAttachSelf=true
-Dcoldfusion.home={application.home}
-Djava.awt.headless=true
-Duser.language=en
-Dcoldfusion.rootDir={application.home}
-Dcoldfusion.classPath={application.home}/lib/updates,{application.home}/lib/,{application.home}/gateway/lib/,{application.home}/wwwroot/WEB-INF/cfform/jars,{application.home}/bin/cf-osgicli.jar
-Dcoldfusion.libPath={application.home}/lib
-Dorg.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER=true
-Dcoldfusion.jsafe.defaultalgo=FIPS186Random
-Dcoldfusion.disablejsafe=true
-Dcoldfusion.enablefipscrypto=true
-Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.JavaUtilLog
-Dtika.config=tika-config.xml
-Djava.locale.providers=COMPAT,SPI
-Dsun.font.layoutengine=icu
-Dcom.sun.media.jai.disableMediaLib=true
-Djdk.lang.Process.allowAmbiguousCommands=true
-Dcoldfusion.datasource.blocked.properties=allowLoadLocalInfile,allowUrlInLocalInfile,autoDeserialize
-Dcoldfusion.number.allowdotsuffix=true
-Dlog4j2.formatMsgNoLookups=true
-Dcoldfusion.searchimplicitscopes=true
-Dcoldfusion.iframe.allowedprotocols=file,ftp
-Dcoldfusion.mail.oauth2=true
-Dcom.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize=true
-Dcoldfusion.xml.allowPathCharacters=true
-Djava.util.logging.config.file={application.home}/lib/logging.properties
-Duser.region=us
-Dfile.encoding=UTF-8
-Djdk.util.zip.disableZip64ExtraFieldValidation=true
-Dcoldfusion.datemask.useDasdayofmonth=true
-Duser.timezone=UTC
-Djdk.tls.client.protocols=TLSv1.2,TLSv1.3
-Dhttps.protocols=TLSv1.2,TLSv1.3
Copy link to clipboard
Copied
Still getting the same error
Cannot resolve type for handle _XY_Q=space|R=space@http://www.w3.org/XML/1998/namespace (org.apache.poi.schemas.ooxml.system.ooxml.cttext7f5btype) - code 13
Copy link to clipboard
Copied
Keith, I realize you may suspect still this is some bug in cf, but I still would contend you should confirm if there was not some failure in the update process.
I'd raised multiple diagnostic questions in my first reply. You've still not answered 2b and 2c. Please take time to do that, as it seems you're not getting to resolution with the other back and forth you guys have been having since then.
I have more for you/us to consider if that doesn't find the problem. Let's go one step at a time.
Copy link to clipboard
Copied
2) And if "that didn't help", please then confirm for us a) are you doing the update within the CF Admin or via the command line (and the "java -jar" approach or using the cfpm tool)?
Answer: update within the CF Admin
Also b) what is the value in your CF Admin for the "packages url" (available via the the "settings" tab on the "package manager" page, where you can see CF updates). I can explain later, if needed, why I ask those questions.
Copy link to clipboard
Copied
Ketih, I'd asked you to answer 2b and 2c, yet you answered specifically 2a and 2b. You'd answered 2a (and only that) in your first reply to me that day.
2c will be the most important to consider, for the reasons I laid out that day and reiterated today: if there was an error in the update process, everything else is "spinning wheels in the mud".
Let's confirm there's not this root cause problem first. If not, the there's more we can consider.
Copy link to clipboard
Copied
Finally, c) did you confirm in your update log that there was a count of 0 for "fatalerrors" and "nonfatalerrors"? I elaborate on that last point in a post here. BTW, that log is created both for an install AND for an uninstall of any CF update.
Answer: I search the server.log during the time of the update, there were no errors or warnings until 5 hours later when indexing kicked off. there were no indexing errors before the update.
Copy link to clipboard
Copied
The server log is not what I proposed you look at.
Copy link to clipboard
Copied
Installation: Successful.
584 Successes
0 Warnings
0 NonFatalErrors
0 FatalErrors
Copy link to clipboard
Copied
Hi @keithm99725152 , The way I now see it, something went wrong during a previous uninstallation/installation of an update. An error might have resulted in up-to-date packages being deleted unintentionally.
Let's look into how to resolve such a problem, starting from the beginning. What does this produce:
<cfoutput>#Server.ColdFusion.ProductVersion#</cfoutput>
Copy link to clipboard
Copied
Nope, BKBK. I was literally JUST about to post new info (confirming his bug), but I thought to refresh the page to see if anyone added a new comment. It seems almost always that while I am writing a longer reply, someone slips in with a shorter one. 🙂 I've been working the past couple hours on what I am about to share, which I will offer in a moment, as a reply to Keith's last response to me. I think/hope it will show up here after yours (and now this one of mine).
Find more inspiration, events, and resources on the new Adobe Community
Explore Now