From 0212a623f8bbb1ddc422c4b58fb40670c488101f Mon Sep 17 00:00:00 2001 From: Zhen Chen Date: Fri, 30 Sep 2016 12:11:46 -0700 Subject: [PATCH] Delay inserter.flush in WalkFetchConnection Spawn an ObjectReader from the ObjectInserter, so the flush can be delayed at the end of the fetch. Change-Id: I35fe8c8370c06c25262645202aec2b1318057c19 Signed-off-by: Zhen Chen --- .../eclipse/jgit/transport/WalkFetchConnection.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/transport/WalkFetchConnection.java b/org.eclipse.jgit/src/org/eclipse/jgit/transport/WalkFetchConnection.java index 17edfdc4f..c90cadf7b 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/transport/WalkFetchConnection.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/transport/WalkFetchConnection.java @@ -195,7 +195,7 @@ class WalkFetchConnection extends BaseFetchConnection { local = wt.local; objCheck = wt.getObjectChecker(); inserter = local.newObjectInserter(); - reader = local.newObjectReader(); + reader = inserter.newReader(); remotes = new ArrayList(); remotes.add(w); @@ -240,6 +240,12 @@ protected void doFetch(final ProgressMonitor monitor, downloadObject(monitor, id); process(id); } + + try { + inserter.flush(); + } catch (IOException e) { + throw new TransportException(e.getMessage(), e); + } } public Collection getPackLocks() { @@ -652,7 +658,6 @@ private void verifyAndInsertLooseObject(final AnyObjectId id, Constants.typeString(type), Integer.valueOf(compressed.length))); } - inserter.flush(); } private Collection expandOneAlternate( @@ -883,7 +888,6 @@ void downloadPack(final ProgressMonitor monitor) throws IOException { PackLock lock = parser.parse(monitor); if (lock != null) packLocks.add(lock); - inserter.flush(); } } }