Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Sohn2015-01-27 15:06:38 +0000
committerChristian Halstrick2015-02-09 13:11:50 +0000
commit77030a5e94a90cfae223acc477c216603cf3f149 (patch)
treef1e2ee0e77732687633ddf4aac7e60a111956ccb
parent27ae8bc65553879000ae6a687dbe3a888160da98 (diff)
downloadjgit-77030a5e94a90cfae223acc477c216603cf3f149.tar.gz
jgit-77030a5e94a90cfae223acc477c216603cf3f149.tar.xz
jgit-77030a5e94a90cfae223acc477c216603cf3f149.zip
Implement AutoClosable interface on classes that used release()
Implement AutoClosable and deprecate the old release() method to give JGit consumers some time to adapt. Bug: 428039 Change-Id: Id664a91dc5a8cf2ac401e7d87ce2e3b89e221458 Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/blame/BlameGenerator.java19
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffFormatter.java19
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java19
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectInserter.java18
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectReader.java18
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevWalk.java20
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/submodule/SubmoduleWalk.java20
-rw-r--r--org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java20
8 files changed, 131 insertions, 22 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/blame/BlameGenerator.java b/org.eclipse.jgit/src/org/eclipse/jgit/blame/BlameGenerator.java
index e69cfa9d1c..eb64425c6c 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/blame/BlameGenerator.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/blame/BlameGenerator.java
@@ -113,7 +113,7 @@ import org.eclipse.jgit.treewalk.filter.TreeFilter;
* the ancestor, until there are no more lines to acquire information on, or the
* file's creation point is discovered in history.
*/
-public class BlameGenerator {
+public class BlameGenerator implements AutoCloseable {
private final Repository repository;
private final PathFilter resultPath;
@@ -937,9 +937,22 @@ public class BlameGenerator {
return queue != null ? queue.sourceText : null;
}
- /** Release the current blame session. */
+ /**
+ * Release the current blame session. Use {@link #close()} instead.
+ */
+ @Deprecated
public void release() {
- revPool.release();
+ close();
+ }
+
+ /**
+ * Release the current blame session.
+ *
+ * @since 4.0
+ */
+ @Override
+ public void close() {
+ revPool.close();
queue = null;
outCandidate = null;
outRegion = null;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffFormatter.java b/org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffFormatter.java
index d339d6a65a..1aab51e9cc 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffFormatter.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/diff/DiffFormatter.java
@@ -104,7 +104,7 @@ import org.eclipse.jgit.util.io.DisabledOutputStream;
/**
* Format a Git style patch script.
*/
-public class DiffFormatter {
+public class DiffFormatter implements AutoCloseable {
private static final int DEFAULT_BINARY_FILE_THRESHOLD = PackConfig.DEFAULT_BIG_FILE_THRESHOLD;
private static final byte[] noNewLine = encodeASCII("\\ No newline at end of file\n"); //$NON-NLS-1$
@@ -380,10 +380,23 @@ public class DiffFormatter {
out.flush();
}
- /** Release the internal ObjectReader state. */
+ /**
+ * Release the internal ObjectReader state. Use {@link #close()} instead.
+ */
+ @Deprecated
public void release() {
+ close();
+ }
+
+ /**
+ * Release the internal ObjectReader state.
+ *
+ * @since 4.0
+ */
+ @Override
+ public void close() {
if (reader != null)
- reader.release();
+ reader.close();
}
/**
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java
index 164934704c..510538d863 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java
@@ -152,7 +152,7 @@ import org.eclipse.jgit.util.TemporaryBuffer;
* undefined behavior.
* </p>
*/
-public class PackWriter {
+public class PackWriter implements AutoCloseable {
private static final int PACK_VERSION_GENERATED = 2;
/** A collection of object ids. */
@@ -1085,9 +1085,22 @@ public class PackWriter {
return state.snapshot();
}
- /** Release all resources used by this writer. */
+ /**
+ * Release all resources used by this writer. Use {@link #close()} instead.
+ */
+ @Deprecated
public void release() {
- reader.release();
+ close();
+ }
+
+ /**
+ * Release all resources used by this writer.
+ *
+ * @since 4.0
+ */
+ @Override
+ public void close() {
+ reader.close();
if (myDeflater != null) {
myDeflater.end();
myDeflater = null;
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectInserter.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectInserter.java
index 5c13ef3548..f05326900c 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectInserter.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectInserter.java
@@ -66,7 +66,7 @@ import org.eclipse.jgit.transport.PackParser;
* {@link #release()} or {@link #flush()} prior to updating references or
* otherwise making the returned ObjectIds visible to other code.
*/
-public abstract class ObjectInserter {
+public abstract class ObjectInserter implements AutoCloseable {
/** An inserter that can be used for formatting and id generation only. */
public static class Formatter extends ObjectInserter {
@Override
@@ -420,7 +420,21 @@ public abstract class ObjectInserter {
* Release any resources used by this inserter.
* <p>
* An inserter that has been released can be used again, but may need to be
- * released after the subsequent usage.
+ * released after the subsequent usage. Use {@link #close()} instead
*/
+ @Deprecated
public abstract void release();
+
+ /**
+ * Release any resources used by this inserter.
+ * <p>
+ * An inserter that has been released can be used again, but may need to be
+ * released after the subsequent usage.
+ *
+ * @since 4.0
+ */
+ @Override
+ public void close() {
+ release();
+ }
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectReader.java b/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectReader.java
index 58c141870b..524dafb882 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectReader.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectReader.java
@@ -63,7 +63,7 @@ import org.eclipse.jgit.revwalk.RevWalk;
* Readers that can support efficient reuse of pack encoded objects should also
* implement the companion interface {@link ObjectReuseAsIs}.
*/
-public abstract class ObjectReader {
+public abstract class ObjectReader implements AutoCloseable {
/** Type hint indicating the caller doesn't know the type. */
public static final int OBJ_ANY = -1;
@@ -466,9 +466,23 @@ public abstract class ObjectReader {
* Release any resources used by this reader.
* <p>
* A reader that has been released can be used again, but may need to be
- * released after the subsequent usage.
+ * released after the subsequent usage. Use {@link #close()} instead.
*/
+ @Deprecated
public void release() {
+ close();
+ }
+
+ /**
+ * Release any resources used by this reader.
+ * <p>
+ * A reader that has been released can be used again, but may need to be
+ * released after the subsequent usage.
+ *
+ * @since 4.0
+ */
+ @Override
+ public void close() {
// Do nothing.
}
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevWalk.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevWalk.java
index d19e467c1d..55ffac7c5a 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevWalk.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/RevWalk.java
@@ -95,7 +95,7 @@ import org.eclipse.jgit.treewalk.filter.TreeFilter;
* the same RevWalk at the same time. The Iterator may buffer RevCommits, while
* {@link #next()} does not.
*/
-public class RevWalk implements Iterable<RevCommit> {
+public class RevWalk implements Iterable<RevCommit>, AutoCloseable {
private static final int MB = 1 << 20;
/**
@@ -237,10 +237,24 @@ public class RevWalk implements Iterable<RevCommit> {
* Release any resources used by this walker's reader.
* <p>
* A walker that has been released can be used again, but may need to be
- * released after the subsequent usage.
+ * released after the subsequent usage. Use {@link #close()} instead.
*/
+ @Deprecated
public void release() {
- reader.release();
+ close();
+ }
+
+ /**
+ * Release any resources used by this walker's reader.
+ * <p>
+ * A walker that has been released can be used again, but may need to be
+ * released after the subsequent usage.
+ *
+ * @since 4.0
+ */
+ @Override
+ public void close() {
+ reader.close();
}
/**
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/submodule/SubmoduleWalk.java b/org.eclipse.jgit/src/org/eclipse/jgit/submodule/SubmoduleWalk.java
index 5db3378b78..a01f006c4c 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/submodule/SubmoduleWalk.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/submodule/SubmoduleWalk.java
@@ -76,7 +76,7 @@ import org.eclipse.jgit.util.FS;
/**
* Walker that visits all submodule entries found in a tree
*/
-public class SubmoduleWalk {
+public class SubmoduleWalk implements AutoCloseable {
/**
* The values for the config param submodule.<name>.ignore
@@ -729,8 +729,22 @@ public class SubmoduleWalk {
return url != null ? getSubmoduleRemoteUrl(repository, url) : null;
}
- /** Release any resources used by this walker's reader. */
+ /**
+ * Release any resources used by this walker's reader. Use {@link #close()}
+ * instead.
+ */
+ @Deprecated
public void release() {
- walk.release();
+ close();
+ }
+
+ /**
+ * Release any resources used by this walker's reader.
+ *
+ * @since 4.0
+ */
+ @Override
+ public void close() {
+ walk.close();
}
}
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java b/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java
index 94281fba18..577c9e303d 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java
@@ -82,7 +82,7 @@ import org.eclipse.jgit.util.RawParseUtils;
* Multiple simultaneous TreeWalk instances per {@link Repository} are
* permitted, even from concurrent threads.
*/
-public class TreeWalk {
+public class TreeWalk implements AutoCloseable {
private static final AbstractTreeIterator[] NO_TREES = {};
/**
@@ -247,10 +247,24 @@ public class TreeWalk {
* Release any resources used by this walker's reader.
* <p>
* A walker that has been released can be used again, but may need to be
- * released after the subsequent usage.
+ * released after the subsequent usage. Use {@link #close()} instead.
*/
+ @Deprecated
public void release() {
- reader.release();
+ close();
+ }
+
+ /**
+ * Release any resources used by this walker's reader.
+ * <p>
+ * A walker that has been released can be used again, but may need to be
+ * released after the subsequent usage.
+ *
+ * @since 4.0
+ */
+ @Override
+ public void close() {
+ reader.close();
}
/**

Back to the top