Author: markt
Date: Wed Mar 26 14:33:44 2014
New Revision: 1581864
URL: http://svn.apache.org/r1581864
Log:
More try-with-resources
Modified:
tomcat/trunk/TOMCAT-NEXT.txt
tomcat/trunk/java/org/apache/catalina/startup/Catalina.java
tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java
tomcat/trunk/java/org/apache/catalina/startup/ExpandWar.java
tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java
tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java
Modified: tomcat/trunk/TOMCAT-NEXT.txt
URL:
http://svn.apache.org/viewvc/tomcat/trunk/TOMCAT-NEXT.txt?rev=1581864&r1=1581863&r2=1581864&view=diff
==============================================================================
--- tomcat/trunk/TOMCAT-NEXT.txt (original)
+++ tomcat/trunk/TOMCAT-NEXT.txt Wed Mar 26 14:33:44 2014
@@ -214,7 +214,7 @@ but possibly 7.1.x).
- Use of try with resources
- Started.
- javax.* complete
- - o.a.catalina.[ant to session] complete
+ - o.a.catalina.[ant to startup] complete
- remainder TODO
- Catching multiple exceptions
- Started
Modified: tomcat/trunk/java/org/apache/catalina/startup/Catalina.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/Catalina.java?rev=1581864&r1=1581863&r2=1581864&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/Catalina.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/Catalina.java Wed Mar 26
14:33:44 2014
@@ -420,29 +420,19 @@ public class Catalina {
}
Server s = getServer();
- if( s == null ) {
+ if (s == null) {
// Create and execute our Digester
Digester digester = createStopDigester();
File file = configFile();
- FileInputStream fis = null;
- try {
+ try (FileInputStream fis = new FileInputStream(file)) {
InputSource is =
new InputSource(file.toURI().toURL().toString());
- fis = new FileInputStream(file);
is.setByteStream(fis);
digester.push(this);
digester.parse(is);
} catch (Exception e) {
log.error("Catalina.stop: ", e);
System.exit(1);
- } finally {
- if (fis != null) {
- try {
- fis.close();
- } catch (IOException e) {
- // Ignore
- }
- }
}
} else {
// Server object already present. Must be running as a service
@@ -457,11 +447,8 @@ public class Catalina {
// Stop the existing server
s = getServer();
if (s.getPort()>0) {
- Socket socket = null;
- OutputStream stream = null;
- try {
- socket = new Socket(s.getAddress(), s.getPort());
- stream = socket.getOutputStream();
+ try (Socket socket = new Socket(s.getAddress(), s.getPort());
+ OutputStream stream = socket.getOutputStream()) {
String shutdown = s.getShutdown();
for (int i = 0; i < shutdown.length(); i++) {
stream.write(shutdown.charAt(i));
@@ -476,21 +463,6 @@ public class Catalina {
} catch (IOException e) {
log.error("Catalina.stop: ", e);
System.exit(1);
- } finally {
- if (stream != null) {
- try {
- stream.close();
- } catch (IOException e) {
- // Ignore
- }
- }
- if (socket != null) {
- try {
- socket.close();
- } catch (IOException e) {
- // Ignore
- }
- }
}
} else {
log.error(sm.getString("catalina.stopServer"));
@@ -509,7 +481,6 @@ public class Catalina {
initDirs();
// Before digester - it may be needed
-
initNaming();
// Create and execute our Digester
@@ -544,7 +515,7 @@ public class Catalina {
// This should be included in catalina.jar
// Alternative: don't bother with xml, just create it manually.
- if( inputStream==null ) {
+ if (inputStream == null) {
try {
inputStream = getClass().getClassLoader()
.getResourceAsStream("server-embed.xml");
@@ -609,14 +580,12 @@ public class Catalina {
} else {
log.error("Catalina.start", e);
}
-
}
long t2 = System.nanoTime();
if(log.isInfoEnabled()) {
log.info("Initialization processed in " + ((t2 - t1) / 1000000) +
" ms");
}
-
}
Modified: tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java?rev=1581864&r1=1581863&r2=1581864&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java Wed Mar 26
14:33:44 2014
@@ -1899,9 +1899,7 @@ public class ContextConfig implements Li
}
} else if (webResource.isFile() &&
webResource.getName().endsWith(".class")) {
- InputStream is = null;
- try {
- is = webResource.getInputStream();
+ try (InputStream is = webResource.getInputStream()) {
processAnnotationsStream(is, fragment, handlesTypesOnly);
} catch (IOException e) {
log.error(sm.getString("contextConfig.inputStreamWebResource",
@@ -1909,14 +1907,6 @@ public class ContextConfig implements Li
} catch (ClassFormatException e) {
log.error(sm.getString("contextConfig.inputStreamWebResource",
webResource.getWebappPath()),e);
- } finally {
- if (is != null) {
- try {
- is.close();
- } catch (Throwable t) {
- ExceptionUtils.handleThrowable(t);
- }
- }
}
}
}
@@ -1948,7 +1938,6 @@ public class ContextConfig implements Li
boolean handlesTypesOnly) {
Jar jar = null;
- InputStream is;
try {
jar = JarFactory.newInstance(url);
@@ -1957,9 +1946,7 @@ public class ContextConfig implements Li
String entryName = jar.getEntryName();
while (entryName != null) {
if (entryName.endsWith(".class")) {
- is = null;
- try {
- is = jar.getEntryInputStream();
+ try (InputStream is = jar.getEntryInputStream()) {
processAnnotationsStream(
is, fragment, handlesTypesOnly);
} catch (IOException e) {
@@ -1968,14 +1955,6 @@ public class ContextConfig implements Li
} catch (ClassFormatException e) {
log.error(sm.getString("contextConfig.inputStreamJar",
entryName, url),e);
- } finally {
- if (is != null) {
- try {
- is.close();
- } catch (IOException ioe) {
- // Ignore
- }
- }
}
}
jar.nextEntry();
@@ -2001,9 +1980,7 @@ public class ContextConfig implements Li
new File(file,dir), fragment, handlesTypesOnly);
}
} else if (file.canRead() && file.getName().endsWith(".class")) {
- FileInputStream fis = null;
- try {
- fis = new FileInputStream(file);
+ try (FileInputStream fis = new FileInputStream(file)) {
processAnnotationsStream(fis, fragment, handlesTypesOnly);
} catch (IOException e) {
log.error(sm.getString("contextConfig.inputStreamFile",
@@ -2011,14 +1988,6 @@ public class ContextConfig implements Li
} catch (ClassFormatException e) {
log.error(sm.getString("contextConfig.inputStreamFile",
file.getAbsolutePath()),e);
- } finally {
- if (fis != null) {
- try {
- fis.close();
- } catch (Throwable t) {
- ExceptionUtils.handleThrowable(t);
- }
- }
}
}
}
@@ -2182,13 +2151,11 @@ public class ContextConfig implements Li
private void populateJavaClassCache(String className) {
if (!javaClassCache.containsKey(className)) {
String name = className.replace('.', '/') + ".class";
- InputStream is =
-
context.getLoader().getClassLoader().getResourceAsStream(name);
- if (is == null) {
- return;
- }
- ClassParser parser = new ClassParser(is, null);
- try {
+ try (InputStream is =
context.getLoader().getClassLoader().getResourceAsStream(name)) {
+ if (is == null) {
+ return;
+ }
+ ClassParser parser = new ClassParser(is, null);
JavaClass clazz = parser.parse();
populateJavaClassCache(clazz.getClassName(), clazz);
} catch (ClassFormatException e) {
@@ -2197,12 +2164,6 @@ public class ContextConfig implements Li
} catch (IOException e) {
log.debug(sm.getString("contextConfig.invalidSciHandlesTypes",
className), e);
- } finally {
- try {
- is.close();
- } catch (IOException e) {
- // ignore
- }
}
}
}
Modified: tomcat/trunk/java/org/apache/catalina/startup/ExpandWar.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/ExpandWar.java?rev=1581864&r1=1581863&r2=1581864&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/ExpandWar.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/ExpandWar.java Wed Mar 26
14:33:44 2014
@@ -14,8 +14,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
-
package org.apache.catalina.startup;
import java.io.BufferedOutputStream;
@@ -35,7 +33,6 @@ import java.util.zip.ZipException;
import org.apache.catalina.Host;
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
-import org.apache.tomcat.util.ExceptionUtils;
import org.apache.tomcat.util.res.StringManager;
/**
@@ -92,11 +89,9 @@ public class ExpandWar {
}
JarURLConnection juc = (JarURLConnection) war.openConnection();
juc.setUseCaches(false);
- JarFile jarFile = null;
- InputStream input = null;
+
boolean success = false;
- try {
- jarFile = juc.getJarFile();
+ try (JarFile jarFile = juc.getJarFile()) {
Enumeration<JarEntry> jarEntries = jarFile.entries();
while (jarEntries.hasMoreElements()) {
JarEntry jarEntry = jarEntries.nextElement();
@@ -123,20 +118,20 @@ public class ExpandWar {
if (name.endsWith("/")) {
continue;
}
- input = jarFile.getInputStream(jarEntry);
- if(null == input)
- throw new
ZipException(sm.getString("expandWar.missingJarEntry", jarEntry.getName()));
- // Bugzilla 33636
- expand(input, expandedFile);
- long lastModified = jarEntry.getTime();
- if ((lastModified != -1) && (lastModified != 0)) {
- expandedFile.setLastModified(lastModified);
+ try (InputStream input = jarFile.getInputStream(jarEntry)) {
+ if (null == input)
+ throw new
ZipException(sm.getString("expandWar.missingJarEntry",
+ jarEntry.getName()));
+
+ // Bugzilla 33636
+ expand(input, expandedFile);
+ long lastModified = jarEntry.getTime();
+ if ((lastModified != -1) && (lastModified != 0)) {
+ expandedFile.setLastModified(lastModified);
+ }
}
-
- input.close();
- input = null;
}
success = true;
} catch (IOException e) {
@@ -147,27 +142,10 @@ public class ExpandWar {
// clean
deleteDir(docBase);
}
- if (input != null) {
- try {
- input.close();
- } catch (IOException ioe) {
- // Ignore
- }
- input = null;
- }
- if (jarFile != null) {
- try {
- jarFile.close();
- } catch (IOException ioe) {
- // Ignore
- }
- jarFile = null;
- }
}
// Return the absolute path to our new document base directory
- return (docBase.getAbsolutePath());
-
+ return docBase.getAbsolutePath();
}
@@ -184,8 +162,7 @@ public class ExpandWar {
* @exception IOException if an input/output error was encountered
* during validation
*/
- public static void validate(Host host, URL war, String pathname)
- throws IOException {
+ public static void validate(Host host, URL war, String pathname) throws
IOException {
File docBase = new File(host.getAppBaseFile(), pathname);
@@ -196,9 +173,7 @@ public class ExpandWar {
}
JarURLConnection juc = (JarURLConnection) war.openConnection();
juc.setUseCaches(false);
- JarFile jarFile = null;
- try {
- jarFile = juc.getJarFile();
+ try (JarFile jarFile = juc.getJarFile()) {
Enumeration<JarEntry> jarEntries = jarFile.entries();
while (jarEntries.hasMoreElements()) {
JarEntry jarEntry = jarEntries.nextElement();
@@ -216,15 +191,6 @@ public class ExpandWar {
}
} catch (IOException e) {
throw e;
- } finally {
- if (jarFile != null) {
- try {
- jarFile.close();
- } catch (Throwable t) {
- ExceptionUtils.handleThrowable(t);
- }
- jarFile = null;
- }
}
}
@@ -256,34 +222,16 @@ public class ExpandWar {
if (fileSrc.isDirectory()) {
result = copy(fileSrc, fileDest);
} else {
- FileChannel ic = null;
- FileChannel oc = null;
- try {
- ic = (new FileInputStream(fileSrc)).getChannel();
- oc = (new FileOutputStream(fileDest)).getChannel();
+ try (FileChannel ic = (new
FileInputStream(fileSrc)).getChannel();
+ FileChannel oc = (new
FileOutputStream(fileDest)).getChannel()) {
ic.transferTo(0, ic.size(), oc);
} catch (IOException e) {
- log.error(sm.getString
- ("expandWar.copy", fileSrc, fileDest), e);
+ log.error(sm.getString("expandWar.copy", fileSrc,
fileDest), e);
result = false;
- } finally {
- if (ic != null) {
- try {
- ic.close();
- } catch (IOException e) {
- }
- }
- if (oc != null) {
- try {
- oc.close();
- } catch (IOException e) {
- }
- }
}
}
}
return result;
-
}
@@ -298,6 +246,7 @@ public class ExpandWar {
return delete(dir, true);
}
+
/**
* Delete the specified directory, including all of its contents and
* sub-directories recursively.
@@ -335,6 +284,7 @@ public class ExpandWar {
return deleteDir(dir, true);
}
+
/**
* Delete the specified directory, including all of its contents and
* sub-directories recursively.
@@ -371,7 +321,6 @@ public class ExpandWar {
}
return result;
-
}
@@ -383,12 +332,9 @@ public class ExpandWar {
*
* @exception IOException if an input/output error occurs
*/
- private static void expand(InputStream input, File file)
- throws IOException {
- BufferedOutputStream output = null;
- try {
- output =
- new BufferedOutputStream(new FileOutputStream(file));
+ private static void expand(InputStream input, File file) throws
IOException {
+ try (BufferedOutputStream output =
+ new BufferedOutputStream(new FileOutputStream(file))) {
byte buffer[] = new byte[2048];
while (true) {
int n = input.read(buffer);
@@ -396,16 +342,6 @@ public class ExpandWar {
break;
output.write(buffer, 0, n);
}
- } finally {
- if (output != null) {
- try {
- output.close();
- } catch (IOException e) {
- // Ignore
- }
- }
}
}
-
-
}
Modified: tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java?rev=1581864&r1=1581863&r2=1581864&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java Wed Mar 26
14:33:44 2014
@@ -761,19 +761,12 @@ public class HostConfig
*/
protected void deployWAR(ContextName cn, File war) {
- // Checking for a nested /META-INF/context.xml
- JarFile jar = null;
- InputStream istream = null;
- FileOutputStream fos = null;
- BufferedOutputStream ostream = null;
-
File xml = new File(host.getAppBaseFile(),
cn.getBaseName() + "/META-INF/context.xml");
boolean xmlInWar = false;
JarEntry entry = null;
- try {
- jar = new JarFile(war);
+ try (JarFile jar = new JarFile(war)) {
entry = jar.getJarEntry(Constants.ApplicationContextXml);
if (entry != null) {
xmlInWar = true;
@@ -782,14 +775,6 @@ public class HostConfig
/* Ignore */
} finally {
entry = null;
- if (jar != null) {
- try {
- jar.close();
- } catch (IOException ioe) {
- // Ignore;
- }
- jar = null;
- }
}
Context context = null;
@@ -812,12 +797,11 @@ public class HostConfig
context.setConfigFile(xml.toURI().toURL());
} else if (deployXML && xmlInWar) {
synchronized (digesterLock) {
- try {
- jar = new JarFile(war);
- entry =
- jar.getJarEntry(Constants.ApplicationContextXml);
- istream = jar.getInputStream(entry);
- context = (Context) digester.parse(istream);
+ try (JarFile jar = new JarFile(war)) {
+ entry =
jar.getJarEntry(Constants.ApplicationContextXml);
+ try (InputStream istream = jar.getInputStream(entry)) {
+ context = (Context) digester.parse(istream);
+ }
} catch (Exception e) {
log.error(sm.getString(
"hostConfig.deployDescriptor.error",
@@ -829,23 +813,7 @@ public class HostConfig
context.setConfigFile(new URL("jar:" +
war.toURI().toString() + "!/" +
Constants.ApplicationContextXml));
- if (istream != null) {
- try {
- istream.close();
- } catch (IOException e) {
- /* Ignore */
- }
- istream = null;
- }
entry = null;
- if (jar != null) {
- try {
- jar.close();
- } catch (IOException e) {
- /* Ignore */
- }
- jar = null;
- }
digester.reset();
}
}
@@ -884,58 +852,23 @@ public class HostConfig
xml = new File(host.getConfigBaseFile(),
cn.getBaseName() + ".xml");
entry = null;
- try {
- jar = new JarFile(war);
- entry =
- jar.getJarEntry(Constants.ApplicationContextXml);
- istream = jar.getInputStream(entry);
-
- fos = new FileOutputStream(xml);
- ostream = new BufferedOutputStream(fos, 1024);
- byte buffer[] = new byte[1024];
- while (true) {
- int n = istream.read(buffer);
- if (n < 0) {
- break;
+ try (JarFile jar = new JarFile(war)) {
+ entry = jar.getJarEntry(Constants.ApplicationContextXml);
+ try (InputStream istream = jar.getInputStream(entry);
+ FileOutputStream fos = new FileOutputStream(xml);
+ BufferedOutputStream ostream = new
BufferedOutputStream(fos, 1024)) {
+ byte buffer[] = new byte[1024];
+ while (true) {
+ int n = istream.read(buffer);
+ if (n < 0) {
+ break;
+ }
+ ostream.write(buffer, 0, n);
}
- ostream.write(buffer, 0, n);
+ ostream.flush();
}
- ostream.flush();
} catch (IOException e) {
/* Ignore */
- } finally {
- if (ostream != null) {
- try {
- ostream.close();
- } catch (IOException ioe) {
- // Ignore
- }
- ostream = null;
- }
- if (fos != null) {
- try {
- fos.close();
- } catch (IOException ioe) {
- // Ignore
- }
- fos = null;
- }
- if (istream != null) {
- try {
- istream.close();
- } catch (IOException ioe) {
- // Ignore
- }
- istream = null;
- }
- if (jar != null) {
- try {
- jar.close();
- } catch (IOException ioe) {
- // Ignore;
- }
- jar = null;
- }
}
}
}
@@ -1089,24 +1022,10 @@ public class HostConfig
}
if (copyThisXml) {
- InputStream is = null;
- OutputStream os = null;
- try {
- is = new FileInputStream(xml);
- os = new FileOutputStream(xmlCopy);
+ try (InputStream is = new FileInputStream(xml);
+ OutputStream os = new FileOutputStream(xmlCopy)) {
IOTools.flow(is, os);
// Don't catch IOE - let the outer try/catch handle it
- } finally {
- try {
- if (is != null) is.close();
- } catch (IOException e){
- // Ignore
- }
- try {
- if (os != null) os.close();
- } catch (IOException e){
- // Ignore
- }
}
context.setConfigFile(xmlCopy.toURI().toURL());
} else {
Modified: tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java?rev=1581864&r1=1581863&r2=1581864&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java Wed Mar 26
14:33:44 2014
@@ -1094,9 +1094,7 @@ public class Tomcat {
private URL getWebappConfigFileFromJar(File docBase, String url) {
URL result = null;
- JarFile jar = null;
- try {
- jar = new JarFile(docBase);
+ try (JarFile jar = new JarFile(docBase)) {
JarEntry entry = jar.getJarEntry(Constants.ApplicationContextXml);
if (entry != null) {
result = new URL("jar:" + docBase.toURI().toString() + "!/"
@@ -1105,14 +1103,6 @@ public class Tomcat {
} catch (IOException e) {
Logger.getLogger(getLoggerName(getHost(), url)).log(Level.WARNING,
"Unable to determine web application context.xml " +
docBase, e);
- } finally {
- if (jar != null) {
- try {
- jar.close();
- } catch (IOException e) {
- // ignore
- }
- }
}
return result;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]