Program: 80167
Project: 80167
Buggy source:
@Override public void initialize(Class<K> keyClass,Class<T> persistentClass,Properties properties){
  super.initialize(keyClass,persistentClass,properties);
  CachingProvider cachingProvider=Caching.getCachingProvider(properties.getProperty(GORA_DEFAULT_JCACHE_PROVIDER_KEY));
  if (properties.getProperty(JCACHE_CACHE_NAMESPACE_PROPERTY_KEY) != null) {
    goraCacheNamespace=properties.getProperty(JCACHE_CACHE_NAMESPACE_PROPERTY_KEY);
  }
  try {
    this.persistentDataStore=DataStoreFactory.getDataStore(keyClass,persistentClass,new Configuration());
  }
 catch (  GoraException ex) {
    LOG.error("String_Node_Str",ex);
  }
  if (properties.getProperty(GORA_DEFAULT_JCACHE_PROVIDER_KEY).contains(HAZELCAST_SERVER_CACHE_PROVIDER_IDENTIFIER)) {
    Config config=new ClasspathXmlConfig(properties.getProperty(GORA_DEFAULT_JCACHE_HAZELCAST_CONFIG_KEY));
    hazelcastInstance=Hazelcast.newHazelcastInstance(config);
  }
 else {
    try {
      ClientConfig config=new XmlClientConfigBuilder(properties.getProperty(GORA_DEFAULT_JCACHE_HAZELCAST_CONFIG_KEY)).build();
      hazelcastInstance=HazelcastClient.newHazelcastClient(config);
    }
 catch (    IOException ex) {
      LOG.error("String_Node_Str",ex);
    }
  }
  Properties providerProperties=new Properties();
  providerProperties.setProperty(HazelcastCachingProvider.HAZELCAST_INSTANCE_NAME,hazelcastInstance.getName());
  try {
    manager=cachingProvider.getCacheManager(new URI(goraCacheNamespace),null,providerProperties);
  }
 catch (  URISyntaxException ex) {
    LOG.error("String_Node_Str",ex);
    manager=cachingProvider.getCacheManager();
  }
  if (((properties.getProperty(JCACHE_AUTO_CREATE_CACHE_PROPERTY_KEY) != null) && Boolean.valueOf(properties.getProperty(JCACHE_AUTO_CREATE_CACHE_PROPERTY_KEY))) || ((manager.getCache(super.getPersistentClass().getSimpleName(),keyClass,persistentClass) == null))) {
    cacheEntryList=new ConcurrentSkipListSet<>();
    cacheConfig=new CacheConfig<K,T>();
    cacheConfig.setTypes(keyClass,persistentClass);
    if (properties.getProperty(JCACHE_READ_THROUGH_PROPERTY_KEY) != null) {
      cacheConfig.setReadThrough(Boolean.valueOf(properties.getProperty(JCACHE_READ_THROUGH_PROPERTY_KEY)));
    }
 else {
      cacheConfig.setReadThrough(true);
    }
    if (properties.getProperty(JCACHE_WRITE_THROUGH_PROPERTY_KEY) != null) {
      cacheConfig.setWriteThrough(Boolean.valueOf(properties.getProperty(JCACHE_WRITE_THROUGH_PROPERTY_KEY)));
    }
 else {
      cacheConfig.setWriteThrough(true);
    }
    if (properties.getProperty(JCACHE_STORE_BY_VALUE_PROPERTY_KEY) != null) {
      cacheConfig.setStoreByValue(Boolean.valueOf(properties.getProperty(JCACHE_STORE_BY_VALUE_PROPERTY_KEY)));
    }
    if (properties.getProperty(JCACHE_STATISTICS_PROPERTY_KEY) != null) {
      cacheConfig.setStatisticsEnabled(Boolean.valueOf(properties.getProperty(JCACHE_STATISTICS_PROPERTY_KEY)));
    }
    if (properties.getProperty(JCACHE_MANAGEMENT_PROPERTY_KEY) != null) {
      cacheConfig.setStatisticsEnabled(Boolean.valueOf(properties.getProperty(JCACHE_MANAGEMENT_PROPERTY_KEY)));
    }
    if (properties.getProperty(JCACHE_EVICTION_POLICY_PROPERTY_KEY) != null) {
      cacheConfig.getEvictionConfig().setEvictionPolicy(EvictionPolicy.valueOf(properties.getProperty(JCACHE_EVICTION_POLICY_PROPERTY_KEY)));
    }
    if (properties.getProperty(JCACHE_EVICTION_MAX_SIZE_POLICY_PROPERTY_KEY) != null) {
      cacheConfig.getEvictionConfig().setMaximumSizePolicy(EvictionConfig.MaxSizePolicy.valueOf(properties.getProperty(JCACHE_EVICTION_MAX_SIZE_POLICY_PROPERTY_KEY)));
    }
    if (properties.getProperty(JCACHE_EVICTION_SIZE_PROPERTY_KEY) != null) {
      cacheConfig.getEvictionConfig().setSize(Integer.valueOf(properties.getProperty(JCACHE_EVICTION_SIZE_PROPERTY_KEY)));
    }
    if (properties.getProperty(JCACHE_EXPIRE_POLICY_PROPERTY_KEY) != null) {
      String expiryPolicyIdentifier=properties.getProperty(JCACHE_EXPIRE_POLICY_PROPERTY_KEY);
      if (expiryPolicyIdentifier.equals(JCACHE_ACCESSED_EXPIRY_IDENTIFIER)) {
        cacheConfig.setExpiryPolicyFactory(FactoryBuilder.factoryOf(new AccessedExpiryPolicy(new Duration(TimeUnit.SECONDS,Integer.valueOf(properties.getProperty(JCACHE_EXPIRE_POLICY_DURATION_PROPERTY_KEY))))));
      }
 else       if (expiryPolicyIdentifier.equals(JCACHE_CREATED_EXPIRY_IDENTIFIER)) {
        cacheConfig.setExpiryPolicyFactory(FactoryBuilder.factoryOf(new CreatedExpiryPolicy(new Duration(TimeUnit.SECONDS,Integer.valueOf(properties.getProperty(JCACHE_EXPIRE_POLICY_DURATION_PROPERTY_KEY))))));
      }
 else       if (expiryPolicyIdentifier.equals(JCACHE_MODIFIED_EXPIRY_IDENTIFIER)) {
        cacheConfig.setExpiryPolicyFactory(FactoryBuilder.factoryOf(new ModifiedExpiryPolicy(new Duration(TimeUnit.SECONDS,Integer.valueOf(properties.getProperty(JCACHE_EXPIRE_POLICY_DURATION_PROPERTY_KEY))))));
      }
 else       if (expiryPolicyIdentifier.equals(JCACHE_TOUCHED_EXPIRY_IDENTIFIER)) {
        cacheConfig.setExpiryPolicyFactory(FactoryBuilder.factoryOf(new TouchedExpiryPolicy(new Duration(TimeUnit.SECONDS,Integer.valueOf(properties.getProperty(JCACHE_EXPIRE_POLICY_DURATION_PROPERTY_KEY))))));
      }
    }
    if (properties.getProperty(HAZELCAST_CACHE_IN_MEMORY_FORMAT_PROPERTY_KEY) != null) {
      String inMemoryFormat=properties.getProperty(HAZELCAST_CACHE_IN_MEMORY_FORMAT_PROPERTY_KEY);
      if (inMemoryFormat.equals(HAZELCAST_CACHE_BINARY_IN_MEMORY_FORMAT_IDENTIFIER) || inMemoryFormat.equals(HAZELCAST_CACHE_OBJECT_IN_MEMORY_FORMAT_IDENTIFIER) || inMemoryFormat.equals(HAZELCAST_CACHE_NATIVE_IN_MEMORY_FORMAT_IDENTIFIER)) {
        cacheConfig.setInMemoryFormat(InMemoryFormat.valueOf(inMemoryFormat));
      }
    }
    cacheConfig.setCacheLoaderFactory(JCacheCacheFactoryBuilder.factoryOfCacheLoader(this.persistentDataStore));
    cacheConfig.setCacheWriterFactory(JCacheCacheFactoryBuilder.factoryOfCacheWriter(this.persistentDataStore));
    cacheConfig.addCacheEntryListenerConfiguration(new MutableCacheEntryListenerConfiguration<>(JCacheCacheFactoryBuilder.factoryOfEntryListener(new JCacheCacheEntryListener<K,T>(cacheEntryList)),null,true,true));
    cache=manager.createCache(persistentClass.getSimpleName(),cacheConfig).unwrap(ICache.class);
  }
 else {
    cache=manager.getCache(super.getPersistentClass().getSimpleName(),keyClass,persistentClass).unwrap(ICache.class);
    this.populateLocalCacheEntrySet(cache);
    this.populateLocalCacheConfig(cache);
  }
  LOG.info("String_Node_Str");
}

