【问题标题】:Upgrade Lucene from 6.6.2 to 8.2.0 in Apache Geode 1.9.0在 Apache Geode 1.9.0 中将 Lucene 从 6.6.2 升级到 8.2.0
【发布时间】:2019-09-22 13:12:35
【问题描述】:

我需要在 Apache Geode 版本 1.9.0 中将 lucene 核心依赖项从版本 6.6.2 升级到 8.2.0。在启用 lucene 索引的 Geode 中加载数据时,只需删除旧的 lucene 核心依赖项并添加 lucene 8.2.0 依赖项就会出现以下错误。

[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)         

我能得到一些帮助吗?

【问题讨论】:

    标签: java spring-boot lucene geode gfsh


    【解决方案1】:

    您手动将 Geode 内部使用的库版本从 6.x 更改为 8.x,这是一次重大升级,可能涉及一些非向后兼容性更改,这就是您收到此异常的原因:手动更改您无法控制的框架的库版本是一种非常糟糕(通常不受支持)的做法,特别是没有先测试这些更改。

    我建议通过GEODE JIRA site 开一张请求此改进的票。

    干杯。

    【讨论】:

      【解决方案2】:

      在主要版本发布后,最后的代码可能会正常工作,因为代码是使用旧 API 编写的,您必须向代码维护人员提出同样的要求。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-14
        • 1970-01-01
        相关资源
        最近更新 更多