code: public JsonGetterContext getContext(String queryPath) {
          JsonGetterContext context = internalCache.get(queryPath);
          if (context != null) {
              return context;
          }
          context = new JsonGetterContext(queryPath);
          JsonGetterContext previousContextValue = internalCache.putIfAbsent(queryPath, context);
          if (previousContextValue == null) {
              cleanupIfNeccessary(context);
              return context;
          } else {
              return previousContextValue;
          }
      }
docs: Returns an existing or newly created context for given query path.
  If maximum cache size is reached, then some entries are evicted.
  The newly created entry is not evicted.
  
  @param queryPath
  @return