Replacing IOUtils.closeQuietly(foo) with try-with-resources statements

This commit is contained in:
Will Herrmann
2018-10-19 14:23:51 -05:00
parent 7edaf78e4a
commit 377baf7caf
23 changed files with 101 additions and 207 deletions
@@ -13,7 +13,6 @@ import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.tools.ant.AntClassLoader;
import org.apache.tools.ant.BuildException;
@@ -240,12 +239,13 @@ public class PMDTaskImpl {
Throwable cause = pmde.getCause();
if (cause != null) {
StringWriter strWriter = new StringWriter();
PrintWriter printWriter = new PrintWriter(strWriter);
try (StringWriter strWriter = new StringWriter();
PrintWriter printWriter = new PrintWriter(strWriter)) {
cause.printStackTrace(printWriter);
project.log(strWriter.toString(), Project.MSG_VERBOSE);
IOUtils.closeQuietly(printWriter);
} catch (IOException e) {
e.printStackTrace();
}
if (StringUtils.isNotBlank(cause.getMessage())) {
project.log(cause.getMessage(), Project.MSG_VERBOSE);
}
@@ -15,7 +15,6 @@ import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import net.sourceforge.pmd.PMD;
@@ -145,11 +144,8 @@ public final class Benchmarker {
long start = System.currentTimeMillis();
for (DataSource dataSource : dataSources) {
InputStreamReader reader = new InputStreamReader(dataSource.getInputStream());
try {
try (InputStreamReader reader = new InputStreamReader(dataSource.getInputStream())) {
parser.parse(dataSource.getNiceFileName(false, null), reader);
} finally {
IOUtils.closeQuietly(reader);
}
}
@@ -9,8 +9,6 @@ import java.io.CharArrayReader;
import java.io.IOException;
import java.util.StringTokenizer;
import org.apache.commons.io.IOUtils;
/**
* This class does a best-guess try-anything tokenization.
*
@@ -22,8 +20,7 @@ public class AnyTokenizer implements Tokenizer {
@Override
public void tokenize(SourceCode sourceCode, Tokens tokenEntries) {
StringBuilder sb = sourceCode.getCodeBuffer();
BufferedReader reader = new BufferedReader(new CharArrayReader(sb.toString().toCharArray()));
try {
try (BufferedReader reader = new BufferedReader(new CharArrayReader(sb.toString().toCharArray()))) {
int lineNumber = 1;
String line = reader.readLine();
while (line != null) {
@@ -41,7 +38,6 @@ public class AnyTokenizer implements Tokenizer {
} catch (IOException ignored) {
ignored.printStackTrace();
} finally {
IOUtils.closeQuietly(reader);
tokenEntries.add(TokenEntry.getEOF());
}
}
@@ -12,8 +12,6 @@ import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import org.apache.commons.io.IOUtils;
import net.sourceforge.pmd.cpd.renderer.CPDRenderer;
/**
@@ -40,18 +38,9 @@ public class FileReporter {
public void report(String content) throws ReportException {
try {
Writer writer = null;
try {
OutputStream outputStream;
if (reportFile == null) {
outputStream = System.out;
} else {
outputStream = new FileOutputStream(reportFile);
}
writer = new BufferedWriter(new OutputStreamWriter(outputStream, encoding));
try (OutputStream outputStream = reportFile == null ? System.out : new FileOutputStream(reportFile);
Writer writer = new BufferedWriter(new OutputStreamWriter(outputStream, encoding))) {
writer.write(content);
} finally {
IOUtils.closeQuietly(writer);
}
} catch (IOException ioe) {
throw new ReportException(ioe);
@@ -10,7 +10,6 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.io.IOUtils;
import org.objectweb.asm.AnnotationVisitor;
import org.objectweb.asm.Attribute;
import org.objectweb.asm.ClassReader;
@@ -52,13 +51,10 @@ public class UsageGraphBuilder {
if (classFilter.filter(className)) {
if (!usageGraph.isClass(className)) {
usageGraph.defineClass(className);
InputStream inputStream = this.getClass().getClassLoader()
.getResourceAsStream(classResourceName + ".class");
try (InputStream inputStream = this.getClass().getClassLoader()
.getResourceAsStream(classResourceName + ".class")) {
ClassReader classReader = new ClassReader(inputStream);
try {
classReader.accept(getNewClassVisitor(), 0);
} finally {
IOUtils.closeQuietly(inputStream);
}
}
}
@@ -9,7 +9,6 @@ import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import net.sourceforge.pmd.PMD;
@@ -45,9 +44,9 @@ public class ReportHTMLPrintVisitor extends ReportVisitor {
* Writes the buffer to file.
*/
private void write(String filename, StringBuilder buf) throws IOException {
BufferedWriter bw = new BufferedWriter(new FileWriter(new File(baseDir + FILE_SEPARATOR + filename)));
try (BufferedWriter bw = new BufferedWriter(new FileWriter(new File(baseDir + FILE_SEPARATOR + filename)))) {
bw.write(buf.toString(), 0, buf.length());
IOUtils.closeQuietly(bw);
}
}
/**
@@ -13,8 +13,6 @@ import java.io.Reader;
import java.util.Iterator;
import java.util.Map;
import org.apache.commons.io.IOUtils;
import net.sourceforge.pmd.PMD;
import net.sourceforge.pmd.Report;
import net.sourceforge.pmd.RuleViolation;
@@ -191,17 +189,13 @@ public class TextColorRenderer extends AbstractAccumulatingRenderer {
*/
private String getLine(String sourceFile, int line) {
String code = null;
BufferedReader br = null;
try {
br = new BufferedReader(getReader(sourceFile));
try (BufferedReader br = new BufferedReader(getReader(sourceFile))) {
for (int i = 0; line > i; i++) {
String txt = br.readLine();
code = txt == null ? "" : txt.trim();
}
} catch (IOException ioErr) {
ioErr.printStackTrace();
} finally {
IOUtils.closeQuietly(br);
}
return code;
}
@@ -15,8 +15,6 @@ import java.util.ResourceBundle;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.commons.io.IOUtils;
/**
* Encapsulate the settings needed to access database source code.
*
@@ -159,7 +157,6 @@ public class DBType {
LOGGER.entering(DBType.class.getCanonicalName(), matchString);
// Locale locale = Control.g;
ResourceBundle resourceBundle = null;
InputStream stream = null;
if (LOGGER.isLoggable(Level.FINEST)) {
LOGGER.finest("class_path+" + System.getProperty("java.class.path"));
@@ -170,12 +167,11 @@ public class DBType {
* properties suffix File path without properties suffix Resource
* without class prefix Resource with class prefix
*/
try {
File propertiesFile = new File(matchString);
if (LOGGER.isLoggable(Level.FINEST)) {
LOGGER.finest("Attempting File no file suffix: " + matchString);
}
stream = new FileInputStream(propertiesFile);
try (InputStream stream = new FileInputStream(propertiesFile)) {
resourceBundle = new PropertyResourceBundle(stream);
propertiesSource = propertiesFile.getAbsolutePath();
LOGGER.finest("FileSystemWithoutExtension");
@@ -184,9 +180,8 @@ public class DBType {
LOGGER.finest("notFoundOnFilesystemWithoutExtension");
LOGGER.finest("Attempting File with added file suffix: " + matchString + ".properties");
}
try {
File propertiesFile = new File(matchString + ".properties");
stream = new FileInputStream(propertiesFile);
try (InputStream stream = new FileInputStream(propertiesFile)) {
propertiesFile = new File(matchString + ".properties");
resourceBundle = new PropertyResourceBundle(stream);
propertiesSource = propertiesFile.getAbsolutePath();
LOGGER.finest("FileSystemWithExtension");
@@ -214,8 +209,6 @@ public class DBType {
}
}
}
} finally {
IOUtils.closeQuietly(stream);
}
// Properties in this matched resource
@@ -92,7 +92,6 @@ import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -992,12 +991,10 @@ public class Designer implements ClipboardOwner {
}
private void loadSettings() {
InputStream stream = null;
try {
File file = new File(SETTINGS_FILE_NAME);
if (file.exists()) {
try (InputStream stream = new FileInputStream(file)) {
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
stream = new FileInputStream(file);
Document document = builder.parse(stream);
Element settingsElement = document.getDocumentElement();
Element codeElement = (Element) settingsElement.getElementsByTagName("code").item(0);
@@ -1018,15 +1015,13 @@ public class Designer implements ClipboardOwner {
break;
}
}
}
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} finally {
IOUtils.closeQuietly(stream);
}
}
}
@@ -11,7 +11,6 @@ import java.util.Map.Entry;
import java.util.Properties;
import java.util.ResourceBundle;
import org.apache.commons.io.IOUtils;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
@@ -39,17 +38,12 @@ public class DBTypeTest {
includeProperties.putAll(testProperties);
includeProperties.put("prop3", "include3");
PrintStream printStream = null;
try {
absoluteFile = File.createTempFile("dbtypetest", ".properties");
FileOutputStream fileOutputStream = new FileOutputStream(absoluteFile);
printStream = new PrintStream(fileOutputStream);
try (FileOutputStream fileOutputStream = new FileOutputStream(absoluteFile);
PrintStream printStream = new PrintStream(fileOutputStream)) {
for (Entry<?, ?> entry : testProperties.entrySet()) {
printStream.printf("%s=%s\n", entry.getKey(), entry.getValue());
}
} finally {
IOUtils.closeQuietly(printStream);
}
}
@@ -10,8 +10,6 @@ import java.io.Reader;
import java.io.StringReader;
import java.util.Properties;
import org.apache.commons.io.IOUtils;
import net.sourceforge.pmd.PMD;
import net.sourceforge.pmd.cpd.token.JavaCCTokenFilter;
import net.sourceforge.pmd.cpd.token.TokenFilter;
@@ -56,12 +54,9 @@ public class CPPTokenizer implements Tokenizer {
@Override
public void tokenize(SourceCode sourceCode, Tokens tokenEntries) {
StringBuilder buffer = sourceCode.getCodeBuffer();
Reader reader = null;
try {
try (Reader reader = IOUtil.skipBOM(new StringReader(maybeSkipBlocks(buffer.toString())))) {
LanguageVersionHandler languageVersionHandler = LanguageRegistry.getLanguage(CppLanguageModule.NAME)
.getDefaultVersion().getLanguageVersionHandler();
reader = new StringReader(maybeSkipBlocks(buffer.toString()));
reader = IOUtil.skipBOM(reader);
final TokenFilter tokenFilter = new JavaCCTokenFilter(
languageVersionHandler.getParser(languageVersionHandler.getDefaultParserOptions())
.getTokenManager(sourceCode.getFileName(), reader));
@@ -73,16 +68,10 @@ public class CPPTokenizer implements Tokenizer {
}
tokenEntries.add(TokenEntry.getEOF());
System.err.println("Added " + sourceCode.getFileName());
} catch (TokenMgrError err) {
} catch (TokenMgrError | IOException err) {
err.printStackTrace();
System.err.println("Skipping " + sourceCode.getFileName() + " due to parse error");
tokenEntries.add(TokenEntry.getEOF());
} catch (IOException e) {
e.printStackTrace();
System.err.println("Skipping " + sourceCode.getFileName() + " due to parse error");
tokenEntries.add(TokenEntry.getEOF());
} finally {
IOUtils.closeQuietly(reader);
}
}
@@ -11,7 +11,6 @@ import java.io.IOException;
import java.io.PushbackReader;
import java.util.Properties;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.RandomStringUtils;
/**
@@ -31,7 +30,7 @@ public class CsTokenizer implements Tokenizer {
@Override
public void tokenize(SourceCode sourceCode, Tokens tokenEntries) {
Tokenizer tokenizer = new Tokenizer(sourceCode.getCodeBuffer().toString());
try (Tokenizer tokenizer = new Tokenizer(sourceCode.getCodeBuffer().toString())) {
Token token = tokenizer.getNextToken();
while (!token.equals(Token.EOF)) {
@@ -65,7 +64,9 @@ public class CsTokenizer implements Tokenizer {
token = lookAhead;
}
tokenEntries.add(TokenEntry.getEOF());
IOUtils.closeQuietly(tokenizer);
} catch (IOException e) {
e.printStackTrace();
}
}
public void setIgnoreUsings(boolean ignoreUsings) {
@@ -17,7 +17,6 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import net.sourceforge.pmd.lang.java.ast.ASTAnnotation;
@@ -116,17 +115,13 @@ public class AvoidDuplicateLiteralsRule extends AbstractJavaRule {
exceptions = p.parse(getProperty(EXCEPTION_LIST_DESCRIPTOR));
} else if (getProperty(EXCEPTION_FILE_DESCRIPTOR) != null) {
exceptions = new HashSet<>();
LineNumberReader reader = null;
try {
reader = getLineReader();
try (LineNumberReader reader = getLineReader()) {
String line;
while ((line = reader.readLine()) != null) {
exceptions.add(line);
}
} catch (IOException ioe) {
ioe.printStackTrace();
} finally {
IOUtils.closeQuietly(reader);
}
}
@@ -275,13 +275,10 @@ public class ParserCornersTest {
}
private String readAsString(String resource) {
InputStream in = ParserCornersTest.class.getResourceAsStream(resource);
try {
try (InputStream in = ParserCornersTest.class.getResourceAsStream(resource)) {
return IOUtils.toString(in, StandardCharsets.UTF_8);
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
IOUtils.closeQuietly(in);
}
}
@@ -4,11 +4,10 @@
package net.sourceforge.pmd.cpd;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import org.apache.commons.io.IOUtils;
import net.sourceforge.pmd.cpd.token.JavaCCTokenFilter;
import net.sourceforge.pmd.cpd.token.TokenFilter;
import net.sourceforge.pmd.lang.LanguageRegistry;
@@ -26,11 +25,9 @@ public class EcmascriptTokenizer implements Tokenizer {
@Override
public void tokenize(SourceCode sourceCode, Tokens tokenEntries) {
StringBuilder buffer = sourceCode.getCodeBuffer();
Reader reader = null;
try {
try (Reader reader = new StringReader(buffer.toString())) {
LanguageVersionHandler languageVersionHandler = LanguageRegistry.getLanguage(EcmascriptLanguageModule.NAME)
.getDefaultVersion().getLanguageVersionHandler();
reader = new StringReader(buffer.toString());
TokenFilter tokenFilter = new JavaCCTokenFilter(languageVersionHandler
.getParser(languageVersionHandler.getDefaultParserOptions())
.getTokenManager(sourceCode.getFileName(), reader));
@@ -46,8 +43,8 @@ public class EcmascriptTokenizer implements Tokenizer {
err.printStackTrace();
System.err.println("Skipping " + sourceCode.getFileName() + " due to parse error");
tokenEntries.add(TokenEntry.getEOF());
} finally {
IOUtils.closeQuietly(reader);
} catch (IOException e) {
e.printStackTrace();
}
}
@@ -4,11 +4,10 @@
package net.sourceforge.pmd.cpd;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import org.apache.commons.io.IOUtils;
import net.sourceforge.pmd.lang.LanguageRegistry;
import net.sourceforge.pmd.lang.LanguageVersionHandler;
import net.sourceforge.pmd.lang.TokenManager;
@@ -23,11 +22,8 @@ public class JSPTokenizer implements Tokenizer {
StringBuilder buffer = sourceCode.getCodeBuffer();
LanguageVersionHandler languageVersionHandler = LanguageRegistry.getLanguage(JspLanguageModule.NAME)
.getDefaultVersion().getLanguageVersionHandler();
Reader reader = null;
try {
reader = new StringReader(buffer.toString());
reader = IOUtil.skipBOM(reader);
try (Reader reader = IOUtil.skipBOM(new StringReader(buffer.toString()))) {
TokenManager tokenMgr = languageVersionHandler.getParser(languageVersionHandler.getDefaultParserOptions())
.getTokenManager(sourceCode.getFileName(), reader);
Token currentToken = (Token) tokenMgr.getNextToken();
@@ -37,8 +33,8 @@ public class JSPTokenizer implements Tokenizer {
currentToken.beginLine));
currentToken = (Token) tokenMgr.getNextToken();
}
} finally {
IOUtils.closeQuietly(reader);
} catch (IOException e) {
e.printStackTrace();
}
tokenEntries.add(TokenEntry.getEOF());
}
@@ -4,11 +4,10 @@
package net.sourceforge.pmd.cpd;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import org.apache.commons.io.IOUtils;
import net.sourceforge.pmd.cpd.token.JavaCCTokenFilter;
import net.sourceforge.pmd.cpd.token.TokenFilter;
import net.sourceforge.pmd.lang.LanguageRegistry;
@@ -26,12 +25,10 @@ public class MatlabTokenizer implements Tokenizer {
@Override
public void tokenize(SourceCode sourceCode, Tokens tokenEntries) {
StringBuilder buffer = sourceCode.getCodeBuffer();
Reader reader = null;
try {
try (Reader reader = IOUtil.skipBOM(new StringReader(buffer.toString()))) {
LanguageVersionHandler languageVersionHandler = LanguageRegistry.getLanguage(MatlabLanguageModule.NAME)
.getDefaultVersion().getLanguageVersionHandler();
reader = new StringReader(buffer.toString());
reader = IOUtil.skipBOM(reader);
final TokenFilter tokenFilter = new JavaCCTokenFilter(languageVersionHandler
.getParser(languageVersionHandler.getDefaultParserOptions())
.getTokenManager(sourceCode.getFileName(), reader));
@@ -42,12 +39,10 @@ public class MatlabTokenizer implements Tokenizer {
}
tokenEntries.add(TokenEntry.getEOF());
System.err.println("Added " + sourceCode.getFileName());
} catch (TokenMgrError err) {
} catch (TokenMgrError | IOException err) {
err.printStackTrace();
System.err.println("Skipping " + sourceCode.getFileName() + " due to parse error");
tokenEntries.add(TokenEntry.getEOF());
} finally {
IOUtils.closeQuietly(reader);
}
}
}
@@ -4,11 +4,10 @@
package net.sourceforge.pmd.cpd;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import org.apache.commons.io.IOUtils;
import net.sourceforge.pmd.cpd.token.JavaCCTokenFilter;
import net.sourceforge.pmd.cpd.token.TokenFilter;
import net.sourceforge.pmd.lang.LanguageRegistry;
@@ -25,11 +24,9 @@ public class ObjectiveCTokenizer implements Tokenizer {
@Override
public void tokenize(SourceCode sourceCode, Tokens tokenEntries) {
StringBuilder buffer = sourceCode.getCodeBuffer();
Reader reader = null;
try {
try (Reader reader = new StringReader(buffer.toString())) {
LanguageVersionHandler languageVersionHandler = LanguageRegistry.getLanguage(ObjectiveCLanguageModule.NAME)
.getDefaultVersion().getLanguageVersionHandler();
reader = new StringReader(buffer.toString());
final TokenFilter tokenFilter = new JavaCCTokenFilter(languageVersionHandler
.getParser(languageVersionHandler.getDefaultParserOptions())
.getTokenManager(sourceCode.getFileName(), reader));
@@ -44,8 +41,8 @@ public class ObjectiveCTokenizer implements Tokenizer {
err.printStackTrace();
System.err.println("Skipping " + sourceCode.getFileName() + " due to parse error");
tokenEntries.add(TokenEntry.getEOF());
} finally {
IOUtils.closeQuietly(reader);
} catch (IOException e) {
e.printStackTrace();
}
}
}
@@ -4,11 +4,10 @@
package net.sourceforge.pmd.cpd;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import org.apache.commons.io.IOUtils;
import net.sourceforge.pmd.cpd.token.JavaCCTokenFilter;
import net.sourceforge.pmd.cpd.token.TokenFilter;
import net.sourceforge.pmd.lang.LanguageRegistry;
@@ -26,12 +25,9 @@ public class PythonTokenizer implements Tokenizer {
@Override
public void tokenize(SourceCode sourceCode, Tokens tokenEntries) {
StringBuilder buffer = sourceCode.getCodeBuffer();
Reader reader = null;
try {
try (Reader reader = IOUtil.skipBOM(new StringReader(buffer.toString()))) {
LanguageVersionHandler languageVersionHandler = LanguageRegistry.getLanguage(PythonLanguageModule.NAME)
.getDefaultVersion().getLanguageVersionHandler();
reader = new StringReader(buffer.toString());
reader = IOUtil.skipBOM(reader);
TokenFilter tokenFilter = new JavaCCTokenFilter(languageVersionHandler
.getParser(languageVersionHandler.getDefaultParserOptions())
.getTokenManager(sourceCode.getFileName(), reader));
@@ -42,12 +38,10 @@ public class PythonTokenizer implements Tokenizer {
}
tokenEntries.add(TokenEntry.getEOF());
System.err.println("Added " + sourceCode);
} catch (TokenMgrError err) {
} catch (TokenMgrError | IOException err) {
err.printStackTrace();
System.err.println("Skipping " + sourceCode + " due to parse error");
tokenEntries.add(TokenEntry.getEOF());
} finally {
IOUtils.closeQuietly(reader);
}
}
}
@@ -26,8 +26,6 @@ import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.io.IOUtils;
public final class StringUtils {
private StringUtils() {
// to prevent instantiation
@@ -35,15 +33,11 @@ public final class StringUtils {
public static List<String> convertStringToListOfLines(String string) throws IOException {
final List<String> lines = new ArrayList<>();
BufferedReader reader = null;
try {
reader = new BufferedReader(new StringReader(string));
try (BufferedReader reader = new BufferedReader(new StringReader(string))) {
String line = null;
while ((line = reader.readLine()) != null) {
lines.add(line);
}
} finally {
IOUtils.closeQuietly(reader);
}
return lines;
}
@@ -25,7 +25,6 @@ import javax.xml.parsers.ParserConfigurationException;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import org.apache.commons.io.IOUtils;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
@@ -328,13 +327,12 @@ public abstract class RuleTst {
*/
public TestDescriptor[] extractTestsFromXml(Rule rule, String testsFileName, String baseDirectory) {
String testXmlFileName = baseDirectory + testsFileName + ".xml";
InputStream inputStream = getClass().getResourceAsStream(testXmlFileName);
Document doc;
try (InputStream inputStream = getClass().getResourceAsStream(testXmlFileName)) {
if (inputStream == null) {
throw new RuntimeException("Couldn't find " + testXmlFileName);
}
Document doc;
try {
doc = documentBuilder.parse(inputStream);
} catch (FactoryConfigurationError fce) {
throw new RuntimeException("Couldn't parse " + testXmlFileName + ", due to: " + fce, fce);
@@ -342,8 +340,6 @@ public abstract class RuleTst {
throw new RuntimeException("Couldn't parse " + testXmlFileName + ", due to: " + ioe, ioe);
} catch (SAXException se) {
throw new RuntimeException("Couldn't parse " + testXmlFileName + ", due to: " + se, se);
} finally {
IOUtils.closeQuietly(inputStream);
}
return parseTests(rule, doc);
@@ -24,7 +24,6 @@ import javax.xml.parsers.ParserConfigurationException;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.io.IOUtils;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
@@ -92,17 +91,13 @@ public final class SettingsPersistenceUtil {
* @param file File to parse
*/
private static Optional<Document> getDocument(File file) {
InputStream stream = null;
if (file.exists()) {
try {
try (InputStream stream = new FileInputStream(file)) {
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
stream = new FileInputStream(file);
Document document = builder.parse(stream);
return Optional.of(document);
} catch (SAXException | ParserConfigurationException | IOException e) {
e.printStackTrace();
} finally {
IOUtils.closeQuietly(stream);
}
}
@@ -4,11 +4,10 @@
package net.sourceforge.pmd.cpd;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import org.apache.commons.io.IOUtils;
import net.sourceforge.pmd.lang.LanguageRegistry;
import net.sourceforge.pmd.lang.LanguageVersionHandler;
import net.sourceforge.pmd.lang.TokenManager;
@@ -27,11 +26,8 @@ public class VfTokenizer implements Tokenizer {
StringBuilder buffer = sourceCode.getCodeBuffer();
LanguageVersionHandler languageVersionHandler = LanguageRegistry.getLanguage(VfLanguageModule.NAME)
.getDefaultVersion().getLanguageVersionHandler();
Reader reader = null;
try {
reader = new StringReader(buffer.toString());
reader = IOUtil.skipBOM(reader);
try (Reader reader = IOUtil.skipBOM(new StringReader(buffer.toString()))) {
TokenManager tokenMgr = languageVersionHandler.getParser(languageVersionHandler.getDefaultParserOptions())
.getTokenManager(sourceCode.getFileName(), reader);
Token currentToken = (Token) tokenMgr.getNextToken();
@@ -41,8 +37,8 @@ public class VfTokenizer implements Tokenizer {
currentToken.beginLine));
currentToken = (Token) tokenMgr.getNextToken();
}
} finally {
IOUtils.closeQuietly(reader);
} catch (IOException e) {
e.printStackTrace();
}
tokenEntries.add(TokenEntry.getEOF());
}