Infinispan Error on Windows Server 2019 (DescriptorParserException)

Viewed 152

I encounter the following stacktrace when I run my app on windows server 2019 with infinispan cache enable (it's working fine on linux) :

org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.infinispan.manager.DefaultCacheManager]: Factory method 'defaultCacheManager' threw exception; nested exception is org.infinispan.commons.CacheException: Unable to construct a GlobalComponentRegistry!
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
    at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:620)
    ... 145 more
Caused by: org.infinispan.commons.CacheException: Unable to construct a GlobalComponentRegistry!
    at org.infinispan.factories.GlobalComponentRegistry.<init>(GlobalComponentRegistry.java:173)
    at org.infinispan.manager.DefaultCacheManager.<init>(DefaultCacheManager.java:267)
    at org.infinispan.manager.DefaultCacheManager.<init>(DefaultCacheManager.java:234)
    at com.myapp.dsi.service.config.CacheConfiguration.defaultCacheManager(CacheConfiguration.java:186)
    at com.myapp.dsi.service.config.CacheConfiguration$$EnhancerBySpringCGLIB$$e52c9d72.CGLIB$defaultCacheManager$2(<generated>)
    at com.myapp.dsi.service.config.CacheConfiguration$$EnhancerBySpringCGLIB$$e52c9d72$$FastClassBySpringCGLIB$$25a6cc05.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:363)
    at com.myapp.dsi.service.config.CacheConfiguration$$EnhancerBySpringCGLIB$$e52c9d72.defaultCacheManager(<generated>)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
    ... 146 more
Caused by: org.infinispan.commons.CacheConfigurationException: Error starting component org.infinispan.marshall.protostream.impl.SerializationContextRegistry
    at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:555)
    at org.infinispan.factories.impl.BasicComponentRegistryImpl.access$700(BasicComponentRegistryImpl.java:30)
    at org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:770)
    at org.infinispan.factories.impl.BasicComponentRegistryImpl.startDependencies(BasicComponentRegistryImpl.java:605)
    at org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:569)
    at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:547)
    at org.infinispan.factories.impl.BasicComponentRegistryImpl.access$700(BasicComponentRegistryImpl.java:30)
    at org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:770)
    at org.infinispan.factories.impl.BasicComponentRegistryImpl.startDependencies(BasicComponentRegistryImpl.java:605)
    at org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:569)
    at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:547)
    at org.infinispan.factories.impl.BasicComponentRegistryImpl.access$700(BasicComponentRegistryImpl.java:30)
    at org.infinispan.factories.impl.BasicComponentRegistryImpl$ComponentWrapper.running(BasicComponentRegistryImpl.java:770)
    at org.infinispan.factories.impl.BasicComponentRegistryImpl.findFactory(BasicComponentRegistryImpl.java:258)
    at org.infinispan.factories.impl.BasicComponentRegistryImpl.getComponent0(BasicComponentRegistryImpl.java:127)
    at org.infinispan.factories.impl.BasicComponentRegistryImpl.getComponent(BasicComponentRegistryImpl.java:65)
    at org.infinispan.factories.impl.BasicComponentRegistry.getComponent(BasicComponentRegistry.java:74)
    at org.infinispan.factories.GlobalComponentRegistry.<init>(GlobalComponentRegistry.java:166)
    ... 159 more
