@Override protected Repository openRepository() { repo.incrementOpen(); return repo; } };
private Repository openRepository(final Key location, final boolean mustExist) throws IOException { Repository db = cacheMap.get(location); if (db == null) { synchronized (lockFor(location)) { db = cacheMap.get(location); if (db == null) { db = location.open(mustExist); cacheMap.put(location, db); } else { db.incrementOpen(); } } } else { db.incrementOpen(); } return db; }
db.incrementOpen(); return db;
@Override protected Repository openRepository() { repo.incrementOpen(); return repo; } };
@Override protected Repository openRepository() { repo.incrementOpen(); return repo; } };
try (Git git = clone.call()) { subRepo = git.getRepository(); subRepo.incrementOpen();
public Repository open(HttpServletRequest req, String name) throws RepositoryNotFoundException, ServiceNotEnabledException { if (!name.equals(nameOf(db))) throw new RepositoryNotFoundException(name); db.incrementOpen(); return db; } });
@Override public Repository open(HttpServletRequest req, String name) throws RepositoryNotFoundException, ServiceNotEnabledException { if (!name.equals(nameOf(db))) throw new RepositoryNotFoundException(name); db.incrementOpen(); return db; } });
private Repository openRepository(final Key location, final boolean mustExist) throws IOException { Repository db = cacheMap.get(location); if (db == null) { synchronized (lockFor(location)) { db = cacheMap.get(location); if (db == null) { db = location.open(mustExist); cacheMap.put(location, db); } else { db.incrementOpen(); } } } else { db.incrementOpen(); } return db; }
@SuppressWarnings("resource") private Repository openRepository(final Key location, final boolean mustExist) throws IOException { Reference<Repository> ref = cacheMap.get(location); Repository db = ref != null ? ref.get() : null; if (db == null) { synchronized (lockFor(location)) { ref = cacheMap.get(location); db = ref != null ? ref.get() : null; if (db == null) { db = location.open(mustExist); ref = new SoftReference<Repository>(db); cacheMap.put(location, ref); } else { db.incrementOpen(); } } } else { db.incrementOpen(); } return db; }
private GitServlet createGitServlet() { final GitServlet gitServlet = new GitServlet(); gitServlet.setRepositoryResolver((req, name) -> { String trimmedName = name.endsWith(SUFFIX) ? name.substring(0, name.length() - SUFFIX.length()) : name; trimmedName = trimmedName.substring(trimmedName.lastIndexOf('/') + 1); if (repositories.containsKey(trimmedName)) { final LazilyLoadedRepository lazilyLoadedRepository = repositories.get(trimmedName); synchronized (gitServlet) { lazilyLoadedRepository.cloneRepository(); final Repository repository = lazilyLoadedRepository.get(); enableInsecureReceiving(repository); repository.incrementOpen(); return repository; } } else { throw new RepositoryNotFoundException("Repository " + name + "does not exist"); } }); gitServlet.addReceivePackFilter(new AfterReceivePackResetFilter(repositories.values())); return gitServlet; }
db.incrementOpen(); return db;
db.incrementOpen(); return db;
try (Git git = clone.call()) { subRepo = git.getRepository(); subRepo.incrementOpen();