code: @Override
      protected Object internalGet(String key) {
          try {
              Object value = localCache != null ? localCache.get(key) : null;
              if (value == null) {
                  value = remoteCache != null ? remoteCache.get(key) : null;
                  if (value != null && localCache != null) {
                      localCache.set(key, value);
                  }
              }
              return value;
          } catch (Exception e) {
              throw e instanceof CacheException ? (CacheException) e : new CacheException(e);
          }
      }
docs: {@inheritDoc}