private boolean takeFromCache()

in maven2-server-impl/src/org/jetbrains/idea/maven/server/embedder/CustomWagonManager.java [104:132]


  private boolean takeFromCache(Artifact artifact) {
    String key = getKey(artifact);

    Boolean wasResolved;
    myCacheReadLock.lock();
    try {
      wasResolved = myResolutionCache.get(key);
      if (wasResolved == null) return false;
    }
    finally {
      myCacheReadLock.unlock();
    }

    boolean fileWasDeleted = wasResolved && !artifact.getFile().exists();
    if (fileWasDeleted) {
      myCacheWriteLock.lock();
      try {
        myResolutionCache.remove(key);
      }
      finally {
        myCacheWriteLock.unlock();
      }
      return false; // need to resolve again
    }

    artifact.setResolved(wasResolved);

    return true;
  }