Обновите Lucene с 6.6.2 до 8.2.0 в Apache Geode 1.9.0

Мне нужно обновить основные зависимости lucene с версии 6.6.2 до версии 8.2.0 в Apache Geode версии 1.9.0. Простое удаление старых зависимостей ядра lucene и добавление зависимости lucene 8.2.0 дает мне следующую ошибку при загрузке данных в Geode с включенным индексом lucene.

[warn 2019/09/21 14:54:57.395 GMT <Pooled Waiting Message Processor 9> tid=0x62] Task failed with exception                                     
java.lang.AbstractMethodError: org.apache.lucene.store.Directory.getPendingDeletions()Ljava/util/Set;                                           
        at org.apache.lucene.index.IndexFileDeleter.<init>(IndexFileDeleter.java:212)                                                         
        at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:898)                                                                     
        at org.apache.geode.cache.lucene.internal.IndexRepositoryFactory.finishComputingRepository(IndexRepositoryFactory.java:123)             
        at org.apache.geode.cache.lucene.internal.IndexRepositoryFactory.computeIndexRepository(IndexRepositoryFactory.java:66)                 
        at org.apache.geode.cache.lucene.internal.PartitionedRepositoryManager.computeRepository(PartitionedRepositoryManager.java:148)         
        at org.apache.geode.cache.lucene.internal.PartitionedRepositoryManager.lambda$computeRepository$1(PartitionedRepositoryManager.java:167)
        at java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1853)                                                          
        at org.apache.geode.cache.lucene.internal.PartitionedRepositoryManager.computeRepository(PartitionedRepositoryManager.java:159)         
        at org.apache.geode.cache.lucene.internal.LuceneBucketListener.lambda$afterPrimary$0(LuceneBucketListener.java:40)                      
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)                                                      
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)                                                      
        at org.apache.geode.distributed.internal.ClusterDistributionManager.runUntilShutdown(ClusterDistributionManager.java:960)               
        at org.apache.geode.distributed.internal.ClusterDistributionManager.doWaitingThread(ClusterDistributionManager.java:850)                
        at org.apache.geode.internal.logging.LoggingThreadFactory.lambda$newThread$0(LoggingThreadFactory.java:121)                             
        at java.lang.Thread.run(Thread.java:748)         

Могу я получить помощь?

2 ответа

После основного выпуска последний код может работать, поскольку код написан с использованием старого API, вы должны попросить то же самое у разработчиков кода.

Вы вручную меняете версию библиотеки, используемой Geode внутри компании, с 6.x к 8.x, это серьезное обновление и, вероятно, связано с некоторыми изменениями, не связанными с обратной совместимостью, поэтому вы получаете это исключение: это действительно плохая (и обычно не поддерживаемая) практика вручную изменять версии библиотеки фреймворка, который вы не контролируете, особенно без предварительного тестирования этих изменений.

Я предлагаю открыть заявку на это улучшение через сайт GEODE JIRA.

Ура.

Другие вопросы по тегам