public static void send(byte[] content, final HttpServletRequest req,
final HttpServletResponse rsp) throws IOException {
content = sendInit(content, req, rsp);
- final OutputStream out = rsp.getOutputStream();
- try {
+ try (OutputStream out = rsp.getOutputStream()) {
out.write(content);
out.flush();
- } finally {
- out.close();
}
}
if (256 < out.length() && acceptsGzipEncoding(req)) {
TemporaryBuffer gzbuf = new TemporaryBuffer.Heap(LIMIT);
try {
- GZIPOutputStream gzip = new GZIPOutputStream(gzbuf);
- try {
+ try (GZIPOutputStream gzip = new GZIPOutputStream(gzbuf)) {
out.writeTo(gzip, null);
- } finally {
- gzip.close();
}
if (gzbuf.length() < out.length()) {
out = gzbuf;
// hardcoded LIMIT constant above assures us we wouldn't store
// more than 2 GiB of content in memory.
rsp.setContentLength((int) out.length());
- final OutputStream os = rsp.getOutputStream();
- try {
+ try (OutputStream os = rsp.getOutputStream()) {
out.writeTo(os, null);
os.flush();
- } finally {
- os.close();
}
}
}
c.setRequestProperty("Content-Type",
GitSmartHttpTools.RECEIVE_PACK_REQUEST_TYPE);
c.setFixedLengthStreamingMode(reqbin.length);
- OutputStream out = c.getOutputStream();
- try {
+ try (OutputStream out = c.getOutputStream()) {
out.write(reqbin);
- } finally {
- out.close();
}
assertEquals(200, c.getResponseCode());
assertEquals(GitSmartHttpTools.RECEIVE_PACK_RESULT_TYPE,
c.getContentType());
- InputStream rawin = c.getInputStream();
- try {
+ try (InputStream rawin = c.getInputStream()) {
PacketLineIn pckin = new PacketLineIn(rawin);
assertEquals("unpack error "
+ JGitText.get().packfileIsTruncatedNoParam,
assertEquals("ng refs/objects/A n/a (unpacker error)",
pckin.readString());
assertSame(PacketLineIn.END, pckin.readString());
- } finally {
- rawin.close();
}
} finally {
c.disconnect();
assertEquals("http", remoteURI.getScheme());
- Transport t = Transport.open(dst, remoteURI);
- try {
+ try (Transport t = Transport.open(dst, remoteURI)) {
assertTrue("isa TransportHttp", t instanceof TransportHttp);
assertTrue("isa HttpTransport", t instanceof HttpTransport);
headers.put("AnotherKey", "someValue");
((TransportHttp) t).setAdditionalHeaders(headers);
t.openFetch();
- } finally {
- t.close();
}
List<AccessEvent> requests = getRequests();
final HttpServletResponse r = (HttpServletResponse) response;
r.setContentType("text/plain");
r.setCharacterEncoding("UTF-8");
- PrintWriter w = r.getWriter();
- w.print("OK");
- w.close();
+ try (PrintWriter w = r.getWriter()) {
+ w.print("OK");
+ }
}
@Override
assertTrue("isa TransportHttp", t instanceof TransportHttp);
assertTrue("isa HttpTransport", t instanceof HttpTransport);
- FetchConnection c = t.openFetch();
- try {
+ try (FetchConnection c = t.openFetch()) {
map = c.getRefsMap();
- } finally {
- c.close();
}
}
*/
protected static void copyFile(final File src, final File dst)
throws IOException {
- final FileInputStream fis = new FileInputStream(src);
- try {
- final FileOutputStream fos = new FileOutputStream(dst);
- try {
- final byte[] buf = new byte[4096];
- int r;
- while ((r = fis.read(buf)) > 0) {
- fos.write(buf, 0, r);
- }
- } finally {
- fos.close();
+ try (FileInputStream fis = new FileInputStream(src);
+ FileOutputStream fos = new FileOutputStream(dst)) {
+ final byte[] buf = new byte[4096];
+ int r;
+ while ((r = fis.read(buf)) > 0) {
+ fos.write(buf, 0, r);
}
- } finally {
- fis.close();
}
}
dce.setFileMode(treeItr.getEntryFileMode());
dce.setLastModified(treeItr.getEntryLastModified());
dce.setLength((int) len);
- FileInputStream in = new FileInputStream(
- treeItr.getEntryFile());
- dce.setObjectId(inserter.insert(Constants.OBJ_BLOB, len, in));
- in.close();
+ try (FileInputStream in = new FileInputStream(
+ treeItr.getEntryFile())) {
+ dce.setObjectId(
+ inserter.insert(Constants.OBJ_BLOB, len, in));
+ }
builder.add(dce);
treeItr.next(1);
}
while (actTime <= startTime) {
Thread.sleep(sleepTime);
sleepTime *= 2;
- FileOutputStream fos = new FileOutputStream(tmp);
- fos.close();
+ try (FileOutputStream fos = new FileOutputStream(tmp)) {
+ // Do nothing
+ }
actTime = fs.lastModified(tmp);
}
return actTime;
}
private static String getBundleVersion(URL url) {
- try {
- InputStream is = url.openStream();
- try {
- Manifest manifest = new Manifest(is);
- return manifest.getMainAttributes().getValue("Bundle-Version"); //$NON-NLS-1$
- } finally {
- is.close();
- }
+ try (InputStream is = url.openStream()) {
+ Manifest manifest = new Manifest(is);
+ return manifest.getMainAttributes().getValue("Bundle-Version"); //$NON-NLS-1$
} catch (IOException e) {
// do nothing - will return null
}
else
rb.findGitDir(dir);
- Repository repo = rb.build();
- try {
+ try (Repository repo = rb.build()) {
run(repo);
- } finally {
- repo.close();
}
}
}
File nestedFile = new File(dir, "b.txt");
FileUtils.createNewFile(nestedFile);
- PrintWriter nesterFileWriter = new PrintWriter(nestedFile);
- nesterFileWriter.print("content");
- nesterFileWriter.flush();
-
- // create file
- indexFile = new File(db.getWorkTree(), "a.txt");
- FileUtils.createNewFile(indexFile);
- PrintWriter writer = new PrintWriter(indexFile);
- writer.print("content");
- writer.flush();
-
- // add file and commit it
- git.add().addFilepattern("dir").addFilepattern("a.txt").call();
- secondCommit = git.commit().setMessage("adding a.txt and dir/b.txt")
- .call();
-
- prestage = DirCache.read(db.getIndexFile(), db.getFS()).getEntry(
- indexFile.getName());
-
- // modify file and add to index
- writer.print("new content");
- writer.close();
- nesterFileWriter.print("new content");
- nesterFileWriter.close();
+ try (PrintWriter nestedFileWriter = new PrintWriter(nestedFile)) {
+ nestedFileWriter.print("content");
+ nestedFileWriter.flush();
+
+ // create file
+ indexFile = new File(db.getWorkTree(), "a.txt");
+ FileUtils.createNewFile(indexFile);
+ try (PrintWriter writer = new PrintWriter(indexFile)) {
+ writer.print("content");
+ writer.flush();
+
+ // add file and commit it
+ git.add().addFilepattern("dir").addFilepattern("a.txt").call();
+ secondCommit = git.commit()
+ .setMessage("adding a.txt and dir/b.txt").call();
+
+ prestage = DirCache.read(db.getIndexFile(), db.getFS())
+ .getEntry(indexFile.getName());
+
+ // modify file and add to index
+ writer.print("new content");
+ }
+ nestedFileWriter.print("new content");
+ }
git.add().addFilepattern("a.txt").addFilepattern("dir").call();
// create a file not added to the index
untrackedFile = new File(db.getWorkTree(),
"notAddedToIndex.txt");
FileUtils.createNewFile(untrackedFile);
- PrintWriter writer2 = new PrintWriter(untrackedFile);
- writer2.print("content");
- writer2.close();
+ try (PrintWriter writer2 = new PrintWriter(untrackedFile)) {
+ writer2.print("content");
+ }
}
@Test
assertFalse("is not large", ol.isLarge());
assertTrue("same content", Arrays.equals(data, ol.getCachedBytes()));
- ObjectStream in = ol.openStream();
- assertNotNull("have stream", in);
- assertEquals(type, in.getType());
- assertEquals(data.length, in.getSize());
- byte[] data2 = new byte[data.length];
- IO.readFully(in, data2, 0, data.length);
- assertTrue("same content", Arrays.equals(data2, data));
- assertEquals("stream at EOF", -1, in.read());
- in.close();
+ try (ObjectStream in = ol.openStream()) {
+ assertNotNull("have stream", in);
+ assertEquals(type, in.getType());
+ assertEquals(data.length, in.getSize());
+ byte[] data2 = new byte[data.length];
+ IO.readFully(in, data2, 0, data.length);
+ assertTrue("same content", Arrays.equals(data2, data));
+ assertEquals("stream at EOF", -1, in.read());
+ }
}
@Test
.getMessage());
}
- ObjectStream in = ol.openStream();
- assertNotNull("have stream", in);
- assertEquals(type, in.getType());
- assertEquals(data.length, in.getSize());
- byte[] data2 = new byte[data.length];
- IO.readFully(in, data2, 0, data.length);
- assertTrue("same content", Arrays.equals(data2, data));
- assertEquals("stream at EOF", -1, in.read());
- in.close();
+ try (ObjectStream in = ol.openStream()) {
+ assertNotNull("have stream", in);
+ assertEquals(type, in.getType());
+ assertEquals(data.length, in.getSize());
+ byte[] data2 = new byte[data.length];
+ IO.readFully(in, data2, 0, data.length);
+ assertTrue("same content", Arrays.equals(data2, data));
+ assertEquals("stream at EOF", -1, in.read());
+ }
}
@Test
assertNotNull(ol.getCachedBytes());
assertArrayEquals(data3, ol.getCachedBytes());
- ObjectStream in = ol.openStream();
- assertNotNull("have stream", in);
- assertEquals(Constants.OBJ_BLOB, in.getType());
- assertEquals(data3.length, in.getSize());
- byte[] act = new byte[data3.length];
- IO.readFully(in, act, 0, data3.length);
- assertTrue("same content", Arrays.equals(act, data3));
- assertEquals("stream at EOF", -1, in.read());
- in.close();
+ try (ObjectStream in = ol.openStream()) {
+ assertNotNull("have stream", in);
+ assertEquals(Constants.OBJ_BLOB, in.getType());
+ assertEquals(data3.length, in.getSize());
+ byte[] act = new byte[data3.length];
+ IO.readFully(in, act, 0, data3.length);
+ assertTrue("same content", Arrays.equals(act, data3));
+ assertEquals("stream at EOF", -1, in.read());
+ }
}
}
File packName = new File(dir, idA.name() + ".pack");
File idxName = new File(dir, idA.name() + ".idx");
- FileOutputStream f = new FileOutputStream(packName);
- try {
+ try (FileOutputStream f = new FileOutputStream(packName)) {
f.write(pack.toByteArray());
- } finally {
- f.close();
}
- f = new FileOutputStream(idxName);
- try {
+ try (FileOutputStream f = new FileOutputStream(idxName)) {
List<PackedObjectInfo> list = new ArrayList<>();
list.add(a);
list.add(b);
Collections.sort(list);
new PackIndexWriterV1(f).write(list, footer);
- } finally {
- f.close();
}
PackFile packFile = new PackFile(packName, PackExt.INDEX.getBit());
assertTrue("has blob", wc.has(id));
ObjectLoader ol = wc.open(id);
- ObjectStream in = ol.openStream();
- assertTrue(in instanceof ObjectStream.SmallStream);
- assertEquals(300, in.available());
- in.close();
+ try (ObjectStream in = ol.openStream()) {
+ assertTrue(in instanceof ObjectStream.SmallStream);
+ assertEquals(300, in.available());
+ }
wc.setStreamFileThreshold(299);
ol = wc.open(id);
- in = ol.openStream();
- assertTrue(in instanceof ObjectStream.Filter);
- assertEquals(1, in.available());
+ try (ObjectStream in = ol.openStream()) {
+ assertTrue(in instanceof ObjectStream.Filter);
+ assertEquals(1, in.available());
+ }
}
private static byte[] clone(int first, byte[] base) {
// Validate that an index written by PackWriter is the same.
final File idx2File = new File(indexFile.getAbsolutePath() + ".2");
- final FileOutputStream is = new FileOutputStream(idx2File);
- try {
+ try (FileOutputStream is = new FileOutputStream(idx2File)) {
writer.writeIndex(is);
- } finally {
- is.close();
}
final PackIndex idx2 = PackIndex.open(idx2File);
assertTrue(idx2 instanceof PackIndexV2);
String id = pw.computeName().getName();
File packdir = repo.getObjectDatabase().getPackDirectory();
File packFile = new File(packdir, "pack-" + id + ".pack");
- FileOutputStream packOS = new FileOutputStream(packFile);
- pw.writePack(NullProgressMonitor.INSTANCE,
- NullProgressMonitor.INSTANCE, packOS);
- packOS.close();
+ try (FileOutputStream packOS = new FileOutputStream(packFile)) {
+ pw.writePack(NullProgressMonitor.INSTANCE,
+ NullProgressMonitor.INSTANCE, packOS);
+ }
File idxFile = new File(packdir, "pack-" + id + ".idx");
- FileOutputStream idxOS = new FileOutputStream(idxFile);
- pw.writeIndex(idxOS);
- idxOS.close();
+ try (FileOutputStream idxOS = new FileOutputStream(idxFile)) {
+ pw.writeIndex(idxOS);
+ }
return PackIndex.open(idxFile);
}
}
@Test
public void test000_openrepo_default_gitDirSet() throws IOException {
File repo1Parent = new File(trash.getParentFile(), "r1");
- Repository repo1initial = new FileRepository(new File(repo1Parent,
- Constants.DOT_GIT));
- repo1initial.create();
- repo1initial.close();
+ try (Repository repo1initial = new FileRepository(
+ new File(repo1Parent, Constants.DOT_GIT))) {
+ repo1initial.create();
+ }
File theDir = new File(repo1Parent, Constants.DOT_GIT);
FileRepository r = (FileRepository) new FileRepositoryBuilder()
public void test000_openrepo_default_gitDirAndWorkTreeSet()
throws IOException {
File repo1Parent = new File(trash.getParentFile(), "r1");
- Repository repo1initial = new FileRepository(new File(repo1Parent,
- Constants.DOT_GIT));
- repo1initial.create();
- repo1initial.close();
+ try (Repository repo1initial = new FileRepository(
+ new File(repo1Parent, Constants.DOT_GIT))) {
+ repo1initial.create();
+ }
File theDir = new File(repo1Parent, Constants.DOT_GIT);
FileRepository r = (FileRepository) new FileRepositoryBuilder()
@Test
public void test000_openrepo_default_workDirSet() throws IOException {
File repo1Parent = new File(trash.getParentFile(), "r1");
- Repository repo1initial = new FileRepository(new File(repo1Parent,
- Constants.DOT_GIT));
- repo1initial.create();
- repo1initial.close();
+ try (Repository repo1initial = new FileRepository(
+ new File(repo1Parent, Constants.DOT_GIT))) {
+ repo1initial.create();
+ }
File theDir = new File(repo1Parent, Constants.DOT_GIT);
FileRepository r = (FileRepository) new FileRepositoryBuilder()
File repo1Parent = new File(trash.getParentFile(), "r1");
File workdir = new File(trash.getParentFile(), "rw");
FileUtils.mkdir(workdir);
- FileRepository repo1initial = new FileRepository(new File(repo1Parent,
- Constants.DOT_GIT));
- repo1initial.create();
- final FileBasedConfig cfg = repo1initial.getConfig();
- cfg.setString("core", null, "worktree", workdir.getAbsolutePath());
- cfg.save();
- repo1initial.close();
+ try (FileRepository repo1initial = new FileRepository(
+ new File(repo1Parent, Constants.DOT_GIT))) {
+ repo1initial.create();
+ final FileBasedConfig cfg = repo1initial.getConfig();
+ cfg.setString("core", null, "worktree", workdir.getAbsolutePath());
+ cfg.save();
+ }
File theDir = new File(repo1Parent, Constants.DOT_GIT);
FileRepository r = (FileRepository) new FileRepositoryBuilder()
File repo1Parent = new File(trash.getParentFile(), "r1");
File workdir = new File(trash.getParentFile(), "rw");
FileUtils.mkdir(workdir);
- FileRepository repo1initial = new FileRepository(new File(repo1Parent,
- Constants.DOT_GIT));
- repo1initial.create();
- final FileBasedConfig cfg = repo1initial.getConfig();
- cfg.setString("core", null, "worktree", "../../rw");
- cfg.save();
- repo1initial.close();
+ try (FileRepository repo1initial = new FileRepository(
+ new File(repo1Parent, Constants.DOT_GIT))) {
+ repo1initial.create();
+ final FileBasedConfig cfg = repo1initial.getConfig();
+ cfg.setString("core", null, "worktree", "../../rw");
+ cfg.save();
+ }
File theDir = new File(repo1Parent, Constants.DOT_GIT);
FileRepository r = (FileRepository) new FileRepositoryBuilder()
File indexFile = new File(trash, "idx");
File objDir = new File(trash, "../obj");
File altObjDir = db.getObjectDatabase().getDirectory();
- Repository repo1initial = new FileRepository(new File(repo1Parent,
- Constants.DOT_GIT));
- repo1initial.create();
- repo1initial.close();
+ try (Repository repo1initial = new FileRepository(
+ new File(repo1Parent, Constants.DOT_GIT))) {
+ repo1initial.create();
+ }
File theDir = new File(repo1Parent, Constants.DOT_GIT);
- FileRepository r = (FileRepository) new FileRepositoryBuilder() //
+ try (FileRepository r = (FileRepository) new FileRepositoryBuilder() //
.setGitDir(theDir).setObjectDirectory(objDir) //
.addAlternateObjectDirectory(altObjDir) //
.setIndexFile(indexFile) //
- .build();
- assertEqualsPath(theDir, r.getDirectory());
- assertEqualsPath(theDir.getParentFile(), r.getWorkTree());
- assertEqualsPath(indexFile, r.getIndexFile());
- assertEqualsPath(objDir, r.getObjectDatabase().getDirectory());
- assertNotNull(r.open(ObjectId
- .fromString("6db9c2ebf75590eef973081736730a9ea169a0c4")));
- // Must close or the default repo pack files created by this test gets
- // locked via the alternate object directories on Windows.
- r.close();
+ .build()) {
+ assertEqualsPath(theDir, r.getDirectory());
+ assertEqualsPath(theDir.getParentFile(), r.getWorkTree());
+ assertEqualsPath(indexFile, r.getIndexFile());
+ assertEqualsPath(objDir, r.getObjectDatabase().getDirectory());
+ assertNotNull(r.open(ObjectId
+ .fromString("6db9c2ebf75590eef973081736730a9ea169a0c4")));
+ }
}
protected void assertEqualsPath(File expected, File actual)
// Verify the commit we just wrote is in the correct format.
ObjectDatabase odb = db.getObjectDatabase();
assertTrue("is ObjectDirectory", odb instanceof ObjectDirectory);
- final XInputStream xis = new XInputStream(new FileInputStream(
- ((ObjectDirectory) odb).fileFor(cmtid)));
- try {
+ try (XInputStream xis = new XInputStream(
+ new FileInputStream(((ObjectDirectory) odb).fileFor(cmtid)))) {
assertEquals(0x78, xis.readUInt8());
assertEquals(0x9c, xis.readUInt8());
assertEquals(0, 0x789c % 31);
- } finally {
- xis.close();
}
// Verify we can read it.
assertFalse("is not large", ol.isLarge());
assertTrue("same content", Arrays.equals(data, ol.getCachedBytes()));
- ObjectStream in = ol.openStream();
- assertNotNull("have stream", in);
- assertEquals(type, in.getType());
- assertEquals(data.length, in.getSize());
- byte[] data2 = new byte[data.length];
- IO.readFully(in, data2, 0, data.length);
- assertTrue("same content", Arrays.equals(data2, data));
- assertEquals("stream at EOF", -1, in.read());
- in.close();
+ try (ObjectStream in = ol.openStream()) {
+ assertNotNull("have stream", in);
+ assertEquals(type, in.getType());
+ assertEquals(data.length, in.getSize());
+ byte[] data2 = new byte[data.length];
+ IO.readFully(in, data2, 0, data.length);
+ assertTrue("same content", Arrays.equals(data2, data));
+ assertEquals("stream at EOF", -1, in.read());
+ }
}
@Test
ObjectLoader ol;
{
- FileInputStream fs = new FileInputStream(path(id));
- try {
+ try (FileInputStream fs = new FileInputStream(path(id))) {
ol = UnpackedObject.open(fs, path(id), id, wc);
- } finally {
- fs.close();
}
}
.getMessage());
}
- ObjectStream in = ol.openStream();
- assertNotNull("have stream", in);
- assertEquals(type, in.getType());
- assertEquals(data.length, in.getSize());
- byte[] data2 = new byte[data.length];
- IO.readFully(in, data2, 0, data.length);
- assertTrue("same content", Arrays.equals(data2, data));
- assertEquals("stream at EOF", -1, in.read());
- in.close();
+ try (ObjectStream in = ol.openStream()) {
+ assertNotNull("have stream", in);
+ assertEquals(type, in.getType());
+ assertEquals(data.length, in.getSize());
+ byte[] data2 = new byte[data.length];
+ IO.readFully(in, data2, 0, data.length);
+ assertTrue("same content", Arrays.equals(data2, data));
+ assertEquals("stream at EOF", -1, in.read());
+ }
}
@Test
write(id, gz);
ObjectLoader ol;
- {
- FileInputStream fs = new FileInputStream(path(id));
- try {
- ol = UnpackedObject.open(fs, path(id), id, wc);
- } finally {
- fs.close();
- }
+ try (FileInputStream fs = new FileInputStream(path(id))) {
+ ol = UnpackedObject.open(fs, path(id), id, wc);
}
- try {
- byte[] tmp = new byte[data.length];
- InputStream in = ol.openStream();
- try {
- IO.readFully(in, tmp, 0, tmp.length);
- } finally {
- in.close();
- }
+ byte[] tmp = new byte[data.length];
+ try (InputStream in = ol.openStream()) {
+ IO.readFully(in, tmp, 0, tmp.length);
fail("Did not throw CorruptObjectException");
} catch (CorruptObjectException coe) {
assertEquals(MessageFormat.format(JGitText.get().objectIsCorrupt,
write(id, tr);
ObjectLoader ol;
- {
- FileInputStream fs = new FileInputStream(path(id));
- try {
- ol = UnpackedObject.open(fs, path(id), id, wc);
- } finally {
- fs.close();
- }
+ try (FileInputStream fs = new FileInputStream(path(id))) {
+ ol = UnpackedObject.open(fs, path(id), id, wc);
}
byte[] tmp = new byte[data.length];
+ @SuppressWarnings("resource") // We are testing that the close() method throws
InputStream in = ol.openStream();
IO.readFully(in, tmp, 0, tmp.length);
try {
write(id, tr);
ObjectLoader ol;
- {
- FileInputStream fs = new FileInputStream(path(id));
- try {
- ol = UnpackedObject.open(fs, path(id), id, wc);
- } finally {
- fs.close();
- }
+ try (FileInputStream fs = new FileInputStream(path(id))) {
+ ol = UnpackedObject.open(fs, path(id), id, wc);
}
byte[] tmp = new byte[data.length];
+ @SuppressWarnings("resource") // We are testing that the close() method throws
InputStream in = ol.openStream();
IO.readFully(in, tmp, 0, tmp.length);
try {
assertFalse("is not large", ol.isLarge());
assertTrue("same content", Arrays.equals(data, ol.getCachedBytes()));
- ObjectStream in = ol.openStream();
- assertNotNull("have stream", in);
- assertEquals(type, in.getType());
- assertEquals(data.length, in.getSize());
- byte[] data2 = new byte[data.length];
- IO.readFully(in, data2, 0, data.length);
- assertTrue("same content", Arrays.equals(data, ol.getCachedBytes()));
- in.close();
+ try (ObjectStream in = ol.openStream()) {
+ assertNotNull("have stream", in);
+ assertEquals(type, in.getType());
+ assertEquals(data.length, in.getSize());
+ byte[] data2 = new byte[data.length];
+ IO.readFully(in, data2, 0, data.length);
+ assertTrue("same content",
+ Arrays.equals(data, ol.getCachedBytes()));
+ }
}
@Test
write(id, compressPackFormat(type, data));
ObjectLoader ol;
- {
- FileInputStream fs = new FileInputStream(path(id));
- try {
- ol = UnpackedObject.open(fs, path(id), id, wc);
- } finally {
- fs.close();
- }
+ try (FileInputStream fs = new FileInputStream(path(id))) {
+ ol = UnpackedObject.open(fs, path(id), id, wc);
}
assertNotNull("created loader", ol);
.getMessage());
}
- ObjectStream in = ol.openStream();
- assertNotNull("have stream", in);
- assertEquals(type, in.getType());
- assertEquals(data.length, in.getSize());
- byte[] data2 = new byte[data.length];
- IO.readFully(in, data2, 0, data.length);
- assertTrue("same content", Arrays.equals(data2, data));
- assertEquals("stream at EOF", -1, in.read());
- in.close();
+ try (ObjectStream in = ol.openStream()) {
+ assertNotNull("have stream", in);
+ assertEquals(type, in.getType());
+ assertEquals(data.length, in.getSize());
+ byte[] data2 = new byte[data.length];
+ IO.readFully(in, data2, 0, data.length);
+ assertTrue("same content", Arrays.equals(data2, data));
+ assertEquals("stream at EOF", -1, in.read());
+ }
}
@Test
private void write(ObjectId id, byte[] data) throws IOException {
File path = path(id);
FileUtils.mkdirs(path.getParentFile());
- FileOutputStream out = new FileOutputStream(path);
- try {
+ try (FileOutputStream out = new FileOutputStream(path)) {
out.write(data);
- } finally {
- out.close();
}
}
super.setUp();
toLoad = new ArrayList<>();
- final BufferedReader br = new BufferedReader(new InputStreamReader(
+ try (BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(JGitTestUtil
.getTestResourceFile("all_packed_objects.txt")),
- Constants.CHARSET));
- try {
+ Constants.CHARSET))) {
String line;
while ((line = br.readLine()) != null) {
final String[] parts = line.split(" {1,}");
// parts[4] is the offset in the pack
toLoad.add(o);
}
- } finally {
- br.close();
}
assertEquals(96, toLoad.size());
}
private File addToWorkDir(String path, String content) throws IOException {
File f = new File(db.getWorkTree(), path);
- FileOutputStream fos = new FileOutputStream(f);
- try {
+ try (FileOutputStream fos = new FileOutputStream(f)) {
fos.write(content.getBytes(Constants.CHARACTER_ENCODING));
return f;
- } finally {
- fos.close();
}
}
}
InterruptedException {
Ref ref = db.exactRef("refs/heads/master");
assertEquals(Storage.PACKED, ref.getStorage());
- FileOutputStream os = new FileOutputStream(new File(db.getDirectory(),
- "refs/heads/master"));
- os.write(ref.getObjectId().name().getBytes());
- os.write('\n');
- os.close();
+ try (FileOutputStream os = new FileOutputStream(
+ new File(db.getDirectory(), "refs/heads/master"))) {
+ os.write(ref.getObjectId().name().getBytes());
+ os.write('\n');
+ }
ref = db.exactRef("refs/heads/master");
assertEquals(Storage.LOOSE, ref.getStorage());
@Test
public void testFileKeyOpenExisting() throws IOException {
- Repository r;
-
- r = new FileKey(db.getDirectory(), db.getFS()).open(true);
- assertNotNull(r);
- assertEqualsFile(db.getDirectory(), r.getDirectory());
- r.close();
+ try (Repository r = new FileKey(db.getDirectory(), db.getFS())
+ .open(true)) {
+ assertNotNull(r);
+ assertEqualsFile(db.getDirectory(), r.getDirectory());
+ }
- r = new FileKey(db.getDirectory(), db.getFS()).open(false);
- assertNotNull(r);
- assertEqualsFile(db.getDirectory(), r.getDirectory());
- r.close();
+ try (Repository r = new FileKey(db.getDirectory(), db.getFS())
+ .open(false)) {
+ assertNotNull(r);
+ assertEqualsFile(db.getDirectory(), r.getDirectory());
+ }
}
@Test
public void testFileKeyOpenNew() throws IOException {
- final Repository n = createRepository(true, false);
- final File gitdir = n.getDirectory();
- n.close();
+ File gitdir;
+ try (Repository n = createRepository(true, false)) {
+ gitdir = n.getDirectory();
+ }
recursiveDelete(gitdir);
assertFalse(gitdir.exists());
@Test
public void testCacheOpen() throws Exception {
final FileKey loc = FileKey.exact(db.getDirectory(), db.getFS());
+ @SuppressWarnings("resource") // We are testing the close() method
final Repository d2 = RepositoryCache.open(loc);
assertNotSame(db, d2);
assertSame(d2, RepositoryCache.open(FileKey.exact(loc.getFile(), db.getFS())));
@Test
public void testRepositoryUsageCount() throws Exception {
FileKey loc = FileKey.exact(db.getDirectory(), db.getFS());
+ @SuppressWarnings("resource") // We are testing the close() method
Repository d2 = RepositoryCache.open(loc);
assertEquals(1, d2.useCnt.get());
RepositoryCache.open(FileKey.exact(loc.getFile(), db.getFS()));
@Test
public void testRepositoryUsageCountWithRegisteredRepository()
throws IOException {
+ @SuppressWarnings("resource") // We are testing the close() method
Repository repo = createRepository(false, false);
assertEquals(1, repo.useCnt.get());
RepositoryCache.register(repo);
@Test
public void testRepositoryNotUnregisteringWhenClosing() throws Exception {
FileKey loc = FileKey.exact(db.getDirectory(), db.getFS());
+ @SuppressWarnings("resource") // We are testing the close() method
Repository d2 = RepositoryCache.open(loc);
assertEquals(1, d2.useCnt.get());
assertThat(RepositoryCache.getRegisteredKeys(),
@Test
public void testRepositoryUnregisteringWhenExpiredAndUsageCountNegative()
throws Exception {
+ @SuppressWarnings("resource") // We are testing the close() method
Repository repoA = createBareRepository();
RepositoryCache.register(repoA);
@Test
public void testRepositoryUnregisteringWhenExpired() throws Exception {
+ @SuppressWarnings("resource") // We are testing the close() method
Repository repoA = createRepository(true, false);
+ @SuppressWarnings("resource") // We are testing the close() method
Repository repoB = createRepository(true, false);
Repository repoC = createBareRepository();
RepositoryCache.register(repoA);
@Test
public void testReconfigure() throws InterruptedException, IOException {
+ @SuppressWarnings("resource") // We are testing the close() method
Repository repo = createRepository(false, false);
RepositoryCache.register(repo);
assertTrue(RepositoryCache.isCached(repo));
db.writeSquashCommitMsg(null);
assertEquals(db.readSquashCommitMsg(), null);
assertFalse(new File(db.getDirectory(), Constants.SQUASH_MSG).exists());
- FileOutputStream fos = new FileOutputStream(new File(db.getDirectory(),
- Constants.SQUASH_MSG));
- try {
+ try (FileOutputStream fos = new FileOutputStream(
+ new File(db.getDirectory(), Constants.SQUASH_MSG))) {
fos.write(squashMsg.getBytes(Constants.CHARACTER_ENCODING));
- } finally {
- fos.close();
}
assertEquals(db.readSquashCommitMsg(), squashMsg);
}
git.commit().setMessage("added c.txt").call();
// Get a handle to the the file so on windows it can't be deleted.
- FileInputStream fis = new FileInputStream(new File(db.getWorkTree(),
- "b.txt"));
- MergeResult mergeRes = git.merge().setStrategy(strategy)
- .include(masterCommit).call();
- if (mergeRes.getMergeStatus().equals(MergeStatus.FAILED)) {
- // probably windows
- assertEquals(1, mergeRes.getFailingPaths().size());
- assertEquals(MergeFailureReason.COULD_NOT_DELETE, mergeRes
- .getFailingPaths().get("b.txt"));
+ try (FileInputStream fis = new FileInputStream(
+ new File(db.getWorkTree(), "b.txt"))) {
+ MergeResult mergeRes = git.merge().setStrategy(strategy)
+ .include(masterCommit).call();
+ if (mergeRes.getMergeStatus().equals(MergeStatus.FAILED)) {
+ // probably windows
+ assertEquals(1, mergeRes.getFailingPaths().size());
+ assertEquals(MergeFailureReason.COULD_NOT_DELETE,
+ mergeRes.getFailingPaths().get("b.txt"));
+ }
+ assertEquals(
+ "[a.txt, mode:100644, content:master]"
+ + "[c.txt, mode:100644, content:side]",
+ indexState(CONTENT));
}
- assertEquals("[a.txt, mode:100644, content:master]"
- + "[c.txt, mode:100644, content:side]", indexState(CONTENT));
- fis.close();
}
@Theory
private Patch parseTestPatchFile() throws IOException {
final String patchFile = JGitTestUtil.getName() + ".patch";
- final InputStream in = getClass().getResourceAsStream(patchFile);
- if (in == null) {
- fail("No " + patchFile + " test vector");
- return null; // Never happens
- }
- try {
+ try (InputStream in = getClass().getResourceAsStream(patchFile)) {
+ if (in == null) {
+ fail("No " + patchFile + " test vector");
+ return null; // Never happens
+ }
final Patch p = new Patch();
p.parse(in);
return p;
- } finally {
- in.close();
}
}
private Patch parseTestPatchFile() throws IOException {
final String patchFile = JGitTestUtil.getName() + ".patch";
- final InputStream in = getClass().getResourceAsStream(patchFile);
- if (in == null) {
- fail("No " + patchFile + " test vector");
- return null; // Never happens
- }
- try {
+ try (InputStream in = getClass().getResourceAsStream(patchFile)) {
+ if (in == null) {
+ fail("No " + patchFile + " test vector");
+ return null; // Never happens
+ }
final Patch p = new Patch();
p.parse(in);
return p;
- } finally {
- in.close();
}
}
}
private Patch parseTestPatchFile() throws IOException {
final String patchFile = JGitTestUtil.getName() + ".patch";
- final InputStream in = getClass().getResourceAsStream(patchFile);
- if (in == null) {
- fail("No " + patchFile + " test vector");
- return null; // Never happens
- }
- try {
+ try (InputStream in = getClass().getResourceAsStream(patchFile)) {
+ if (in == null) {
+ fail("No " + patchFile + " test vector");
+ return null; // Never happens
+ }
final Patch p = new Patch();
p.parse(in);
return p;
- } finally {
- in.close();
}
}
}
private Patch parseTestPatchFile() throws IOException {
final String patchFile = JGitTestUtil.getName() + ".patch";
- final InputStream in = getClass().getResourceAsStream(patchFile);
- if (in == null) {
- fail("No " + patchFile + " test vector");
- return null; // Never happens
- }
- try {
+ try (InputStream in = getClass().getResourceAsStream(patchFile)) {
+ if (in == null) {
+ fail("No " + patchFile + " test vector");
+ return null; // Never happens
+ }
final Patch p = new Patch();
p.parse(in);
return p;
- } finally {
- in.close();
}
}
}
command.setPath(path);
String uri = db.getDirectory().toURI().toString();
command.setURI(uri);
- Repository repo = command.call();
- assertNotNull(repo);
- ObjectId subCommit = repo.resolve(Constants.HEAD);
- repo.close();
+ ObjectId subCommit;
+ try (Repository repo = command.call()) {
+ assertNotNull(repo);
+ subCommit = repo.resolve(Constants.HEAD);
+ }
SubmoduleWalk generator = SubmoduleWalk.forIndex(db);
assertTrue(generator.next());
assertEquals(uri, generator.getModulesUrl());
assertEquals(path, generator.getModulesPath());
assertEquals(uri, generator.getConfigUrl());
- Repository subModRepo = generator.getRepository();
- assertNotNull(subModRepo);
- assertEquals(subCommit, commit);
- subModRepo.close();
+ try (Repository subModRepo = generator.getRepository()) {
+ assertNotNull(subModRepo);
+ assertEquals(subCommit, commit);
+ }
Status status = Git.wrap(db).status().call();
assertTrue(status.getAdded().contains(Constants.DOT_GIT_MODULES));
fullUri = fullUri.replace('\\', '/');
}
assertEquals(fullUri, generator.getConfigUrl());
- Repository subModRepo = generator.getRepository();
- assertNotNull(subModRepo);
- assertEquals(
- fullUri,
- subModRepo
- .getConfig()
- .getString(ConfigConstants.CONFIG_REMOTE_SECTION,
- Constants.DEFAULT_REMOTE_NAME,
- ConfigConstants.CONFIG_KEY_URL));
- subModRepo.close();
+ try (Repository subModRepo = generator.getRepository()) {
+ assertNotNull(subModRepo);
+ assertEquals(fullUri,
+ subModRepo.getConfig().getString(
+ ConfigConstants.CONFIG_REMOTE_SECTION,
+ Constants.DEFAULT_REMOTE_NAME,
+ ConfigConstants.CONFIG_KEY_URL));
+ }
assertEquals(commit, repo.resolve(Constants.HEAD));
Status status = Git.wrap(db).status().call();
generator = SubmoduleWalk.forIndex(db);
assertTrue(generator.next());
assertEquals(url, generator.getConfigUrl());
- Repository subModRepository = generator.getRepository();
- StoredConfig submoduleConfig = subModRepository.getConfig();
- subModRepository.close();
- assertEquals(url, submoduleConfig.getString(
- ConfigConstants.CONFIG_REMOTE_SECTION,
- Constants.DEFAULT_REMOTE_NAME, ConfigConstants.CONFIG_KEY_URL));
+ try (Repository subModRepository = generator.getRepository()) {
+ StoredConfig submoduleConfig = subModRepository.getConfig();
+ assertEquals(url,
+ submoduleConfig.getString(
+ ConfigConstants.CONFIG_REMOTE_SECTION,
+ Constants.DEFAULT_REMOTE_NAME,
+ ConfigConstants.CONFIG_KEY_URL));
+ }
}
@Test
generator = SubmoduleWalk.forIndex(db);
assertTrue(generator.next());
assertEquals("git://server/sub.git", generator.getConfigUrl());
- Repository subModRepository1 = generator.getRepository();
- StoredConfig submoduleConfig = subModRepository1.getConfig();
- subModRepository1.close();
- assertEquals("git://server/sub.git", submoduleConfig.getString(
- ConfigConstants.CONFIG_REMOTE_SECTION,
- Constants.DEFAULT_REMOTE_NAME, ConfigConstants.CONFIG_KEY_URL));
+ try (Repository subModRepository1 = generator.getRepository()) {
+ StoredConfig submoduleConfig = subModRepository1.getConfig();
+ assertEquals("git://server/sub.git",
+ submoduleConfig.getString(
+ ConfigConstants.CONFIG_REMOTE_SECTION,
+ Constants.DEFAULT_REMOTE_NAME,
+ ConfigConstants.CONFIG_KEY_URL));
+ }
}
}
SubmoduleWalk generator = SubmoduleWalk.forIndex(db);
assertTrue(generator.next());
- Repository subRepo = generator.getRepository();
- assertNotNull(subRepo);
- assertEquals(commit, subRepo.resolve(Constants.HEAD));
- subRepo.close();
+ try (Repository subRepo = generator.getRepository()) {
+ assertNotNull(subRepo);
+ assertEquals(commit, subRepo.resolve(Constants.HEAD));
+ }
}
@Test
}
private void config(final String data) throws IOException {
- final OutputStreamWriter fw = new OutputStreamWriter(
- new FileOutputStream(configFile), "UTF-8");
- fw.write(data);
- fw.close();
+ try (OutputStreamWriter fw = new OutputStreamWriter(
+ new FileOutputStream(configFile), "UTF-8")) {
+ fw.write(data);
+ }
}
@Test
@Test
public void test1() throws IOException {
File packFile = JGitTestUtil.getTestResourceFile("pack-34be9032ac282b11fa9babdc2b2a93ca996c9c2f.pack");
- final InputStream is = new FileInputStream(packFile);
- try {
+ try (InputStream is = new FileInputStream(packFile)) {
ObjectDirectoryPackParser p = (ObjectDirectoryPackParser) index(is);
p.parse(NullProgressMonitor.INSTANCE);
PackFile file = p.getPackFile();
assertTrue(file.hasObject(ObjectId.fromString("902d5476fa249b7abc9d84c611577a81381f0327")));
assertTrue(file.hasObject(ObjectId.fromString("aabf2ffaec9b497f0950352b3e582d73035c2035")));
assertTrue(file.hasObject(ObjectId.fromString("c59759f143fb1fe21c197981df75a7ee00290799")));
- } finally {
- is.close();
}
}
@Test
public void test2() throws IOException {
File packFile = JGitTestUtil.getTestResourceFile("pack-df2982f284bbabb6bdb59ee3fcc6eb0983e20371.pack");
- final InputStream is = new FileInputStream(packFile);
- try {
+ try (InputStream is = new FileInputStream(packFile)) {
ObjectDirectoryPackParser p = (ObjectDirectoryPackParser) index(is);
p.parse(NullProgressMonitor.INSTANCE);
PackFile file = p.getPackFile();
assertTrue(file.hasObject(ObjectId.fromString("20a8ade77639491ea0bd667bf95de8abf3a434c8")));
assertTrue(file.hasObject(ObjectId.fromString("2675188fd86978d5bc4d7211698b2118ae3bf658")));
// and lots more...
- } finally {
- is.close();
}
}
URLConnection c = url.openConnection();
c.setConnectTimeout(500);
c.setReadTimeout(500);
- BufferedReader reader = new BufferedReader(
- new InputStreamReader(c.getInputStream()));
- try {
+ try (BufferedReader reader = new BufferedReader(
+ new InputStreamReader(c.getInputStream()))) {
return reader.readLine();
- } finally {
- reader.close();
}
} catch (UnknownHostException | SocketTimeoutException e) {
return "Can't reach http://checkip.amazonaws.com to"
Properties props = Props.discover();
props.put(AmazonS3.Keys.PASSWORD, JGIT_PASS);
props.put(AmazonS3.Keys.CRYPTO_ALG, algorithm);
- PrintWriter writer = new PrintWriter(JGIT_CONF_FILE);
- props.store(writer, "JGIT S3 connection configuration file.");
- writer.close();
+ try (PrintWriter writer = new PrintWriter(JGIT_CONF_FILE)) {
+ props.store(writer, "JGIT S3 connection configuration file.");
+ }
}
/**
static void configCreate(Properties source) throws Exception {
Properties target = Props.discover();
target.putAll(source);
- PrintWriter writer = new PrintWriter(JGIT_CONF_FILE);
- target.store(writer, "JGIT S3 connection configuration file.");
- writer.close();
+ try (PrintWriter writer = new PrintWriter(JGIT_CONF_FILE)) {
+ target.store(writer, "JGIT S3 connection configuration file.");
+ }
}
/**
{
byte[] origin = sourceText.getBytes(charset);
ByteArrayOutputStream target = new ByteArrayOutputStream();
- OutputStream source = crypto.encrypt(target);
- source.write(origin);
- source.flush();
- source.close();
+ try (OutputStream source = crypto.encrypt(target)) {
+ source.write(origin);
+ source.flush();
+ }
cipherText = target.toByteArray();
}
{
remoteConfig.update(config);
config.save();
- Git git = Git.open(dirOne);
- git.checkout().setName("master").call();
- git.push().setRemote(remote).setRefSpecs(specs).call();
- git.close();
+ try (Git git = Git.open(dirOne)) {
+ git.checkout().setName("master").call();
+ git.push().setRemote(remote).setRefSpecs(specs).call();
+ }
File fileStatic = new File(dirOne, nameStatic);
assertTrue("Provided by setup", fileStatic.exists());
File fileStatic = new File(dirTwo, nameStatic);
assertFalse("Not Provided by setup", fileStatic.exists());
- Git git = Git.cloneRepository().setURI(uri).setDirectory(dirTwo)
- .call();
- git.close();
+ try (Git git = Git.cloneRepository().setURI(uri)
+ .setDirectory(dirTwo).call()) {
+ assertTrue("Provided by clone", fileStatic.exists());
+ }
- assertTrue("Provided by clone", fileStatic.exists());
}
{ // Verify static file content.
assertTrue("Provided by create", fileDynamic.exists());
assertTrue("Need content to encrypt", fileDynamic.length() > 0);
- Git git = Git.open(dirOne);
- git.add().addFilepattern(nameDynamic).call();
- git.commit().setMessage(nameDynamic).call();
- git.push().setRemote(remote).setRefSpecs(specs).call();
- git.close();
+ try (Git git = Git.open(dirOne)) {
+ git.add().addFilepattern(nameDynamic).call();
+ git.commit().setMessage(nameDynamic).call();
+ git.push().setRemote(remote).setRefSpecs(specs).call();
+ }
}
File fileDynamic = new File(dirTwo, nameDynamic);
assertFalse("Not Provided by setup", fileDynamic.exists());
- Git git = Git.open(dirTwo);
- git.pull().call();
- git.close();
+ try (Git git = Git.open(dirTwo)) {
+ git.pull().call();
+ }
assertTrue("Provided by pull", fileDynamic.exists());
}
public class NotTreeFilterTest extends RepositoryTestCase {
@Test
public void testWrap() throws Exception {
- final TreeWalk tw = new TreeWalk(db);
- final TreeFilter a = TreeFilter.ALL;
- final TreeFilter n = NotTreeFilter.create(a);
- assertNotNull(n);
- assertTrue(a.include(tw));
- assertFalse(n.include(tw));
+ try (TreeWalk tw = new TreeWalk(db)) {
+ final TreeFilter a = TreeFilter.ALL;
+ final TreeFilter n = NotTreeFilter.create(a);
+ assertNotNull(n);
+ assertTrue(a.include(tw));
+ assertFalse(n.include(tw));
+ }
}
@Test
assertEquals(1, r.length);
assertEquals(test, r[0]);
}
- {
- final ByteArrayOutputStream o = new ByteArrayOutputStream();
+ try (ByteArrayOutputStream o = new ByteArrayOutputStream()) {
b.writeTo(o, null);
- o.close();
final byte[] r = o.toByteArray();
assertEquals(1, r.length);
assertEquals(test, r[0]);
assertEquals(test.length, r.length);
assertArrayEquals(test, r);
}
- {
- final ByteArrayOutputStream o = new ByteArrayOutputStream();
+ try (ByteArrayOutputStream o = new ByteArrayOutputStream()) {
b.writeTo(o, null);
- o.close();
final byte[] r = o.toByteArray();
assertEquals(test.length, r.length);
assertArrayEquals(test, r);
assertEquals(test.length, r.length);
assertArrayEquals(test, r);
}
- {
- final ByteArrayOutputStream o = new ByteArrayOutputStream();
+ try (ByteArrayOutputStream o = new ByteArrayOutputStream()) {
b.writeTo(o, null);
- o.close();
final byte[] r = o.toByteArray();
assertEquals(test.length, r.length);
assertArrayEquals(test, r);
assertEquals(test.length, r.length);
assertArrayEquals(test, r);
}
- {
- final ByteArrayOutputStream o = new ByteArrayOutputStream();
+ try (ByteArrayOutputStream o = new ByteArrayOutputStream()) {
b.writeTo(o, null);
- o.close();
final byte[] r = o.toByteArray();
assertEquals(test.length, r.length);
assertArrayEquals(test, r);
assertEquals(test.length, r.length);
assertArrayEquals(test, r);
}
- {
- final ByteArrayOutputStream o = new ByteArrayOutputStream();
+ try (ByteArrayOutputStream o = new ByteArrayOutputStream()) {
b.writeTo(o, null);
- o.close();
final byte[] r = o.toByteArray();
assertEquals(test.length, r.length);
assertArrayEquals(test, r);
assertEquals(test.length, r.length);
assertArrayEquals(test, r);
}
- {
- final ByteArrayOutputStream o = new ByteArrayOutputStream();
+ try (ByteArrayOutputStream o = new ByteArrayOutputStream()) {
b.writeTo(o, null);
- o.close();
final byte[] r = o.toByteArray();
assertEquals(test.length, r.length);
assertArrayEquals(test, r);
public void testInCoreInputStream() throws IOException {
final int cnt = 256;
final byte[] test = new TestRng(getName()).nextBytes(cnt);
- final TemporaryBuffer.Heap b = new TemporaryBuffer.Heap(cnt + 4);
- b.write(test);
- b.close();
-
- InputStream in = b.openInputStream();
- byte[] act = new byte[cnt];
- IO.readFully(in, act, 0, cnt);
- assertArrayEquals(test, act);
+ try (final TemporaryBuffer.Heap b = new TemporaryBuffer.Heap(cnt + 4)) {
+ b.write(test);
+ InputStream in = b.openInputStream();
+ byte[] act = new byte[cnt];
+ IO.readFully(in, act, 0, cnt);
+ assertArrayEquals(test, act);
+ }
}
@Test
assertEquals(test.length, r.length);
assertArrayEquals(test, r);
}
- {
- final ByteArrayOutputStream o = new ByteArrayOutputStream();
+ try (ByteArrayOutputStream o = new ByteArrayOutputStream()) {
b.writeTo(o, null);
- o.close();
final byte[] r = o.toByteArray();
assertEquals(test.length, r.length);
assertArrayEquals(test, r);
assertEquals(test.length, r.length);
assertArrayEquals(test, r);
}
- {
- final ByteArrayOutputStream o = new ByteArrayOutputStream();
+ try (ByteArrayOutputStream o = new ByteArrayOutputStream()) {
b.writeTo(o, null);
- o.close();
final byte[] r = o.toByteArray();
assertEquals(test.length, r.length);
assertArrayEquals(test, r);
assertEquals(test.length, r.length);
assertArrayEquals(test, r);
}
- {
- final ByteArrayOutputStream o = new ByteArrayOutputStream();
+ try (ByteArrayOutputStream o = new ByteArrayOutputStream()) {
b.writeTo(o, null);
- o.close();
final byte[] r = o.toByteArray();
assertEquals(test.length, r.length);
assertArrayEquals(test, r);
assertEquals(expect.length, r.length);
assertArrayEquals(expect, r);
}
- {
- final ByteArrayOutputStream o = new ByteArrayOutputStream();
+ try (ByteArrayOutputStream o = new ByteArrayOutputStream()) {
b.writeTo(o, null);
- o.close();
final byte[] r = o.toByteArray();
assertEquals(expect.length, r.length);
assertArrayEquals(expect, r);
for (int i = -4; i < 5; ++i) {
int size = Math.abs(i);
byte[] buf = new byte[size];
- InputStream in = new ByteArrayInputStream(inbytes);
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- OutputStream out = new AutoCRLFOutputStream(bos);
- if (i > 0) {
- int n;
- while ((n = in.read(buf)) >= 0) {
- out.write(buf, 0, n);
+ try (InputStream in = new ByteArrayInputStream(inbytes);
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ OutputStream out = new AutoCRLFOutputStream(bos)) {
+ if (i > 0) {
+ int n;
+ while ((n = in.read(buf)) >= 0) {
+ out.write(buf, 0, n);
+ }
+ } else if (i < 0) {
+ int n;
+ while ((n = in.read(buf)) >= 0) {
+ byte[] b = new byte[n];
+ System.arraycopy(buf, 0, b, 0, n);
+ out.write(b);
+ }
+ } else {
+ int c;
+ while ((c = in.read()) != -1)
+ out.write(c);
}
- } else if (i < 0) {
- int n;
- while ((n = in.read(buf)) >= 0) {
- byte[] b = new byte[n];
- System.arraycopy(buf, 0, b, 0, n);
- out.write(b);
- }
- } else {
- int c;
- while ((c = in.read()) != -1)
- out.write(c);
+ out.flush();
+ byte[] actualBytes = bos.toByteArray();
+ Assert.assertEquals("bufsize=" + size, encode(expectBytes),
+ encode(actualBytes));
}
- out.flush();
- in.close();
- out.close();
- byte[] actualBytes = bos.toByteArray();
- Assert.assertEquals("bufsize=" + size, encode(expectBytes),
- encode(actualBytes));
}
}
public class UnionInputStreamTest {
@Test
public void testEmptyStream() throws IOException {
- final UnionInputStream u = new UnionInputStream();
- assertTrue(u.isEmpty());
- assertEquals(-1, u.read());
- assertEquals(-1, u.read(new byte[1], 0, 1));
- assertEquals(0, u.available());
- assertEquals(0, u.skip(1));
- u.close();
+ try (UnionInputStream u = new UnionInputStream()) {
+ assertTrue(u.isEmpty());
+ assertEquals(-1, u.read());
+ assertEquals(-1, u.read(new byte[1], 0, 1));
+ assertEquals(0, u.available());
+ assertEquals(0, u.skip(1));
+ }
}
@Test
@Test
public void testCloseDuringClose() throws IOException {
- final UnionInputStream u = new UnionInputStream();
final boolean closed[] = new boolean[2];
- u.add(new ByteArrayInputStream(new byte[] { 1 }) {
- @Override
- public void close() {
- closed[0] = true;
- }
- });
- u.add(new ByteArrayInputStream(new byte[] { 2 }) {
- @Override
- public void close() {
- closed[1] = true;
- }
- });
+ try (UnionInputStream u = new UnionInputStream()) {
+ u.add(new ByteArrayInputStream(new byte[] { 1 }) {
+ @Override
+ public void close() {
+ closed[0] = true;
+ }
+ });
+ u.add(new ByteArrayInputStream(new byte[] { 2 }) {
+ @Override
+ public void close() {
+ closed[1] = true;
+ }
+ });
- assertFalse(closed[0]);
- assertFalse(closed[1]);
-
- u.close();
+ assertFalse(closed[0]);
+ assertFalse(closed[1]);
+ }
assertTrue(closed[0]);
assertTrue(closed[1]);
@Test
public void testExceptionDuringClose() {
+ @SuppressWarnings("resource") // We are testing the close() method
final UnionInputStream u = new UnionInputStream();
u.add(new ByteArrayInputStream(new byte[] { 1 }) {
@Override
if (!update.call().isEmpty()) {
SubmoduleWalk walk = SubmoduleWalk.forIndex(clonedRepo);
while (walk.next()) {
- Repository subRepo = walk.getRepository();
- if (subRepo != null) {
- try {
+ try (Repository subRepo = walk.getRepository()) {
+ if (subRepo != null) {
cloneSubmodules(subRepo);
- } finally {
- subRepo.close();
}
}
}
String content)
throws IOException {
File file = new File(parentDir, name);
- FileOutputStream fos = new FileOutputStream(file);
- try {
+ try (FileOutputStream fos = new FileOutputStream(file)) {
fos.write(content.getBytes(Constants.CHARACTER_ENCODING));
fos.write('\n');
- } finally {
- fos.close();
}
}
private static void appendToFile(File file, String content)
throws IOException {
- FileOutputStream fos = new FileOutputStream(file, true);
- try {
+ try (FileOutputStream fos = new FileOutputStream(file, true)) {
fos.write(content.getBytes(Constants.CHARACTER_ENCODING));
fos.write('\n');
- } finally {
- fos.close();
}
}
}
entry.setLastModified(wtIter.getEntryLastModified());
entry.setFileMode(wtIter.getEntryFileMode());
long contentLength = wtIter.getEntryContentLength();
- InputStream in = wtIter.openEntryStream();
- try {
+ try (InputStream in = wtIter.openEntryStream()) {
entry.setObjectId(inserter.insert(
Constants.OBJ_BLOB, contentLength, in));
- } finally {
- in.close();
}
if (indexIter == null && headIter == null)
private void hashLargeObject(ObjectLoader obj) throws IOException,
TableFullException {
- ObjectStream in1 = obj.openStream();
boolean text;
- try {
+ try (ObjectStream in1 = obj.openStream()) {
text = !RawText.isBinary(in1);
- } finally {
- in1.close();
}
- ObjectStream in2 = obj.openStream();
- try {
+ try (ObjectStream in2 = obj.openStream()) {
hash(in2, in2.getSize(), text);
- } finally {
- in2.close();
}
}
File srcFile = new File(repo.getWorkTree(),
path + "/" + src); //$NON-NLS-1$
File destFile = new File(repo.getWorkTree(), dest);
- FileInputStream input = new FileInputStream(srcFile);
- try {
- FileOutputStream output = new FileOutputStream(destFile);
- try {
- FileChannel channel = input.getChannel();
- output.getChannel().transferFrom(
- channel, 0, channel.size());
- } finally {
- output.close();
- }
- } finally {
- input.close();
+ try (FileInputStream input = new FileInputStream(srcFile);
+ FileOutputStream output = new FileOutputStream(destFile)) {
+ FileChannel channel = input.getChannel();
+ output.getChannel().transferFrom(channel, 0, channel.size());
}
}
}
try {
ctx.stats.readIdx++;
long start = System.nanoTime();
- ReadableChannel rc = ctx.db.openFile(desc, INDEX);
- try {
+ try (ReadableChannel rc = ctx.db.openFile(desc, INDEX)) {
InputStream in = Channels.newInputStream(rc);
int wantSize = 8192;
int bs = rc.blockSize();
idx = PackIndex.read(new BufferedInputStream(in, bs));
ctx.stats.readIdxBytes += rc.position();
} finally {
- rc.close();
ctx.stats.readIdxMicros += elapsedMicros(start);
}
} catch (EOFException e) {
private void writeIdx() throws IOException {
List<PackedObjectInfo> list = getSortedObjectList(null /* by ObjectId */);
- final FileOutputStream os = new FileOutputStream(tmpIdx);
- try {
+ try (FileOutputStream os = new FileOutputStream(tmpIdx)) {
final PackIndexWriter iw;
if (indexVersion <= 0)
iw = PackIndexWriter.createOldestPossible(os, list);
iw = PackIndexWriter.createVersion(os, indexVersion);
iw.write(list, packHash);
os.getChannel().force(true);
- } finally {
- os.close();
}
}
if (!isLarge())
return getCachedBytes();
- ObjectStream in = openStream();
- try {
+ try (ObjectStream in = openStream()) {
long sz = in.getSize();
if (sizeLimit < sz)
throw new LargeObjectException.ExceedsLimit(sizeLimit, sz);
IO.readFully(in, buf, 0, buf.length);
return buf;
- } finally {
- in.close();
}
}
public void copyTo(OutputStream out) throws MissingObjectException,
IOException {
if (isLarge()) {
- ObjectStream in = openStream();
- try {
+ try (ObjectStream in = openStream()) {
final long sz = in.getSize();
byte[] tmp = new byte[8192];
long copied = 0;
}
if (0 <= in.read())
throw new EOFException();
- } finally {
- in.close();
}
} else {
out.write(getCachedBytes());
private void writeCommitMsg(File msgFile, String msg) throws IOException {
if (msg != null) {
- FileOutputStream fos = new FileOutputStream(msgFile);
- try {
+ try (FileOutputStream fos = new FileOutputStream(msgFile)) {
fos.write(msg.getBytes(Constants.CHARACTER_ENCODING));
- } finally {
- fos.close();
}
} else {
FileUtils.delete(msgFile, FileUtils.SKIP_MISSING);
private void inflateAndSkip(final Source src, final long inflatedSize)
throws IOException {
- final InputStream inf = inflate(src, inflatedSize);
- IO.skipFully(inf, inflatedSize);
- inf.close();
+ try (InputStream inf = inflate(src, inflatedSize)) {
+ IO.skipFully(inf, inflatedSize);
+ }
}
private byte[] inflateAndReturn(final Source src, final long inflatedSize)
throws IOException {
final byte[] dst = new byte[(int) inflatedSize];
- final InputStream inf = inflate(src, inflatedSize);
- IO.readFully(inf, dst, 0, dst.length);
- inf.close();
+ try (InputStream inf = inflate(src, inflatedSize)) {
+ IO.readFully(inf, dst, 0, dst.length);
+ }
return dst;
}
final String s;
String ref = ROOT_DIR + rn;
try {
- final BufferedReader br = openReader(ref);
- try {
+ try (BufferedReader br = openReader(ref)) {
s = br.readLine();
- } finally {
- br.close();
}
} catch (FileNotFoundException noRef) {
return null;
pm.beginTask("Get " + idxName.substring(0, 12) + "..idx", //$NON-NLS-1$ //$NON-NLS-2$
s.length < 0 ? ProgressMonitor.UNKNOWN
: (int) (s.length / 1024));
- try {
- final FileOutputStream fos = new FileOutputStream(tmpIdx);
- try {
- final byte[] buf = new byte[2048];
- int cnt;
- while (!pm.isCancelled() && (cnt = s.in.read(buf)) >= 0) {
- fos.write(buf, 0, cnt);
- pm.update(cnt / 1024);
- }
- } finally {
- fos.close();
+ try (final FileOutputStream fos = new FileOutputStream(tmpIdx)) {
+ final byte[] buf = new byte[2048];
+ int cnt;
+ while (!pm.isCancelled() && (cnt = s.in.read(buf)) >= 0) {
+ fos.write(buf, 0, cnt);
+ pm.update(cnt / 1024);
}
} catch (IOException err) {
FileUtils.delete(tmpIdx);
IgnoreNode load() throws IOException {
IgnoreNode r = new IgnoreNode();
- InputStream in = entry.openInputStream();
- try {
+ try (InputStream in = entry.openInputStream()) {
r.parse(in);
- } finally {
- in.close();
}
return r.getRules().isEmpty() ? null : r;
}
private static void loadRulesFromFile(IgnoreNode r, File exclude)
throws FileNotFoundException, IOException {
if (FS.DETECTED.exists(exclude)) {
- FileInputStream in = new FileInputStream(exclude);
- try {
+ try (FileInputStream in = new FileInputStream(exclude)) {
r.parse(in);
- } finally {
- in.close();
}
}
}
AttributesNode load() throws IOException {
AttributesNode r = new AttributesNode();
- InputStream in = entry.openInputStream();
- try {
+ try (InputStream in = entry.openInputStream()) {
r.parse(in);
- } finally {
- in.close();
}
return r.getRules().isEmpty() ? null : r;
}
if (Integer.MAX_VALUE < len)
throw new OutOfMemoryError(JGitText.get().lengthExceedsMaximumArraySize);
final byte[] out = new byte[(int) len];
- final FileInputStream in = new FileInputStream(onDiskFile);
- try {
+ try (FileInputStream in = new FileInputStream(onDiskFile)) {
IO.readFully(in, out, 0, (int) len);
- } finally {
- in.close();
}
return out;
}
}
if (pm == null)
pm = NullProgressMonitor.INSTANCE;
- final FileInputStream in = new FileInputStream(onDiskFile);
- try {
+ try (FileInputStream in = new FileInputStream(onDiskFile)) {
int cnt;
final byte[] buf = new byte[Block.SZ];
while ((cnt = in.read(buf)) >= 0) {
os.write(buf, 0, cnt);
pm.update(cnt / 1024);
}
- } finally {
- in.close();
}
}