code: private void put(T item) {
          HashMap<String,Object> keys;
  
          if( item == null ) {
              throw new NullPointerException("Multi caches may not have null values.");
          }
          keys = getKeys(item);
          synchronized( this ) {
              for( String key : caches.keySet() ) {
                  ConcurrentCache<Object,T> cache = caches.get(key);
                  Object ob = keys.get(key);
  
                  if( ob instanceof BigDecimal ) {
                      ob = ((BigDecimal)ob).longValue();
                  }
                  cache.put(ob, item);
              }
          }
      }
docs: Places the specified item into the cache regardless of current cache state.
  @param item the item being placed into the cache