ClassNotFoundException: net.sourceforge.cobertura.coveragedata.TouchCollector
Brought to you by:
jahlborn
It seems that Cobertura is a runtime dependency as of jackcess-encrypt-2.1.2.
When using jackess-encrypt-2.1.2.jar to read an MDB file (via Solr + Tika), I get the following stacktrace:
Caused by: java.lang.NoClassDefFoundError: net/sourceforge/cobertura/coveragedata/TouchCollector
at com.healthmarketscience.jackcess.CryptCodecProvider.__cobertura_init(CryptCodecProvider.java)
at com.healthmarketscience.jackcess.CryptCodecProvider.<clinit>(CryptCodecProvider.java)
at org.apache.tika.parser.microsoft.JackcessParser.parse(JackcessParser.java:92)
at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280)
at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280)
at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:120)
at org.apache.solr.handler.extraction.ExtractingDocumentLoader.load(ExtractingDocumentLoader.java:228)
at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:68)
at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:173)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:2477)
at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:723)
at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:529)
This issue has also been reported at
https://stackoverflow.com/questions/44680958/reading-encrypted-access-mdb-using-jackcess-throwing-code-coverage-exceptions
and
https://stackoverflow.com/questions/44681232/using-jackcess-encrypt-causes-noclassdeffounderror-exception-for-cobertura
As a work-around, using version 2.1.1 works for me, instead of adding cobertura to my classpath.
It'd be better if Cobertura wasn't a runtime dependency.
Hmm, must have been a bad release!
Hopefully fixed now in the 2.1.3 release.
That did the trick. Thanks for the quick turn around!