升级java.lang.IllegalAccessError时出现Ignite 2.7问题:尝试访问字段org.h2.util.LocalDateTimeUtils.LOCAL_DATE

时间:2019-01-09 19:28:19

标签: ignite

在升级到ignite 2.7时,我们遇到了这个问题,这在ignite即将启动某些自定义缓存时会发生。

2019-01-09 19:28:04.260 UTC [SERVER] [exchange-worker-#38%fdap%] [ERROR] [,] ROOT - Critical system error detected. Will be handled accordingly to configured handler [hnd=StopNodeOrHaltFailureHandler [tryStop=false, timeout=0, super=AbstractFailureHandler [ignoredFailureTypes=[SYSTEM_WORKER_BLOCKED]]], failureCtx=FailureContext [type=SYSTEM_WORKER_TERMINATION, err=java.lang.IllegalAccessError: tried to access field org.h2.util.LocalDateTimeUtils.LOCAL_DATE from class o.a.i.i.processors.query.h2.H2DatabaseType]]
java.lang.IllegalAccessError: tried to access field org.h2.util.LocalDateTimeUtils.LOCAL_DATE from class org.apache.ignite.internal.processors.query.h2.H2DatabaseType
    at org.apache.ignite.internal.processors.query.h2.H2DatabaseType.fromClass(H2DatabaseType.java:147)
    at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.dbTypeFromClass(IgniteH2Indexing.java:2972)
    at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.createTable(IgniteH2Indexing.java:2873)
    at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.registerType(IgniteH2Indexing.java:2809)
    at org.apache.ignite.internal.processors.query.GridQueryProcessor.registerCache0(GridQueryProcessor.java:1633)
    at org.apache.ignite.internal.processors.query.GridQueryProcessor.onCacheStart0(GridQueryProcessor.java:805)
    at org.apache.ignite.internal.processors.query.GridQueryProcessor.onCacheStart(GridQueryProcessor.java:866)
    at org.apache.ignite.internal.processors.cache.GridCacheProcessor.startCache(GridCacheProcessor.java:1330)
    at org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheStart(GridCacheProcessor.java:2165)
    at org.apache.ignite.internal.processors.cache.GridCacheProcessor.startCachesOnLocalJoin(GridCacheProcessor.java:2023)
    at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.initCachesOnLocalJoin(GridDhtPartitionsExchangeFuture.java:924)
    at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.init(GridDhtPartitionsExchangeFuture.java:766)
    at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body0(GridCachePartitionExchangeManager.java:2667)
    at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:2539)

同一张https://issues.apache.org/jira/browse/IGNITE-10612也有一张票,将解决该问题还是提供有关如何解决此问题的发行指南。

请帮助...

2 个答案:

答案 0 :(得分:2)

通过放置

<properties>
    <h2.version>1.4.197</h2.version>
</properties>

致力于解决此问题。 因为h2的默认值为1.4.199,这可能会导致其他异常。您也必须覆盖它。

答案 1 :(得分:1)

您确定您具有正确的H2依赖版本吗?对于AI 2.7,它应该是com.h2database h2 1.4.197而不是其他任何值。您发布的错误是链接错误,这是由于类路径中的库版本不正确而引起的。