Browse Source

Use try-with-resources

master
Gintas Grigelionis 6 years ago
parent
commit
1e30b48a0e
16 changed files with 67 additions and 173 deletions
  1. +1
    -5
      src/main/org/apache/tools/ant/AntClassLoader.java
  2. +1
    -7
      src/main/org/apache/tools/ant/ArgumentProcessorRegistry.java
  3. +1
    -6
      src/main/org/apache/tools/ant/ComponentHelper.java
  4. +1
    -5
      src/main/org/apache/tools/ant/Main.java
  5. +9
    -13
      src/main/org/apache/tools/ant/helper/ProjectHelperImpl.java
  6. +10
    -18
      src/main/org/apache/tools/ant/taskdefs/EchoXML.java
  7. +8
    -19
      src/main/org/apache/tools/ant/taskdefs/Jikes.java
  8. +10
    -21
      src/main/org/apache/tools/ant/taskdefs/Manifest.java
  9. +7
    -20
      src/main/org/apache/tools/ant/taskdefs/Property.java
  10. +1
    -5
      src/main/org/apache/tools/ant/taskdefs/compilers/Javac12.java
  11. +1
    -2
      src/main/org/apache/tools/ant/taskdefs/email/Message.java
  12. +5
    -14
      src/main/org/apache/tools/ant/taskdefs/optional/TraXLiaison.java
  13. +4
    -15
      src/main/org/apache/tools/ant/taskdefs/optional/depend/AntAnalyzer.java
  14. +4
    -14
      src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner.java
  15. +4
    -8
      src/main/org/apache/tools/ant/types/selectors/modifiedselector/HashvalueAlgorithm.java
  16. +0
    -1
      src/main/org/apache/tools/ant/util/FileUtils.java

+ 1
- 5
src/main/org/apache/tools/ant/AntClassLoader.java View File