Fixed version (ground truth):
@Override public void initialize(Class<K> keyClass,Class<T> persistentClass,Properties properties){
  super.initialize(keyClass,persistentClass,properties);
  CachingProvider cachingProvider=Caching.getCachingProvider(properties.getProperty(GORA_DEFAULT_JCACHE_PROVIDER_KEY));
  if (properties.getProperty(JCACHE_CACHE_NAMESPACE_PROPERTY_KEY) != null) {
    goraCacheNamespace=properties.getProperty(JCACHE_CACHE_NAMESPACE_PROPERTY_KEY);
  }
  try {
    this.persistentDataStore=DataStoreFactory.getDataStore(keyClass,persistentClass,new Configuration());
  }
 catch (  GoraException ex) {
    LOG.error("String_Node_Str",ex);
  }
  if (properties.getProperty(GORA_DEFAULT_JCACHE_PROVIDER_KEY).contains(HAZELCAST_SERVER_CACHE_PROVIDER_IDENTIFIER)) {
    Config config=new ClasspathXmlConfig(properties.getProperty(GORA_DEFAULT_JCACHE_HAZELCAST_CONFIG_KEY));
    hazelcastInstance=Hazelcast.newHazelcastInstance(config);
  }
 else {
    try {
      ClientConfig config=new XmlClientConfigBuilder(properties.getProperty(GORA_DEFAULT_JCACHE_HAZELCAST_CONFIG_KEY)).build();
      hazelcastInstance=HazelcastClient.newHazelcastClient(config);
    }
 catch (    IOException ex) {
      LOG.error("String_Node_Str",ex);
    }
  }
  Properties providerProperties=new Properties();
  providerProperties.setProperty(HazelcastCachingProvider.HAZELCAST_INSTANCE_NAME,hazelcastInstance.getName());
  try {
    manager=cachingProvider.getCacheManager(new URI(goraCacheNamespace),null,providerProperties);
  }
 catch (  URISyntaxException ex) {
    LOG.error("String_Node_Str",ex);
    manager=cachingProvider.getCacheManager();
  }
  if (((properties.getProperty(JCACHE_AUTO_CREATE_CACHE_PROPERTY_KEY) != null) && Boolean.valueOf(properties.getProperty(JCACHE_AUTO_CREATE_CACHE_PROPERTY_KEY))) || ((manager.getCache(super.getPersistentClass().getSimpleName(),keyClass,persistentClass) == null))) {
    cacheEntryList=new ConcurrentSkipListSet<>();
    cacheConfig=new CacheConfig<K,T>();
    cacheConfig.setTypes(keyClass,persistentClass);
    if (properties.getProperty(JCACHE_READ_THROUGH_PROPERTY_KEY) != null) {
      cacheConfig.setReadThrough(Boolean.valueOf(properties.getProperty(JCACHE_READ_THROUGH_PROPERTY_KEY)));
    }
 else {
      cacheConfig.setReadThrough(true);
    }
    if (properties.getProperty(JCACHE_WRITE_THROUGH_PROPERTY_KEY) != null) {
      cacheConfig.setWriteThrough(Boolean.valueOf(properties.getProperty(JCACHE_WRITE_THROUGH_PROPERTY_KEY)));
    }
 else {
      cacheConfig.setWriteThrough(true);
    }
    if (properties.getProperty(JCACHE_STORE_BY_VALUE_PROPERTY_KEY) != null) {
      cacheConfig.setStoreByValue(Boolean.valueOf(properties.getProperty(JCACHE_STORE_BY_VALUE_PROPERTY_KEY)));
    }
    if (properties.getProperty(JCACHE_STATISTICS_PROPERTY_KEY) != null) {
      cacheConfig.setStatisticsEnabled(Boolean.valueOf(properties.getProperty(JCACHE_STATISTICS_PROPERTY_KEY)));
    }
    if (properties.getProperty(JCACHE_MANAGEMENT_PROPERTY_KEY) != null) {
      cacheConfig.setStatisticsEnabled(Boolean.valueOf(properties.getProperty(JCACHE_MANAGEMENT_PROPERTY_KEY)));
    }
    if (properties.getProperty(JCACHE_EVICTION_POLICY_PROPERTY_KEY) != null) {
      cacheConfig.getEvictionConfig().setEvictionPolicy(EvictionPolicy.valueOf(properties.getProperty(JCACHE_EVICTION_POLICY_PROPERTY_KEY)));
    }
    if (properties.getProperty(JCACHE_EVICTION_MAX_SIZE_POLICY_PROPERTY_KEY) != null) {
      cacheConfig.getEvictionConfig().setMaximumSizePolicy(EvictionConfig.MaxSizePolicy.valueOf(properties.getProperty(JCACHE_EVICTION_MAX_SIZE_POLICY_PROPERTY_KEY)));
    }
    if (properties.getProperty(JCACHE_EVICTION_SIZE_PROPERTY_KEY) != null) {
      cacheConfig.getEvictionConfig().setSize(Integer.valueOf(properties.getProperty(JCACHE_EVICTION_SIZE_PROPERTY_KEY)));
    }
    if (properties.getProperty(JCACHE_EXPIRE_POLICY_PROPERTY_KEY) != null) {
      String expiryPolicyIdentifier=properties.getProperty(JCACHE_EXPIRE_POLICY_PROPERTY_KEY);
      if (expiryPolicyIdentifier.equals(JCACHE_ACCESSED_EXPIRY_IDENTIFIER)) {
        cacheConfig.setExpiryPolicyFactory(FactoryBuilder.factoryOf(new AccessedExpiryPolicy(new Duration(TimeUnit.SECONDS,Integer.valueOf(properties.getProperty(JCACHE_EXPIRE_POLICY_DURATION_PROPERTY_KEY))))));
      }
 else       if (expiryPolicyIdentifier.equals(JCACHE_CREATED_EXPIRY_IDENTIFIER)) {
        cacheConfig.setExpiryPolicyFactory(FactoryBuilder.factoryOf(new CreatedExpiryPolicy(new Duration(TimeUnit.SECONDS,Integer.valueOf(properties.getProperty(JCACHE_EXPIRE_POLICY_DURATION_PROPERTY_KEY))))));
      }
 else       if (expiryPolicyIdentifier.equals(JCACHE_MODIFIED_EXPIRY_IDENTIFIER)) {
        cacheConfig.setExpiryPolicyFactory(FactoryBuilder.factoryOf(new ModifiedExpiryPolicy(new Duration(TimeUnit.SECONDS,Integer.valueOf(properties.getProperty(JCACHE_EXPIRE_POLICY_DURATION_PROPERTY_KEY))))));
      }
 else       if (expiryPolicyIdentifier.equals(JCACHE_TOUCHED_EXPIRY_IDENTIFIER)) {
        cacheConfig.setExpiryPolicyFactory(FactoryBuilder.factoryOf(new TouchedExpiryPolicy(new Duration(TimeUnit.SECONDS,Integer.valueOf(properties.getProperty(JCACHE_EXPIRE_POLICY_DURATION_PROPERTY_KEY))))));
      }
    }
    if (properties.getProperty(HAZELCAST_CACHE_IN_MEMORY_FORMAT_PROPERTY_KEY) != null) {
      String inMemoryFormat=properties.getProperty(HAZELCAST_CACHE_IN_MEMORY_FORMAT_PROPERTY_KEY);
      if (inMemoryFormat.equals(HAZELCAST_CACHE_BINARY_IN_MEMORY_FORMAT_IDENTIFIER) || inMemoryFormat.equals(HAZELCAST_CACHE_OBJECT_IN_MEMORY_FORMAT_IDENTIFIER) || inMemoryFormat.equals(HAZELCAST_CACHE_NATIVE_IN_MEMORY_FORMAT_IDENTIFIER)) {
        cacheConfig.setInMemoryFormat(InMemoryFormat.valueOf(inMemoryFormat));
      }
    }
    cacheConfig.setCacheLoaderFactory(JCacheCacheFactoryBuilder.factoryOfCacheLoader(this.persistentDataStore,keyClass,persistentClass));
    cacheConfig.setCacheWriterFactory(JCacheCacheFactoryBuilder.factoryOfCacheWriter(this.persistentDataStore,keyClass,persistentClass));
    cache=manager.createCache(persistentClass.getSimpleName(),cacheConfig).unwrap(ICache.class);
  }
 else {
    cache=manager.getCache(super.getPersistentClass().getSimpleName(),keyClass,persistentClass).unwrap(ICache.class);
    this.populateLocalCacheEntrySet(cache);
  }
  cache.registerCacheEntryListener(new MutableCacheEntryListenerConfiguration<>(JCacheCacheFactoryBuilder.factoryOfEntryListener(new JCacheCacheEntryListener<K,T>(cacheEntryList)),null,true,true));
  LOG.info("String_Node_Str");
}