Example usage for org.eclipse.jgit.transport FetchConnection close

List of usage examples for org.eclipse.jgit.transport FetchConnection close

Introduction

In this page you can find the example usage for org.eclipse.jgit.transport FetchConnection close.

Prototype

@Override
void close();

Source Link

Document

Close any resources used by this connection.

Usage

From source file:com.google.gerrit.server.git.PushOp.java

License:Apache License

private Map<String, Ref> listRemote(final Transport tn) throws NotSupportedException, TransportException {
    final FetchConnection fc = tn.openFetch();
    try {/*from  ww w  . j  a v  a 2  s .co  m*/
        return fc.getRefsMap();
    } finally {
        fc.close();
    }
}

From source file:jetbrains.buildServer.buildTriggers.vcs.git.GitServerUtil.java

License:Apache License

/**
 * Removes branches of a bare repository which are not present in a remote repository
 *///from  w  ww  .  j  a  v a  2 s .  co m
private static void pruneRemovedBranches(@NotNull Repository db, @NotNull Transport tn) throws IOException {
    FetchConnection conn = null;
    try {
        conn = tn.openFetch();
        Map<String, Ref> remoteRefMap = conn.getRefsMap();
        for (Map.Entry<String, Ref> e : db.getAllRefs().entrySet()) {
            if (!remoteRefMap.containsKey(e.getKey())) {
                try {
                    RefUpdate refUpdate = db.getRefDatabase().newUpdate(e.getKey(), false);
                    refUpdate.setForceUpdate(true);
                    refUpdate.delete();
                } catch (Exception ex) {
                    LOG.info("Failed to prune removed ref " + e.getKey(), ex);
                    break;
                }
            }
        }
    } finally {
        if (conn != null)
            conn.close();
    }
}

From source file:jetbrains.buildServer.buildTriggers.vcs.git.GitVcsSupport.java

License:Apache License

@NotNull
private Map<String, Ref> getRemoteRefs(@NotNull Repository db, @NotNull GitVcsRoot gitRoot) throws Exception {
    long retryInterval = myConfig.getConnectionRetryIntervalMillis();
    int attemptsLeft = myConfig.getConnectionRetryAttempts();
    int timeout = myConfig.getRepositoryStateTimeoutSeconds();
    while (true) {
        final long start = System.currentTimeMillis();
        Transport transport = null;//w ww.  ja v a  2 s.c  om
        FetchConnection connection = null;
        try {
            transport = myTransportFactory.createTransport(db, gitRoot.getRepositoryFetchURL(),
                    gitRoot.getAuthSettings(), timeout);
            connection = transport.openFetch();
            return connection.getRefsMap();
        } catch (NotSupportedException nse) {
            throw friendlyNotSupportedException(gitRoot, nse);
        } catch (TransportException te) {
            attemptsLeft--;
            if (isRecoverable(te) && attemptsLeft > 0) {
                LOG.warn("List remote refs failed: " + te.getMessage() + ", " + attemptsLeft
                        + " attempt(s) left");
            } else {
                throw friendlyTransportException(te, gitRoot);
            }
        } catch (WrongPassphraseException e) {
            throw new VcsException(e.getMessage(), e);
        } finally {
            if (connection != null)
                connection.close();
            if (transport != null)
                transport.close();
            final long finish = System.currentTimeMillis();
            PERFORMANCE_LOG.debug("[getRemoteRefs] repository: " + LogUtil.describe(gitRoot) + ", took "
                    + (finish - start) + "ms");
        }
        Thread.sleep(retryInterval);
        retryInterval *= 2;
    }
}