Merge "Fix unreleased stream resources"
diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/ProtoGen.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/ProtoGen.java
index 4512078..12e1e99 100644
--- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/ProtoGen.java
+++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/ProtoGen.java
@@ -26,6 +26,7 @@
import java.io.BufferedWriter;
import java.io.File;
import java.io.InputStream;
+import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.nio.ByteBuffer;
@@ -42,9 +43,9 @@
}
try {
JavaSchemaModel jsm = new JavaSchemaModel(ReviewDb.class);
- PrintWriter out = new PrintWriter(new BufferedWriter(
- new OutputStreamWriter(lock.getOutputStream(), "UTF-8")));
- try {
+ try (OutputStream o = lock.getOutputStream();
+ PrintWriter out = new PrintWriter(
+ new BufferedWriter(new OutputStreamWriter(o, "UTF-8")))) {
String header;
InputStream in = getClass().getResourceAsStream("ProtoGenHeader.txt");
try {
@@ -60,8 +61,6 @@
out.write(header.replace("@@VERSION@@", version));
jsm.generateProto(out);
out.flush();
- } finally {
- out.close();
}
if (!lock.commit()) {
throw die("Could not write to " + file);
diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/InitUtil.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/InitUtil.java
index 0ad7560..dde0b06 100644
--- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/InitUtil.java
+++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/InitUtil.java
@@ -162,10 +162,11 @@
static void extract(final File dst, final Class<?> sibling,
final String name) throws IOException {
- final InputStream in = open(sibling, name);
- if (in != null) {
- ByteBuffer buf = IO.readWholeStream(in, 8192);
- copy(dst, buf);
+ try (InputStream in = open(sibling, name)) {
+ if (in != null) {
+ ByteBuffer buf = IO.readWholeStream(in, 8192);
+ copy(dst, buf);
+ }
}
}
diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/Libraries.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/Libraries.java
index f4a673c..7209990 100644
--- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/Libraries.java
+++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/Libraries.java
@@ -106,21 +106,19 @@
}
private static String read(final String p) throws IOException {
- InputStream in = Libraries.class.getClassLoader().getResourceAsStream(p);
- if (in == null) {
- throw new FileNotFoundException("Cannot load resource " + p);
- }
- final Reader r = new InputStreamReader(in, "UTF-8");
- try {
- final StringBuilder buf = new StringBuilder();
- final char[] tmp = new char[512];
- int n;
- while (0 < (n = r.read(tmp))) {
- buf.append(tmp, 0, n);
+ try (InputStream in = Libraries.class.getClassLoader().getResourceAsStream(p)) {
+ if (in == null) {
+ throw new FileNotFoundException("Cannot load resource " + p);
}
- return buf.toString();
- } finally {
- r.close();
+ try (Reader r = new InputStreamReader(in, "UTF-8")) {
+ final StringBuilder buf = new StringBuilder();
+ final char[] tmp = new char[512];
+ int n;
+ while (0 < (n = r.read(tmp))) {
+ buf.append(tmp, 0, n);
+ }
+ return buf.toString();
+ }
}
}
}
diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/shell/JythonShell.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/shell/JythonShell.java
index dfe28b7..38f08c1 100644
--- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/shell/JythonShell.java
+++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/shell/JythonShell.java
@@ -20,6 +20,7 @@
import org.slf4j.LoggerFactory;
import java.io.File;
+import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
@@ -165,11 +166,14 @@
}
protected void execResource(final String p) {
- InputStream in = JythonShell.class.getClassLoader().getResourceAsStream(p);
- if (in != null) {
- execStream(in, "resource " + p);
- } else {
- log.error("Cannot load resource " + p);
+ try (InputStream in = JythonShell.class.getClassLoader().getResourceAsStream(p)) {
+ if (in != null) {
+ execStream(in, "resource " + p);
+ } else {
+ log.error("Cannot load resource " + p);
+ }
+ } catch (IOException e) {
+ log.error(e.getMessage(), e);
}
}
diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/util/LogFileCompressor.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/util/LogFileCompressor.java
index b5af54e..aed1b9a 100644
--- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/util/LogFileCompressor.java
+++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/util/LogFileCompressor.java
@@ -118,21 +118,15 @@
final File dst = new File(dir, src.getName() + ".gz");
final File tmp = new File(dir, ".tmp." + src.getName());
try {
- final InputStream in = new FileInputStream(src);
- try {
- OutputStream out = new GZIPOutputStream(new FileOutputStream(tmp));
- try {
- final byte[] buf = new byte[2048];
- int n;
- while (0 < (n = in.read(buf))) {
- out.write(buf, 0, n);
- }
- } finally {
- out.close();
+ try (InputStream in = new FileInputStream(src);
+ FileOutputStream fo = new FileOutputStream(tmp);
+ OutputStream out = new GZIPOutputStream(fo)) {
+ final byte[] buf = new byte[2048];
+ int n;
+ while (0 < (n = in.read(buf))) {
+ out.write(buf, 0, n);
}
tmp.setReadOnly();
- } finally {
- in.close();
}
if (!tmp.renameTo(dst)) {
throw new IOException("Cannot rename " + tmp + " to " + dst);
diff --git a/gerrit-server/src/main/java/com/google/gerrit/common/Version.java b/gerrit-server/src/main/java/com/google/gerrit/common/Version.java
index 8ad4d48..e69360a 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/common/Version.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/common/Version.java
@@ -14,12 +14,16 @@
package com.google.gerrit.common;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class Version {
+ private static final Logger log = LoggerFactory.getLogger(Version.class);
private static final String version;
public static String getVersion() {
@@ -31,13 +35,11 @@
}
private static String loadVersion() {
- InputStream in = Version.class.getResourceAsStream("Version");
- if (in == null) {
- return null;
- }
- try {
- BufferedReader r = new BufferedReader(new InputStreamReader(in, "UTF-8"));
- try {
+ try (InputStream in = Version.class.getResourceAsStream("Version")) {
+ if (in == null) {
+ return null;
+ }
+ try (BufferedReader r = new BufferedReader(new InputStreamReader(in, "UTF-8"))) {
String vs = r.readLine();
if (vs != null && vs.startsWith("v")) {
vs = vs.substring(1);
@@ -46,10 +48,9 @@
vs = null;
}
return vs;
- } finally {
- r.close();
}
} catch (IOException e) {
+ log.error(e.getMessage(), e);
return null;
}
}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/rules/PrologCompiler.java b/gerrit-server/src/main/java/com/google/gerrit/rules/PrologCompiler.java
index ab57059..8202ac2 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/rules/PrologCompiler.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/rules/PrologCompiler.java
@@ -235,10 +235,9 @@
mf.getMainAttributes().putValue("Source-Commit", metaConfig.name());
mf.getMainAttributes().putValue("Source-Blob", rulesId.name());
- FileOutputStream stream = new FileOutputStream(tmpjar);
- JarOutputStream out = new JarOutputStream(stream, mf);
- byte buffer[] = new byte[10240];
- try {
+ try (FileOutputStream stream = new FileOutputStream(tmpjar);
+ JarOutputStream out = new JarOutputStream(stream, mf)) {
+ byte buffer[] = new byte[10240];
for (String path : toBeJared) {
JarEntry jarAdd = new JarEntry(path);
File f = new File(tempDir, path);
@@ -260,8 +259,6 @@
}
out.closeEntry();
}
- } finally {
- out.close();
}
if (!tmpjar.renameTo(archiveFile)) {
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/contact/EncryptedContactStore.java b/gerrit-server/src/main/java/com/google/gerrit/server/contact/EncryptedContactStore.java
index 40699c8..8c1fdb6 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/contact/EncryptedContactStore.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/contact/EncryptedContactStore.java
@@ -108,16 +108,10 @@
return true;
}
- @SuppressWarnings("resource")
private static PGPPublicKeyRingCollection readPubRing(final File pub) {
- try {
- InputStream in = new FileInputStream(pub);
- try {
- in = PGPUtil.getDecoderStream(in);
+ try (InputStream fin = new FileInputStream(pub);
+ InputStream in = PGPUtil.getDecoderStream(fin)) {
return new PGPPublicKeyRingCollection(in);
- } finally {
- in.close();
- }
} catch (IOException e) {
throw new ProvisionException("Cannot read " + pub, e);
} catch (PGPException e) {
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/contact/HttpContactStoreConnection.java b/gerrit-server/src/main/java/com/google/gerrit/server/contact/HttpContactStoreConnection.java
index 123c20d..471f6a2 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/contact/HttpContactStoreConnection.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/contact/HttpContactStoreConnection.java
@@ -48,9 +48,9 @@
"application/x-www-form-urlencoded; charset=UTF-8");
conn.setDoOutput(true);
conn.setFixedLengthStreamingMode(body.length);
- final OutputStream out = conn.getOutputStream();
- out.write(body);
- out.close();
+ try (OutputStream out = conn.getOutputStream()) {
+ out.write(body);
+ }
if (conn.getResponseCode() != HttpURLConnection.HTTP_OK) {
throw new IOException("Connection failed: " + conn.getResponseCode());
}