Browse Source

DiffCommand: Open DiffFormatter in try-with-resource

Change-Id: I22bd1062d64b01bb98cdaf612482538114624b7f
Signed-off-by: David Pursehouse <david.pursehouse@gmail.com>
stable-4.11
David Pursehouse 7 years ago
parent
commit
e2d875ee30
  1. 15
      org.eclipse.jgit/src/org/eclipse/jgit/api/DiffCommand.java

15
org.eclipse.jgit/src/org/eclipse/jgit/api/DiffCommand.java

@ -104,6 +104,12 @@ public class DiffCommand extends GitCommand<List<DiffEntry>> {
super(repo); super(repo);
} }
private DiffFormatter getDiffFormatter() {
return out != null && !showNameAndStatusOnly
? new DiffFormatter(new BufferedOutputStream(out))
: new DiffFormatter(NullOutputStream.INSTANCE);
}
/** /**
* {@inheritDoc} * {@inheritDoc}
* <p> * <p>
@ -114,14 +120,9 @@ public class DiffCommand extends GitCommand<List<DiffEntry>> {
*/ */
@Override @Override
public List<DiffEntry> call() throws GitAPIException { public List<DiffEntry> call() throws GitAPIException {
final DiffFormatter diffFmt; try (DiffFormatter diffFmt = getDiffFormatter()) {
if (out != null && !showNameAndStatusOnly)
diffFmt = new DiffFormatter(new BufferedOutputStream(out));
else
diffFmt = new DiffFormatter(NullOutputStream.INSTANCE);
diffFmt.setRepository(repo); diffFmt.setRepository(repo);
diffFmt.setProgressMonitor(monitor); diffFmt.setProgressMonitor(monitor);
try {
if (cached) { if (cached) {
if (oldTree == null) { if (oldTree == null) {
ObjectId head = repo.resolve(HEAD + "^{tree}"); //$NON-NLS-1$ ObjectId head = repo.resolve(HEAD + "^{tree}"); //$NON-NLS-1$
@ -159,8 +160,6 @@ public class DiffCommand extends GitCommand<List<DiffEntry>> {
} }
} catch (IOException e) { } catch (IOException e) {
throw new JGitInternalException(e.getMessage(), e); throw new JGitInternalException(e.getMessage(), e);
} finally {
diffFmt.close();
} }
} }

Loading…
Cancel
Save