@@ -1343,9 +1343,7 @@ public class AntClassLoader extends ClassLoader implements SubBuildListener, Clo
// we can find the class we want. // we can find the class we want.
final String classFilename = getClassFilename(name); final String classFilename = getClassFilename(name);
for (final File pathComponent : pathComponents) { for (final File pathComponent : pathComponents) {
InputStream stream = null;
try {
stream = getResourceStream(pathComponent, classFilename);
try (InputStream stream = getResourceStream(pathComponent, classFilename)) {
if (stream != null) { if (stream != null) {
log("Loaded from " + pathComponent + " " log("Loaded from " + pathComponent + " "
+ classFilename, Project.MSG_DEBUG); + classFilename, Project.MSG_DEBUG);
@@ -1357,8 +1355,6 @@ public class AntClassLoader extends ClassLoader implements SubBuildListener, Clo
// ioe.printStackTrace(); // ioe.printStackTrace();
log("Exception reading component " + pathComponent + " (reason: " log("Exception reading component " + pathComponent + " (reason: "
+ ioe.getMessage() + ")", Project.MSG_VERBOSE); + ioe.getMessage() + ")", Project.MSG_VERBOSE);
} finally {
FileUtils.close(stream);
} }
} }
throw new ClassNotFoundException(name); throw new ClassNotFoundException(name);


+ 1
- 7
src/main/org/apache/tools/ant/ArgumentProcessorRegistry.java View File

@@ -28,7 +28,6 @@ import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;


import org.apache.tools.ant.util.FileUtils;
import org.apache.tools.ant.util.LoaderUtils; import org.apache.tools.ant.util.LoaderUtils;


/** /**
@@ -146,16 +145,11 @@ public class ArgumentProcessorRegistry {


private ArgumentProcessor getProcessorByService(InputStream is) private ArgumentProcessor getProcessorByService(InputStream is)
throws IOException { throws IOException {
InputStreamReader isr = null;
try {
isr = new InputStreamReader(is, StandardCharsets.UTF_8);
BufferedReader rd = new BufferedReader(isr);
try (BufferedReader rd = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8))) {
String processorClassName = rd.readLine(); String processorClassName = rd.readLine();
if (processorClassName != null && !processorClassName.isEmpty()) { if (processorClassName != null && !processorClassName.isEmpty()) {
return getProcessor(processorClassName); return getProcessor(processorClassName);
} }
} finally {
FileUtils.close(isr);
} }
return null; return null;
} }


+ 1
- 6
src/main/org/apache/tools/ant/ComponentHelper.java View File

@@ -40,7 +40,6 @@ import org.apache.tools.ant.launch.Launcher;
import org.apache.tools.ant.taskdefs.Definer; import org.apache.tools.ant.taskdefs.Definer;
import org.apache.tools.ant.taskdefs.Property; import org.apache.tools.ant.taskdefs.Property;
import org.apache.tools.ant.taskdefs.Typedef; import org.apache.tools.ant.taskdefs.Typedef;
import org.apache.tools.ant.util.FileUtils;


/** /**
* Component creation and configuration. * Component creation and configuration.
@@ -785,9 +784,7 @@ public class ComponentHelper {
String resource = type ? MagicNames.TYPEDEFS_PROPERTIES_RESOURCE String resource = type ? MagicNames.TYPEDEFS_PROPERTIES_RESOURCE
: MagicNames.TASKDEF_PROPERTIES_RESOURCE; : MagicNames.TASKDEF_PROPERTIES_RESOURCE;
String errorString = type ? ERROR_NO_TYPE_LIST_LOAD : ERROR_NO_TASK_LIST_LOAD; String errorString = type ? ERROR_NO_TYPE_LIST_LOAD : ERROR_NO_TASK_LIST_LOAD;
InputStream in = null;
try {
in = ComponentHelper.class.getResourceAsStream(resource);
try (InputStream in = ComponentHelper.class.getResourceAsStream(resource)) {
if (in == null) { if (in == null) {
throw new BuildException(errorString); throw new BuildException(errorString);
} }
@@ -796,8 +793,6 @@ public class ComponentHelper {
defaultDefinitions[idx] = p; defaultDefinitions[idx] = p;
} catch (IOException e) { } catch (IOException e) {
throw new BuildException(errorString, e); throw new BuildException(errorString, e);
} finally {
FileUtils.close(in);
} }
} }
return defaultDefinitions[idx]; return defaultDefinitions[idx];


+ 1
- 5
src/main/org/apache/tools/ant/Main.java View File

@@ -637,15 +637,11 @@ public class Main implements AntMain {
private void loadPropertyFiles() { private void loadPropertyFiles() {
for (final String filename : propertyFiles) { for (final String filename : propertyFiles) {
final Properties props = new Properties(); final Properties props = new Properties();
InputStream fis = null;
try {
fis = Files.newInputStream(Paths.get(filename));
try (InputStream fis = Files.newInputStream(Paths.get(filename))) {
props.load(fis); props.load(fis);
} catch (final IOException e) { } catch (final IOException e) {
System.out.println("Could not load property file " System.out.println("Could not load property file "
+ filename + ": " + e.getMessage()); + filename + ": " + e.getMessage());
} finally {
FileUtils.close(fis);
} }


// ensure that -D properties take precedence // ensure that -D properties take precedence


+ 9
- 13
src/main/org/apache/tools/ant/helper/ProjectHelperImpl.java View File

@@ -113,22 +113,20 @@ public class ProjectHelperImpl extends ProjectHelper {
+ "default plugin"); + "default plugin");
} }
File bFile = (File) source; File bFile = (File) source;
InputStream inputStream = null;
InputSource inputSource = null;


this.project = project; this.project = project;
this.buildFile = new File(bFile.getAbsolutePath()); this.buildFile = new File(bFile.getAbsolutePath());
buildFileParent = new File(this.buildFile.getParent()); buildFileParent = new File(this.buildFile.getParent());


try { try {
try {
parser = JAXPUtils.getParser();
} catch (BuildException e) {
parser = new XMLReaderAdapter(JAXPUtils.getXMLReader());
}
parser = JAXPUtils.getParser();
} catch (BuildException e) {
parser = new XMLReaderAdapter(JAXPUtils.getXMLReader());
}

try (InputStream inputStream = Files.newInputStream(bFile.toPath())) {
String uri = FILE_UTILS.toURI(bFile.getAbsolutePath()); String uri = FILE_UTILS.toURI(bFile.getAbsolutePath());
inputStream = Files.newInputStream(bFile.toPath());
inputSource = new InputSource(inputStream);
InputSource inputSource = new InputSource(inputStream);
inputSource.setSystemId(uri); inputSource.setSystemId(uri);
project.log("parsing buildfile " + bFile + " with URI = " + uri, Project.MSG_VERBOSE); project.log("parsing buildfile " + bFile + " with URI = " + uri, Project.MSG_VERBOSE);
HandlerBase hb = new RootHandler(this); HandlerBase hb = new RootHandler(this);
@@ -138,8 +136,8 @@ public class ProjectHelperImpl extends ProjectHelper {
parser.setDTDHandler(hb); parser.setDTDHandler(hb);
parser.parse(inputSource); parser.parse(inputSource);
} catch (SAXParseException exc) { } catch (SAXParseException exc) {
Location location = new Location(exc.getSystemId(), exc.getLineNumber(), exc
.getColumnNumber());
Location location = new Location(exc.getSystemId(), exc.getLineNumber(),
exc.getColumnNumber());


Throwable t = exc.getException(); Throwable t = exc.getException();
if (t instanceof BuildException) { if (t instanceof BuildException) {
@@ -162,8 +160,6 @@ public class ProjectHelperImpl extends ProjectHelper {
throw new BuildException("Encoding of project file is invalid.", exc); throw new BuildException("Encoding of project file is invalid.", exc);
} catch (IOException exc) { } catch (IOException exc) {
throw new BuildException("Error reading project file: " + exc.getMessage(), exc); throw new BuildException("Error reading project file: " + exc.getMessage(), exc);
} finally {
FileUtils.close(inputStream);
} }
} }




+ 10
- 18
src/main/org/apache/tools/ant/taskdefs/EchoXML.java View File

@@ -18,6 +18,7 @@
package org.apache.tools.ant.taskdefs; package org.apache.tools.ant.taskdefs;


import java.io.File; import java.io.File;
import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;


import org.apache.tools.ant.BuildException; import org.apache.tools.ant.BuildException;
@@ -76,26 +77,17 @@ public class EchoXML extends XMLFragment {
* Execute the task. * Execute the task.
*/ */
public void execute() { public void execute() {
DOMElementWriter writer =
new DOMElementWriter(!append, namespacePolicy.getPolicy());
OutputStream os = null;
try {
if (file != null) {
os = FileUtils.newOutputStream(file.toPath(), append);
} else {
os = new LogOutputStream(this, Project.MSG_INFO);
}
Node n = getFragment().getFirstChild();
if (n == null) {
throw new BuildException(ERROR_NO_XML);
}
Node n = getFragment().getFirstChild();
if (n == null) {
throw new BuildException(ERROR_NO_XML);
}

DOMElementWriter writer = new DOMElementWriter(!append, namespacePolicy.getPolicy());
try (OutputStream os = (file == null) ? new LogOutputStream(this, Project.MSG_INFO)
: FileUtils.newOutputStream(file.toPath(), append)) {
writer.write((Element) n, os); writer.write((Element) n, os);
} catch (BuildException e) {
throw e;
} catch (Exception e) {
} catch (IOException e) {
throw new BuildException(e); throw new BuildException(e);
} finally {
FileUtils.close(os);
} }
} }




+ 8
- 19
src/main/org/apache/tools/ant/taskdefs/Jikes.java View File

@@ -21,10 +21,10 @@ import java.io.BufferedWriter;
import java.io.File; import java.io.File;
import java.io.FileWriter; import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.util.Locale;


import org.apache.tools.ant.BuildException; import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project; import org.apache.tools.ant.Project;
import org.apache.tools.ant.taskdefs.condition.Os;
import org.apache.tools.ant.util.FileUtils; import org.apache.tools.ant.util.FileUtils;


/** /**
@@ -78,18 +78,12 @@ public class Jikes {
File tmpFile = null; File tmpFile = null;


try { try {
String myos = System.getProperty("os.name");

// Windows has a 32k limit on total arg size, so // Windows has a 32k limit on total arg size, so
// create a temporary file to store all the arguments // create a temporary file to store all the arguments

if (myos.toLowerCase(Locale.ENGLISH).contains("windows")
&& args.length > MAX_FILES_ON_COMMAND_LINE) {
BufferedWriter out = null;
try {
tmpFile = FileUtils.getFileUtils().createTempFile("jikes",
"tmp", null, false, true);
out = new BufferedWriter(new FileWriter(tmpFile));
if (Os.isFamily(Os.FAMILY_WINDOWS) && args.length > MAX_FILES_ON_COMMAND_LINE) {
tmpFile = FileUtils.getFileUtils().createTempFile("jikes",
"tmp", null, false, true);
try (BufferedWriter out = new BufferedWriter(new FileWriter(tmpFile))) {
for (String arg : args) { for (String arg : args) {
out.write(arg); out.write(arg);
out.newLine(); out.newLine();
@@ -98,10 +92,7 @@ public class Jikes {
commandArray = new String[] {command, commandArray = new String[] {command,
"@" + tmpFile.getAbsolutePath()}; "@" + tmpFile.getAbsolutePath()};
} catch (IOException e) { } catch (IOException e) {
throw new BuildException("Error creating temporary file",
e);
} finally {
FileUtils.close(out);
throw new BuildException("Error creating temporary file", e);
} }
} else { } else {
commandArray = new String[args.length + 1]; commandArray = new String[args.length + 1];
@@ -123,10 +114,8 @@ public class Jikes {
throw new BuildException("Error running Jikes compiler", e); throw new BuildException("Error running Jikes compiler", e);
} }
} finally { } finally {
if (tmpFile != null) {
if (!tmpFile.delete()) {
tmpFile.deleteOnExit();
}
if (tmpFile != null && !tmpFile.delete()) {
tmpFile.deleteOnExit();
} }
} }
} }


+ 10
- 21
src/main/org/apache/tools/ant/taskdefs/Manifest.java View File

@@ -25,7 +25,7 @@ import java.io.InputStreamReader;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.io.Reader; import java.io.Reader;
import java.io.StringWriter; import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.Collections; import java.util.Collections;
import java.util.Enumeration; import java.util.Enumeration;
@@ -37,7 +37,6 @@ import java.util.Objects;
import java.util.Vector; import java.util.Vector;


import org.apache.tools.ant.BuildException; import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.util.FileUtils;
import org.apache.tools.ant.util.StreamUtils; import org.apache.tools.ant.util.StreamUtils;


/** /**
@@ -93,7 +92,7 @@ public class Manifest {
+ "with \"" + ATTRIBUTE_FROM + "\" in \""; + "with \"" + ATTRIBUTE_FROM + "\" in \"";


/** Encoding to be used for JAR files. */ /** Encoding to be used for JAR files. */
public static final String JAR_ENCODING = "UTF-8";
public static final Charset JAR_ENCODING = StandardCharsets.UTF_8;


private static final String ATTRIBUTE_MANIFEST_VERSION_LC = private static final String ATTRIBUTE_MANIFEST_VERSION_LC =
ATTRIBUTE_MANIFEST_VERSION.toLowerCase(Locale.ENGLISH); ATTRIBUTE_MANIFEST_VERSION.toLowerCase(Locale.ENGLISH);
@@ -751,35 +750,25 @@ public class Manifest {
* default manifest * default manifest
*/ */
public static Manifest getDefaultManifest() throws BuildException { public static Manifest getDefaultManifest() throws BuildException {
InputStreamReader insr = null;
String defManifest = "/org/apache/tools/ant/defaultManifest.mf"; String defManifest = "/org/apache/tools/ant/defaultManifest.mf";
try (InputStream in = Manifest.class.getResourceAsStream(defManifest)) { try (InputStream in = Manifest.class.getResourceAsStream(defManifest)) {
if (in == null) { if (in == null) {
throw new BuildException("Could not find default manifest: %s", throw new BuildException("Could not find default manifest: %s",
defManifest); defManifest);
} }
try {
insr = new InputStreamReader(in, StandardCharsets.UTF_8);
Manifest defaultManifest = new Manifest(insr);
String version = System.getProperty("java.runtime.version");
if (version == null) {
version = System.getProperty("java.vm.version");
}
Attribute createdBy = new Attribute("Created-By",
version + " ("
+ System.getProperty("java.vm.vendor") + ")");
defaultManifest.getMainSection().storeAttribute(createdBy);
return defaultManifest;
} catch (UnsupportedEncodingException e) {
insr = new InputStreamReader(in);
return new Manifest(insr);
Manifest defaultManifest = new Manifest(new InputStreamReader(in, JAR_ENCODING));
String version = System.getProperty("java.runtime.version");
if (version == null) {
version = System.getProperty("java.vm.version");
} }
Attribute createdBy = new Attribute("Created-By", version
+ " (" + System.getProperty("java.vm.vendor") + ")");
defaultManifest.getMainSection().storeAttribute(createdBy);
return defaultManifest;
} catch (ManifestException e) { } catch (ManifestException e) {
throw new BuildException("Default manifest is invalid !!", e); throw new BuildException("Default manifest is invalid !!", e);
} catch (IOException e) { } catch (IOException e) {
throw new BuildException("Unable to read default manifest", e); throw new BuildException("Unable to read default manifest", e);
} finally {
FileUtils.close(insr);
} }
} }




+ 7
- 20
src/main/org/apache/tools/ant/taskdefs/Property.java View File

@@ -648,33 +648,20 @@ public class Property extends Task {
protected void loadResource(String name) { protected void loadResource(String name) {
Properties props = new Properties(); Properties props = new Properties();
log("Resource Loading " + name, Project.MSG_VERBOSE); log("Resource Loading " + name, Project.MSG_VERBOSE);
ClassLoader cL = null;
boolean cleanup = false;
if (classpath != null) {
cleanup = true;
cL = getProject().createClassLoader(classpath);
} else {
cL = this.getClass().getClassLoader();
}
InputStream is = null;
try {
if (cL == null) {
is = ClassLoader.getSystemResourceAsStream(name);
ClassLoader cL = (classpath == null) ? this.getClass().getClassLoader()
: getProject().createClassLoader(classpath);
try (InputStream is = (cL == null) ? ClassLoader.getSystemResourceAsStream(name)
: cL.getResourceAsStream(name)) {
if (is == null) {
log("Unable to find resource " + name, Project.MSG_WARN);
} else { } else {
is = cL.getResourceAsStream(name);
}

if (is != null) {
loadProperties(props, is, name.endsWith(".xml")); loadProperties(props, is, name.endsWith(".xml"));
addProperties(props); addProperties(props);
} else {
log("Unable to find resource " + name, Project.MSG_WARN);
} }
} catch (IOException ex) { } catch (IOException ex) {
throw new BuildException(ex, getLocation()); throw new BuildException(ex, getLocation());
} finally { } finally {
FileUtils.close(is);
if (cleanup && cL != null) {
if (classpath != null && cL != null) {
((AntClassLoader) cL).cleanup(); ((AntClassLoader) cL).cleanup();
} }
} }


+ 1
- 5
src/main/org/apache/tools/ant/taskdefs/compilers/Javac12.java View File

@@ -26,7 +26,6 @@ import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project; import org.apache.tools.ant.Project;
import org.apache.tools.ant.taskdefs.LogOutputStream; import org.apache.tools.ant.taskdefs.LogOutputStream;
import org.apache.tools.ant.types.Commandline; import org.apache.tools.ant.types.Commandline;
import org.apache.tools.ant.util.FileUtils;
import org.apache.tools.ant.util.JavaEnvUtils; import org.apache.tools.ant.util.JavaEnvUtils;


/** /**
@@ -50,8 +49,7 @@ public class Javac12 extends DefaultCompilerAdapter {
attributes.log("Using classic compiler", Project.MSG_VERBOSE); attributes.log("Using classic compiler", Project.MSG_VERBOSE);
Commandline cmd = setupJavacCommand(true); Commandline cmd = setupJavacCommand(true);


OutputStream logstr = new LogOutputStream(attributes, Project.MSG_WARN);
try {
try (OutputStream logstr = new LogOutputStream(attributes, Project.MSG_WARN)) {
// Create an instance of the compiler, redirecting output to // Create an instance of the compiler, redirecting output to
// the project log // the project log
Class<?> c = Class.forName(CLASSIC_COMPILER_CLASSNAME); Class<?> c = Class.forName(CLASSIC_COMPILER_CLASSNAME);
@@ -78,8 +76,6 @@ public class Javac12 extends DefaultCompilerAdapter {
throw new BuildException("Error starting classic compiler: ", throw new BuildException("Error starting classic compiler: ",
ex, location); ex, location);
} }
} finally {
FileUtils.close(logstr);
} }
} }
} }

+ 1
- 2
src/main/org/apache/tools/ant/taskdefs/email/Message.java View File

@@ -119,8 +119,7 @@ public class Message extends ProjectComponent {
: new BufferedWriter(new OutputStreamWriter(ps, charset)); : new BufferedWriter(new OutputStreamWriter(ps, charset));
if (messageSource != null) { if (messageSource != null) {
// Read message from a file // Read message from a file
try (Reader freader = getReader(messageSource);
BufferedReader in = new BufferedReader(freader)) {
try (BufferedReader in = new BufferedReader(getReader(messageSource))) {
String line; String line;
while ((line = in.readLine()) != null) { while ((line = in.readLine()) != null) {
out.write(getProject().replaceProperties(line)); out.write(getProject().replaceProperties(line));


+ 5
- 14
src/main/org/apache/tools/ant/taskdefs/optional/TraXLiaison.java View File

@@ -187,27 +187,18 @@ public class TraXLiaison implements XSLTLiaison4, ErrorListener, XSLTLoggerAware
createTransformer(); createTransformer();
} }


InputStream fis = null;
OutputStream fos = null;
try {
fis = new BufferedInputStream(Files.newInputStream(infile.toPath()));
fos = new BufferedOutputStream(Files.newOutputStream(outfile.toPath()));
// autoclose all handles, otherwise the garbage collector will close them...
// and Windows may complain about not being able to delete files.
try (InputStream fis = new BufferedInputStream(Files.newInputStream(infile.toPath()));
OutputStream fos = new BufferedOutputStream(Files.newOutputStream(outfile.toPath()))) {
final StreamResult res = new StreamResult(fos); final StreamResult res = new StreamResult(fos);
// not sure what could be the need of this... // not sure what could be the need of this...
res.setSystemId(JAXPUtils.getSystemId(outfile)); res.setSystemId(JAXPUtils.getSystemId(outfile));
final Source src = getSource(fis, infile);

// set parameters on each transformation, maybe something has changed // set parameters on each transformation, maybe something has changed
//(e.g. value of file name parameter) //(e.g. value of file name parameter)
setTransformationParameters(); setTransformationParameters();


transformer.transform(src, res);
} finally {
// make sure to close all handles, otherwise the garbage
// collector will close them...whenever possible and
// Windows may complain about not being able to delete files.
FileUtils.close(fis);
FileUtils.close(fos);
transformer.transform(getSource(fis, infile), res);
} }
} }




+ 4
- 15
src/main/org/apache/tools/ant/taskdefs/optional/depend/AntAnalyzer.java View File

@@ -29,7 +29,6 @@ import java.util.Vector;
import java.util.zip.ZipEntry; import java.util.zip.ZipEntry;
import java.util.zip.ZipFile; import java.util.zip.ZipFile;


import org.apache.tools.ant.util.FileUtils;
import org.apache.tools.ant.util.depend.AbstractAnalyzer; import org.apache.tools.ant.util.depend.AbstractAnalyzer;


/** /**
@@ -69,23 +68,13 @@ public class AntAnalyzer extends AbstractAnalyzer {
} }
containers.add(container); containers.add(container);


ZipFile zipFile = null;
InputStream inStream = null;
try {
if (container.getName().endsWith(".class")) {
inStream = Files.newInputStream(Paths.get(container.getPath()));
} else {
zipFile = new ZipFile(container.getPath());
String entryName = classname.replace('.', '/') + ".class";
ZipEntry entry = new ZipEntry(entryName);
inStream = zipFile.getInputStream(entry);
}
try (InputStream inStream = container.getName().endsWith(".class")
? Files.newInputStream(Paths.get(container.getPath()))
: new ZipFile(container.getPath()).getInputStream(new ZipEntry(
classname.replace('.', '/') + ".class"))) {
ClassFile classFile = new ClassFile(); ClassFile classFile = new ClassFile();
classFile.read(inStream); classFile.read(inStream);
analyzedDeps.addAll(classFile.getClassRefs()); analyzedDeps.addAll(classFile.getClassRefs());
} finally {
FileUtils.close(inStream);
FileUtils.close(zipFile);
} }
} catch (IOException ioe) { } catch (IOException ioe) {
// ignore // ignore


+ 4
- 14
src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTestRunner.java View File

@@ -1203,28 +1203,18 @@ public class JUnitTestRunner implements TestListener, JUnitTaskMirror.JUnitTestR
private static void registerNonCrash() private static void registerNonCrash()
throws IOException { throws IOException {
if (crashFile != null) { if (crashFile != null) {
FileWriter out = null;
try {
out = new FileWriter(crashFile);
try (FileWriter out = new FileWriter(crashFile)) {
out.write(Constants.TERMINATED_SUCCESSFULLY + "\n"); out.write(Constants.TERMINATED_SUCCESSFULLY + "\n");
out.flush(); out.flush();
} finally {
FileUtils.close(out);
} }
} }
} }


private static void registerTestCase(final String testCase) { private static void registerTestCase(final String testCase) {
if (crashFile != null) { if (crashFile != null) {
try {
FileWriter out = null;
try {
out = new FileWriter(crashFile);
out.write(testCase + "\n");
out.flush();
} finally {
FileUtils.close(out);
}
try (FileWriter out = new FileWriter(crashFile)) {
out.write(testCase + "\n");
out.flush();
} catch (final IOException e) { } catch (final IOException e) {
// ignored. // ignored.
} }


+ 4
- 8
src/main/org/apache/tools/ant/types/selectors/modifiedselector/HashvalueAlgorithm.java View File

@@ -53,18 +53,14 @@ public class HashvalueAlgorithm implements Algorithm {
// Because the content is only read the file will not be damaged. I tested // Because the content is only read the file will not be damaged. I tested
// with JPG, ZIP and PDF as binary files. // with JPG, ZIP and PDF as binary files.
public String getValue(File file) { public String getValue(File file) {
Reader r = null;
try {
if (!file.canRead()) {
return null;
}
r = new FileReader(file);
if (!file.canRead()) {
return null;
}
try (Reader r = new FileReader(file)) {
int hash = FileUtils.readFully(r).hashCode(); int hash = FileUtils.readFully(r).hashCode();
return Integer.toString(hash); return Integer.toString(hash);
} catch (Exception e) { } catch (Exception e) {
return null; return null;
} finally {
FileUtils.close(r);
} }
} }




+ 0
- 1
src/main/org/apache/tools/ant/util/FileUtils.java View File

@@ -31,7 +31,6 @@ import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
import java.net.URLConnection; import java.net.URLConnection;
import java.nio.channels.Channel; import java.nio.channels.Channel;
import java.nio.file.FileSystem;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.NoSuchFileException; import java.nio.file.NoSuchFileException;
import java.nio.file.Path; import java.nio.file.Path;


Loading…
Cancel
Save