Caused by: org.infinispan.protostream.DescriptorParserException: Failed to resolve type of field "org.infinispan.persistence.commons.MediaType.tree". Type not found : string
    at org.infinispan.protostream.descriptors.FileDescriptor.resolveFieldTypes(FileDescriptor.java:307)
    at org.infinispan.protostream.descriptors.FileDescriptor.resolveDependencies(FileDescriptor.java:217)
    at org.infinispan.protostream.descriptors.FileDescriptor.resolveDependencies(FileDescriptor.java:173)
    at org.infinispan.protostream.descriptors.ResolutionContext.resolve(ResolutionContext.java:57)
    at org.infinispan.protostream.impl.SerializationContextImpl.registerProtoFiles(SerializationContextImpl.java:117)
    at org.infinispan.commons.marshall.PersistenceContextInitializerImpl.registerSchema(PersistenceContextInitializerImpl.java:44)
    at org.infinispan.marshall.persistence.impl.PersistenceContextInitializerImpl.registerSchema(PersistenceContextInitializerImpl.java:70)
    at org.infinispan.marshall.protostream.impl.SerializationContextRegistryImpl$MarshallerContext.lambda$update$0(SerializationContextRegistryImpl.java:123)
    at org.infinispan.marshall.protostream.impl.SerializationContextRegistryImpl$MarshallerContext$$Lambda$587/0000000000000000.accept(Unknown Source)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
    at org.infinispan.marshall.protostream.impl.SerializationContextRegistryImpl$MarshallerContext.update(SerializationContextRegistryImpl.java:122)
    at org.infinispan.marshall.protostream.impl.SerializationContextRegistryImpl.lambda$start$0(SerializationContextRegistryImpl.java:42)
    at org.infinispan.marshall.protostream.impl.SerializationContextRegistryImpl$$Lambda$586/0000000000000000.accept(Unknown Source)
    at org.infinispan.marshall.protostream.impl.SerializationContextRegistryImpl.update(SerializationContextRegistryImpl.java:86)
    at org.infinispan.marshall.protostream.impl.SerializationContextRegistryImpl.start(SerializationContextRegistryImpl.java:35)
    at org.infinispan.marshall.protostream.impl.CorePackageImpl$1.start(CorePackageImpl.java:33)
    at org.infinispan.marshall.protostream.impl.CorePackageImpl$1.start(CorePackageImpl.java:27)
    at org.infinispan.factories.impl.BasicComponentRegistryImpl.invokeStart(BasicComponentRegistryImpl.java:587)
    at org.infinispan.factories.impl.BasicComponentRegistryImpl.doStartWrapper(BasicComponentRegistryImpl.java:578)
    at org.infinispan.factories.impl.BasicComponentRegistryImpl.startWrapper(BasicComponentRegistryImpl.java:547)
    ... 176 more 

You can see below my defaultCacheManager implementation:

 @Bean(destroyMethod = "stop")
    @Conditional(InfinispanCondition.class)
    public DefaultCacheManager defaultCacheManager(Set<InfinispanCacheConfigurer> configurers,
            @Value("${uwp.deployment.external-ip:#{null}}") String externalIp) throws Exception {
        Default properties = cacheProperties.getDefault();

        ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
        // @formatter:off
        configurationBuilder
                .statistics().enabled(properties.isStatisticsEnabled())
                .memory()
                    .evictionType(properties.getEvictionType()).size(properties.getEvictionSize())
                .expiration()
                    .lifespan(properties.getExpirationLifetime().toMillis())
                    .maxIdle(properties.getExpirationMaxIdle().toMillis());
        if (properties.isPersistenceEnabled()) {
            configurationBuilder.persistence()
                    .passivation(properties.isPersistencePassivationEnabled())
                    .addSingleFileStore()
                    .purgeOnStartup(properties.isPersistencePurgeOnStartup())
                    .maxEntries(properties.getPersistenceMaxEntries())
                    .location(System.getProperty("java.io.tmpdir") + "/wap-caches");
        }
        // @formatter:on

        GlobalConfigurationBuilder globalConfigurationBuilder = new GlobalConfigurationBuilder();
        globalConfigurationBuilder.jmx().domain("infinispan").enable();
        if (!isLocal) {
            configurationBuilder.clustering().stateTransfer().awaitInitialTransfer(false);
            globalConfigurationBuilder
                    .transport()
                    .defaultTransport()
                    .clusterName("infinispan-cluster")
                    .jgroups()
                    .transport(new JGroupsTransport(createChannel(cacheProperties, externalIp)));
        }
        globalConfigurationBuilder.defaultCacheName("default");
        // @formatter:off
        globalConfigurationBuilder
                .serialization()
                .marshaller(new JavaSerializationMarshaller())
                .whiteList()
                .addRegexp(".*");
        globalConfigurationBuilder
                .serialization()
                .whiteList()
                .addRegexp(".*");
        // @formatter:on
        DefaultCacheManager cacheManager = new DefaultCacheManager(globalConfigurationBuilder.build(),
                configurationBuilder.build());
        configurers.forEach(c -> c.configureCache(cacheManager));
        return cacheManager;
    }

Does someone already face the same issue with Infinispan Cache on Windows Server and was able to solved it ?

0 Answers
Related