killbill-memoizeit

util: handle gracefully errors in Eh107CacheManagerProvider If

3/30/2017 4:42:21 AM

Details

diff --git a/util/src/main/java/org/killbill/billing/util/glue/Eh107CacheManagerProvider.java b/util/src/main/java/org/killbill/billing/util/glue/Eh107CacheManagerProvider.java
index 8c9fe3d..005afa3 100644
--- a/util/src/main/java/org/killbill/billing/util/glue/Eh107CacheManagerProvider.java
+++ b/util/src/main/java/org/killbill/billing/util/glue/Eh107CacheManagerProvider.java
@@ -29,12 +29,16 @@ import javax.inject.Provider;
 
 import org.killbill.billing.util.cache.BaseCacheLoader;
 import org.killbill.billing.util.config.definition.EhCacheConfig;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.codahale.metrics.MetricRegistry;
 
 // EhCache specific provider
 public class Eh107CacheManagerProvider extends CacheProviderBase implements Provider<CacheManager> {
 
+    private static final Logger logger = LoggerFactory.getLogger(Eh107CacheManagerProvider.class);
+
     private final Set<BaseCacheLoader> cacheLoaders;
 
     @Inject
@@ -50,11 +54,15 @@ public class Eh107CacheManagerProvider extends CacheProviderBase implements Prov
         // JSR-107 registration, required for JMX integration
         final CachingProvider cachingProvider = Caching.getCachingProvider();
 
-        final CacheManager cacheManager;
+        CacheManager cacheManager;
         try {
             cacheManager = cachingProvider.getCacheManager(xmlConfigurationURL.toURI(), getClass().getClassLoader());
+        } catch (final RuntimeException e) {
+            logger.error("Unable to read ehcache.xml, using default configuration", e);
+            cacheManager = cachingProvider.getCacheManager();
         } catch (final URISyntaxException e) {
-            throw new IllegalArgumentException(e);
+            logger.error("Unable to read ehcache.xml, using default configuration", e);
+            cacheManager = cachingProvider.getCacheManager();
         }
 
         for (final BaseCacheLoader<?, ?> cacheLoader : cacheLoaders) {