Весенний сеанс Hazelcast SubZero (Kryo) EntryBackupProcessorImpl NullPointerException проблема - PullRequest
0 голосов
/ 20 марта 2019

Я использую hazelcast-3.11.2 и SubZero-0.9 в качестве глобального сериализатора.Я пытаюсь настроить Spring Session, используя пример .Когда у меня есть более одного узла в кластере - я получаю следующее исключение при попытке получить идентификатор сеанса:

2019-03-20 15: 01: 59.088 ОШИБКА 13635 --- [ration.thread-3] chmioperation.EntryBackupOperation: [xxxx]: 5701 [hazelcast-group] [3.11.2] null

java.lang.NullPointerException: пусто в com.hazelcast.map.AbstractEntryProcessor $ EntryBackupProcessorImplorProcess.Process.Java: 83) в com.hazelcast.map.impl.operation.EntryOperator.process (EntryOperator.java:314) в com.hazelcast.map.impl.operation.EntryOperator.operateOnKeyValueInternal (EntryOperator.java:181) в com.hazz.map.impl.operation.EntryOperator.operateOnKey (EntryOperator.java:166) в com.hazelcast.map.impl.operation.EntryBackupOperation.run (EntryBackupOperation.java:60) в com.hazelcast.spi.impl.operationservice..operations.Backup.run (Backup.java:158) на com.hazelcast.spi.Operation.call (Operation.java:170) на com.hazelcast.spi.impl.operationservice.impl.OperationRunnerImpl.call (ОперацияionRunnerImpl.java:208) в com.hazelcast.spi.impl.operationservice.impl.OperationRunnerImpl.run (OperationRunnerImpl.java:197) в com.hazelcast.spi.impl.operationservice.impl.OperationRunnerImplIunl413) в com.hazelcast.spi.impl.operationexecutor.impl.OperationThread.process (OperationThread.java:153) в com.hazelcast.spi.impl.operationexecutor.impl.OperationThread.process (OperationThread.java:123) в com.hazelcast.spi.impl.operationexecutor.impl.OperationThread.run (OperationThread.java:110)

Моя конфигурация экземпляра выглядит следующим образом:

@Configuration
@EnableHazelcastHttpSession
public class HazelcastSessionConfig extends AbstractHttpSessionApplicationInitializer {

    @Bean
    public HazelcastInstance hazelcastInstance() {
        Config config = new Config();
        SubZero.useAsGlobalSerializer(config);
        MapAttributeConfig attributeConfig = new MapAttributeConfig()
                .setName(HazelcastSessionRepository.PRINCIPAL_NAME_ATTRIBUTE)
                .setExtractor(PrincipalNameExtractor.class.getName());


        config.getMapConfig(HazelcastSessionRepository.DEFAULT_SESSION_MAP_NAME)
                .addMapAttributeConfig(attributeConfig)
                .addMapIndexConfig(new MapIndexConfig(
                        HazelcastSessionRepository.PRINCIPAL_NAME_ATTRIBUTE, false));
        return Hazelcast.newHazelcastInstance(config);
    }
}

Удаление SubZero из конфигурации, удаляет исключение, поэтому похоже, что это проблема SubZero.Я также использую этот экземпляр в качестве провайдера своего кэша и кэш второго уровня гибернации, поэтому я не могу избавиться от SubZero.

Мои мысли были:

  1. Наличие двух разныхкластеры: один для кеша, другой для сессии.Не работайте для меня, так как я не знаю, как настроить Spring Session для использования конкретного экземпляра Hazelcast (имя экземпляра или сам бин и т. Д.)

  2. Укажите, какие классы следует использоватьс SubZero - но так как у меня есть много и новые классы будут добавлены - это не лучшая идея

Буду признателен за любую помощь.

...