Обновление версии Apache Tika вызывает ClassCastException

#java #scala #apache-tika #tika-server

#java #scala #apache-tika #tika-сервер

Вопрос:

Я борюсь с проблемой (веб-проект Java / Scala с Gradle), потому что мне нужно обновить версию apache tika как минимум до версии 1.22 с 1.19.1(в предыдущей версии есть уязвимости в системе безопасности). Но когда я пытаюсь изменить версию (даже на более низкую версию), я получаю исключение

 org.osgi.framework.BundleException: The activator org.apache.tika.config.TikaActivator for bundle org.apache.tika.core is invalid
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:172)
    at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:679)
    at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:390)
    at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1176)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:438)
    at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:1)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)
Caused by: java.lang.ClassCastException: org.apache.tika.config.TikaActivator cannot be cast to org.osgi.framework.BundleActivator
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:167)
    ... 12 common frames omitted
  

Я не использую какой-либо файл конфигурации, я обновил только библиотеку (исключение создается внутри библиотеки, у меня в stacktrace нет ничего, относящегося к моему коду). Зависимости версий tika различны, основной проблемой является org.osgi:обновление org.osgi.core с 4.0.0 до 6.0.0. Я заставил в gradle использовать версию 4.0.0 в проекте, и я получил сообщение об ошибке, что org.osgi.framework.Не найден класс BundleActivator. Разница между классами в соответствии с документацией заключается в дополнительной аннотации @ConsumerType. Я думаю, что это вызывает проблему. Есть ли какой-либо способ решить это?

Комментарии:

1. От каких артефактов Apache Tika вы зависите? Какую платформу OSGi вы используете?

2. OSGi framweork — Equinox, у меня больше нет зависимостей от tika, кроме tika-core

3. Я провел некоторое исследование, и если я использую org.osgi.core версии 4.0.0 (которая находится в tika-core до 1.20) вместо 6.0.0, я получаю, что class BundleActivator не найден. В их документации я вижу, что разница между классами из версий 4 и 6 различается одной аннотацией @ConsumerType. Возможно ли, что это вызывает это исключение?