protected void doFetch( final ProgressMonitor monitor, final Collection<Ref> want, final Set<ObjectId> have) throws TransportException { try { markRefsAdvertised(); markReachable(have, maxTimeWanted(want)); if (sendWants(want)) { negotiate(monitor); walk.dispose(); reachableCommits = null; receivePack(monitor); } } catch (CancelledException ce) { close(); return; // Caller should test (or just know) this themselves. } catch (IOException err) { close(); throw new TransportException(err.getMessage(), err); } catch (RuntimeException err) { close(); throw new TransportException(err.getMessage(), err); } }