Ошибка при индексации файлов PDF

Доброго дня!

В данный момент мы используем версию Jmix Studio 2.7.5. Дополнение Quartz + ElasticSearch. Версия org.apache.pdfbox 3.0.5. После загрузки pdf возникает исключение:

2026-05-21T09:50:00.063+03:00 ERROR 8028 — [eduler_Worker-7] org.quartz.core.ErrorLogger              : Job DEFAULT.IndexingQueueProcessing threw an exception.

org.quartz.core.JobExecutionProcessException: Job threw an unhandled exception [See nested exception: java.lang.NoSuchMethodError: ‘org.apache.pdfbox.pdmodel.PDDocument org.apache.pdfbox.pdmodel.PDDocument.load(java.io.InputStream, java.lang.String, org.apache.pdfbox.io.MemoryUsageSetting)’]
at org.quartz.core.JobRunShell.run(JobRunShell.java:212) ~[quartz-2.5.2.jar:2.5.2]
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:566) ~[quartz-2.5.2.jar:2.5.2]
Caused by: java.lang.NoSuchMethodError: ‘org.apache.pdfbox.pdmodel.PDDocument org.apache.pdfbox.pdmodel.PDDocument.load(java.io.InputStream, java.lang.String, org.apache.pdfbox.io.MemoryUsageSetting)’
at org.apache.tika.parser.pdf.PDFParser.getPDDocument(PDFParser.java:193) ~[tika-parsers-1.28.5.jar:1.28.5]
at org.apache.tika.parser.pdf.PDFParser.parse(PDFParser.java:152) ~[tika-parsers-1.28.5.jar:1.28.5]
at io.jmix.search.utils.FileProcessor.extractFileContent(FileProcessor.java:68) ~[jmix-search-2.7.6.jar:na]
at io.jmix.search.index.mapping.propertyvalue.impl.FilePropertyValueExtractor.addFileContent(FilePropertyValueExtractor.java:92) ~[jmix-search-2.7.6.jar:na]
at io.jmix.search.index.mapping.propertyvalue.impl.FilePropertyValueExtractor.processFileRef(FilePropertyValueExtractor.java:81) ~[jmix-search-2.7.6.jar:na]
at io.jmix.search.index.mapping.propertyvalue.impl.FilePropertyValueExtractor.transformSingleValue(FilePropertyValueExtractor.java:64) ~[jmix-search-2.7.6.jar:na]
at io.jmix.search.index.mapping.propertyvalue.impl.AbstractPropertyValueExtractor.processValue(AbstractPropertyValueExtractor.java:89) ~[jmix-search-2.7.6.jar:na]
at io.jmix.search.index.mapping.propertyvalue.impl.AbstractPropertyValueExtractor.getValue(AbstractPropertyValueExtractor.java:46) ~[jmix-search-2.7.6.jar:na]
at io.jmix.search.index.mapping.MappingFieldDescriptor.getValue(MappingFieldDescriptor.java:146) ~[jmix-search-2.7.6.jar:na]
at io.jmix.search.index.impl.BaseEntityIndexer.addFieldValueToEntityIndexContent(BaseEntityIndexer.java:302) ~[jmix-search-2.7.6.jar:na]
at io.jmix.search.index.impl.BaseEntityIndexer.lambda$generateIndexDocument$11(BaseEntityIndexer.java:289) ~[jmix-search-2.7.6.jar:na]
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[na:na]
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) ~[na:na]
at java.base/java.util.HashMap$ValueSpliterator.forEachRemaining(HashMap.java:1779) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[na:na]
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[na:na]
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[na:na]
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na]
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[na:na]
at io.jmix.search.index.impl.BaseEntityIndexer.generateIndexDocument(BaseEntityIndexer.java:289) ~[jmix-search-2.7.6.jar:na]
at io.jmix.search.index.impl.BaseEntityIndexer.indexGroupedInstances(BaseEntityIndexer.java:142) ~[jmix-search-2.7.6.jar:na]
at io.jmix.search.index.impl.BaseEntityIndexer.indexCollectionByEntityIds(BaseEntityIndexer.java:97) ~[jmix-search-2.7.6.jar:na]
at io.jmix.search.index.queue.impl.JpaIndexingQueueManager.processQueueItemsGroup(JpaIndexingQueueManager.java:525) ~[jmix-search-2.7.6.jar:na]
at io.jmix.search.index.queue.impl.JpaIndexingQueueManager.processQueueItems(JpaIndexingQueueManager.java:510) ~[jmix-search-2.7.6.jar:na]
at io.jmix.search.index.queue.impl.JpaIndexingQueueManager.processQueue(JpaIndexingQueueManager.java:470) ~[jmix-search-2.7.6.jar:na]
at io.jmix.search.index.queue.impl.JpaIndexingQueueManager.processNextBatch(JpaIndexingQueueManager.java:313) ~[jmix-search-2.7.6.jar:na]
at io.jmix.search.index.queue.impl.JpaIndexingQueueManager.processNextBatch(JpaIndexingQueueManager.java:308) ~[jmix-search-2.7.6.jar:na]
at io.jmix.autoconfigure.search.job.IndexingQueueProcessingJob.execute(IndexingQueueProcessingJob.java:36) ~[jmix-search-starter-2.7.6.jar:na]
at org.quartz.core.JobRunShell.run(JobRunShell.java:203) ~[quartz-2.5.2.jar:2.5.2]
… 1 common frames omitted

Поиск включаем по содержимому файлов. Вордовские читает без проблем, а с pdf вот такая история. Подскажите, пожалуйста, что можно попробовать с этим сделать?

Добрый день,

Эта проблема должна быть исправлена в Jmix 2.8.0.
Допустимо ли для вас обновление до последней версии 2.8.x?

С уважением,
Иван

Да. Тогда будем обновляться и по итогу сообщу о результатах. Спасибо за обратную связь!

После обновления ошибок нет! Спасибо