001    package org.picocontainer.web.caching;
002    
003    import javax.cache.CacheException;
004    import java.util.Map;
005    import java.util.HashMap;
006    
007    import org.picocontainer.web.caching.JCacheProvider;
008    import org.picocontainer.web.Cache;
009    
010    public class FallbackCacheProvider extends JCacheProvider {
011    
012        final Map fallBackImpl = new HashMap();
013    
014        @Override
015        public Cache provide() throws CacheException {
016            try {
017                return super.provide();
018            } catch (NullPointerException e) {
019                return new Cache() {
020                    public Object get(Object key) {
021                        return fallBackImpl.get(key);
022                    }
023    
024                    public void put(Object key, Object toCache) {
025                        fallBackImpl.put(key, toCache);
026                    }
027                };
028            }
029        }
030    
031    }