0

I have the below config

@Configuration
@EnableCaching(proxyTargetClass = true)
public class CachingConfig {

    @Bean
    @ConditionalOnMissingBean
    public javax.cache.CacheManager cacheManager() {
        javax.cache.spi.CachingProvider cachingProvider = javax.cache.Caching.getCachingProvider();
        javax.cache.CacheManager cacheManager = cachingProvider.getCacheManager();

        CacheConfiguration<String, SpecialityEntity> specialityCachecConfig = CacheConfigurationBuilder
                .newCacheConfigurationBuilder(String.class, SpecialityEntity.class, ResourcePoolsBuilder.newResourcePoolsBuilder().offheap(10, MemoryUnit.MB).build())
                .withExpiry(ExpiryPolicyBuilder.timeToIdleExpiration(Duration.ofSeconds(10)))
                .build();
        javax.cache.configuration.Configuration<String, SpecialityEntity> specialityConfiguration = Eh107Configuration.fromEhcacheCacheConfiguration(specialityCachecConfig);
        cacheManager.createCache("specialityCache", specialityConfiguration);

        return cacheManager;
    }
}

dependencies:

     <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-cache</artifactId>
    </dependency>
    <dependency>
        <groupId>org.ehcache</groupId>
        <artifactId>ehcache</artifactId>
    </dependency>
    <dependency>
        <groupId>javax.cache</groupId>
        <artifactId>cache-api</artifactId>
    </dependency>

when i tried to put a object in the cache like below, i have an error NullPointerException

public void on(SpecialityCreated event) {
    final SpecialityEntity speciality = mapper.specialityCreatedToSpecialityEntity(event);
    repository.save(speciality);

    Cache<Object, Object> cache = cacheManager.getCache("specialityCache");
    cache.put(event.getSpecialityId(), speciality); //cache is null
}
Aymen Kanzari
  • 1,765
  • 7
  • 41
  • 73

0 Answers0