From f7f89f2921532cf4fcbf0faab79547978cf1b02d Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Sat, 15 Nov 2014 23:57:03 +0100 Subject: [PATCH] Fix PMD dogfood issues in pmd-core --- .../pmd/AbstractPropertySource.java | 7 -- .../main/java/net/sourceforge/pmd/PMD.java | 21 +++- .../net/sourceforge/pmd/PMDConfiguration.java | 3 +- .../main/java/net/sourceforge/pmd/Report.java | 6 +- .../java/net/sourceforge/pmd/RuleSet.java | 32 ++--- .../net/sourceforge/pmd/RuleSetFactory.java | 16 ++- .../net/sourceforge/pmd/ant/Formatter.java | 10 +- .../pmd/benchmark/Benchmarker.java | 10 +- .../sourceforge/pmd/benchmark/TextReport.java | 4 - .../pmd/cli/PMDCommandLineInterface.java | 12 +- .../sourceforge/pmd/cli/PMDParameters.java | 10 +- .../net/sourceforge/pmd/cli/XPathCLI.java | 4 +- .../pmd/cpd/CPDCommandLineInterface.java | 14 ++- .../sourceforge/pmd/cpd/CPDConfiguration.java | 15 ++- .../net/sourceforge/pmd/cpd/CSVRenderer.java | 20 ++-- .../sourceforge/pmd/cpd/LanguageFactory.java | 2 +- .../net/sourceforge/pmd/cpd/TokenEntry.java | 14 +-- .../net/sourceforge/pmd/lang/Language.java | 2 +- .../pmd/lang/LanguageRegistry.java | 6 +- .../pmd/lang/ast/AbstractNode.java | 4 +- .../pmd/lang/dfa/AbstractDataFlowNode.java | 2 - .../pmd/lang/dfa/DFAGraphRule.java | 2 +- .../net/sourceforge/pmd/lang/dfa/Linker.java | 14 +++ .../sourceforge/pmd/lang/dfa/NodeType.java | 54 ++++----- .../pmd/lang/dfa/SequenceChecker.java | 16 ++- .../sourceforge/pmd/lang/dfa/Structure.java | 11 +- .../dfa/report/ReportHTMLPrintVisitor.java | 4 +- .../pmd/lang/rule/ImportWrapper.java | 10 +- .../lang/rule/ParametricRuleViolation.java | 4 +- .../pmd/lang/rule/RuleReference.java | 4 +- .../properties/AbstractNumericProperty.java | 10 +- .../properties/AbstractPackagedProperty.java | 2 +- .../rule/properties/DoubleMultiProperty.java | 2 +- .../lang/rule/properties/DoubleProperty.java | 2 +- .../rule/properties/FloatMultiProperty.java | 2 +- .../lang/rule/properties/FloatProperty.java | 2 +- .../rule/properties/IntegerMultiProperty.java | 2 +- .../lang/rule/properties/IntegerProperty.java | 2 +- .../rule/properties/LongMultiProperty.java | 2 +- .../lang/rule/properties/LongProperty.java | 2 +- .../rule/properties/MethodMultiProperty.java | 2 +- .../lang/rule/properties/MethodProperty.java | 2 +- .../rule/properties/TypeMultiProperty.java | 2 +- .../lang/rule/properties/TypeProperty.java | 2 +- .../BasicPropertyDescriptorFactory.java | 12 +- .../factories/PropertyDescriptorUtil.java | 10 +- .../lang/rule/xpath/JaxenXPathRuleQuery.java | 2 + .../pmd/processor/MonoThreadProcessor.java | 4 +- .../pmd/processor/PmdRunnable.java | 2 + .../pmd/renderers/CSVRenderer.java | 22 ++-- .../sourceforge/pmd/renderers/CSVWriter.java | 4 +- .../pmd/renderers/HTMLRenderer.java | 8 +- .../pmd/renderers/RendererFactory.java | 3 + .../pmd/renderers/SummaryHTMLRenderer.java | 18 +-- .../pmd/renderers/VBHTMLRenderer.java | 32 ++--- .../pmd/util/ClasspathClassLoader.java | 8 +- .../sourceforge/pmd/util/CollectionUtil.java | 12 +- .../sourceforge/pmd/util/DateTimeUtil.java | 6 +- .../sourceforge/pmd/util/EmptyIterator.java | 6 +- .../sourceforge/pmd/util/FileIterable.java | 4 +- .../net/sourceforge/pmd/util/FileUtil.java | 3 +- .../java/net/sourceforge/pmd/util/IOUtil.java | 4 +- .../net/sourceforge/pmd/util/StringUtil.java | 4 +- .../pmd/util/database/DBMSMetadata.java | 26 +++- .../sourceforge/pmd/util/database/DBType.java | 113 ++++++++++++++---- .../pmd/util/database/ResourceResolver.java | 5 +- .../pmd/util/database/SourceObject.java | 21 ++-- .../pmd/util/viewer/model/ViewerModel.java | 17 ++- 68 files changed, 449 insertions(+), 266 deletions(-) diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/AbstractPropertySource.java b/pmd-core/src/main/java/net/sourceforge/pmd/AbstractPropertySource.java index f45a3e63c2..f94345f615 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/AbstractPropertySource.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/AbstractPropertySource.java @@ -26,13 +26,6 @@ public abstract class AbstractPropertySource implements PropertySource { /** The values for each property. */ protected Map, Object> propertyValuesByDescriptor = new HashMap, Object>(); - /** - * Creates a new empty property source. - */ - public AbstractPropertySource() { - super(); - } - /** * Creates a copied list of the property descriptors and returns it. * diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/PMD.java b/pmd-core/src/main/java/net/sourceforge/pmd/PMD.java index f9db1cea55..042e442d12 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/PMD.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/PMD.java @@ -80,7 +80,9 @@ public class PMD { try { dataSources.add(new ReaderDataSource(dbmsMetadata.getSourceCode(sourceObject), falseFilePath)); } catch (SQLException ex) { - LOG.log(Level.WARNING, "Cannot get SourceCode for " + falseFilePath + " - skipping ...", ex); + if (LOG.isLoggable(Level.WARNING)) { + LOG.log(Level.WARNING, "Cannot get SourceCode for " + falseFilePath + " - skipping ...", ex); + } } } } catch (URISyntaxException e) { @@ -115,8 +117,9 @@ public class PMD { // TODO Handle Rules having different parser options. LanguageVersionHandler languageVersionHandler = languageVersion.getLanguageVersionHandler(); ParserOptions options = languageVersionHandler.getDefaultParserOptions(); - if (configuration != null) + if (configuration != null) { options.setSuppressMarker(configuration.getSuppressMarker()); + } return languageVersionHandler.getParser(options); } @@ -155,8 +158,10 @@ public class PMD { ruleSets.removeDysfunctionalRules(brokenRules); for (Rule rule : brokenRules) { - LOG.log(Level.WARNING, + if (LOG.isLoggable(Level.WARNING)) { + LOG.log(Level.WARNING, "Removed misconfigured rule: " + rule.getName() + " cause: " + rule.dysfunctionReason()); + } } return brokenRules; @@ -210,8 +215,9 @@ public class PMD { // Load the RuleSets RuleSetFactory ruleSetFactory = RulesetsFactoryUtils.getRulesetFactory(configuration); RuleSets ruleSets = RulesetsFactoryUtils.getRuleSetsWithBenchmark(configuration.getRuleSets(), ruleSetFactory); - if (ruleSets == null) + if (ruleSets == null) { return; + } Set languages = getApplicableLanguages(configuration, ruleSets); List files = getApplicableFiles(configuration, languages); @@ -388,12 +394,15 @@ public class PMD { for (Rule rule : ruleSets.getAllRules()) { Language language = rule.getLanguage(); - if (languages.contains(language)) + if (languages.contains(language)) { continue; + } LanguageVersion version = discoverer.getDefaultLanguageVersion(language); if (RuleSet.applies(rule, version)) { languages.add(language); - LOG.fine("Using " + language.getShortName() + " version: " + version.getShortName()); + if (LOG.isLoggable(Level.FINE)) { + LOG.fine("Using " + language.getShortName() + " version: " + version.getShortName()); + } } } return languages; diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/PMDConfiguration.java b/pmd-core/src/main/java/net/sourceforge/pmd/PMDConfiguration.java index a0cedbcc16..ef6a7cd581 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/PMDConfiguration.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/PMDConfiguration.java @@ -364,8 +364,9 @@ public class PMDConfiguration extends AbstractConfiguration { public Renderer createRenderer(boolean withReportWriter) { Renderer renderer = RendererFactory.createRenderer(reportFormat, reportProperties); renderer.setShowSuppressedViolations(showSuppressedViolations); - if (withReportWriter) + if (withReportWriter) { renderer.setWriter(IOUtil.createWriter(reportFile)); + } return renderer; } diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/Report.java b/pmd-core/src/main/java/net/sourceforge/pmd/Report.java index b399895017..be5f71aced 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/Report.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/Report.java @@ -322,8 +322,9 @@ public class Report implements Iterable { * @param error the error to add */ public void addConfigError(RuleConfigurationError error) { - if (configErrors == null) + if (configErrors == null) { configErrors = new ArrayList(); + } configErrors.add(error); } @@ -333,8 +334,9 @@ public class Report implements Iterable { * @param error the error to add */ public void addError(ProcessingError error) { - if (errors == null) + if (errors == null) { errors = new ArrayList(); + } errors.add(error); } diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/RuleSet.java b/pmd-core/src/main/java/net/sourceforge/pmd/RuleSet.java index 2b366749ef..d385545ec5 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/RuleSet.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/RuleSet.java @@ -309,13 +309,15 @@ public class RuleSet { Benchmarker.mark(Benchmark.Rule, rule.getName(), end - start, 1); start = end; } - } catch (ThreadDeath td) { - throw td; } catch (Throwable t) { - if (ctx.isIgnoreExceptions()) { - LOG.log(Level.WARNING, "Exception applying rule " + rule.getName() + if (t instanceof ThreadDeath) { + throw (ThreadDeath)t; + } else if (ctx.isIgnoreExceptions()) { + if (LOG.isLoggable(Level.WARNING)) { + LOG.log(Level.WARNING, "Exception applying rule " + rule.getName() + " on file " + ctx.getSourceCodeFilename() + ", continuing with next rule", t); + } } else { throw new RuntimeException(t); } @@ -415,8 +417,9 @@ public class RuleSet { * @param aPattern the pattern */ public void addExcludePattern(String aPattern) { - if (excludePatterns.contains(aPattern)) + if (excludePatterns.contains(aPattern)) { return; + } excludePatterns.add(aPattern); patternsChanged(); @@ -429,8 +432,9 @@ public class RuleSet { */ public void addExcludePatterns(Collection someExcludePatterns) { int added = CollectionUtil.addWithoutDuplicates(someExcludePatterns, excludePatterns); - if (added > 0) + if (added > 0) { patternsChanged(); + } } /** @@ -439,8 +443,9 @@ public class RuleSet { * @param theExcludePatterns the new patterns */ public void setExcludePatterns(Collection theExcludePatterns) { - if (excludePatterns.equals(theExcludePatterns)) + if (excludePatterns.equals(theExcludePatterns)) { return; + } excludePatterns.clear(); CollectionUtil.addWithoutDuplicates(theExcludePatterns, excludePatterns); @@ -457,9 +462,9 @@ public class RuleSet { * @param aPattern the pattern */ public void addIncludePattern(String aPattern) { - - if (includePatterns.contains(aPattern)) + if (includePatterns.contains(aPattern)) { return; + } includePatterns.add(aPattern); patternsChanged(); @@ -471,10 +476,10 @@ public class RuleSet { * @param someIncludePatterns the patterns */ public void addIncludePatterns(Collection someIncludePatterns) { - int added = CollectionUtil.addWithoutDuplicates(someIncludePatterns, includePatterns); - if (added > 0) + if (added > 0) { patternsChanged(); + } } /** @@ -483,9 +488,9 @@ public class RuleSet { * @param theIncludePatterns the new patterns */ public void setIncludePatterns(Collection theIncludePatterns) { - - if (includePatterns.equals(theIncludePatterns)) + if (includePatterns.equals(theIncludePatterns)) { return; + } includePatterns.clear(); CollectionUtil.addWithoutDuplicates(theIncludePatterns, includePatterns); @@ -521,7 +526,6 @@ public class RuleSet { * @param collector the removed rules will be added to this collection */ public void removeDysfunctionalRules(Collection collector) { - Iterator iter = rules.iterator(); while (iter.hasNext()) { diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/RuleSetFactory.java b/pmd-core/src/main/java/net/sourceforge/pmd/RuleSetFactory.java index 9dbe9ea6a8..f82dcdff35 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/RuleSetFactory.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/RuleSetFactory.java @@ -13,6 +13,7 @@ import java.util.List; import java.util.Map; import java.util.Properties; import java.util.Set; +import java.util.logging.Level; import java.util.logging.Logger; import javax.xml.parsers.DocumentBuilder; @@ -341,8 +342,9 @@ public class RuleSetFactory { } String attribute = ruleElement.getAttribute("class"); - if ( attribute == null || "".equals(attribute)) + if ( attribute == null || "".equals(attribute)) { throw new IllegalArgumentException("The 'class' field of rule can't be null, nor empty."); + } Rule rule = (Rule) classLoader.loadClass(attribute).newInstance(); rule.setName(ruleElement.getAttribute("name")); @@ -474,17 +476,23 @@ public class RuleSetFactory { if (warnDeprecated && referencedRule.isDeprecated()) { if (referencedRule instanceof RuleReference) { RuleReference ruleReference = (RuleReference) referencedRule; - LOG.warning("Use Rule name " + ruleReference.getRuleSetReference().getRuleSetFileName() + "/" + if (LOG.isLoggable(Level.WARNING)) { + LOG.warning("Use Rule name " + ruleReference.getRuleSetReference().getRuleSetFileName() + "/" + ruleReference.getName() + " instead of the deprecated Rule name " + otherRuleSetReferenceId + ". Future versions of PMD will remove support for this deprecated Rule name usage."); + } } else if (referencedRule instanceof MockRule) { - LOG.warning("Discontinue using Rule name " + otherRuleSetReferenceId + if (LOG.isLoggable(Level.WARNING)) { + LOG.warning("Discontinue using Rule name " + otherRuleSetReferenceId + " as it has been removed from PMD and no longer functions." + " Future versions of PMD will remove support for this Rule."); + } } else { - LOG.warning("Discontinue using Rule name " + otherRuleSetReferenceId + if (LOG.isLoggable(Level.WARNING)) { + LOG.warning("Discontinue using Rule name " + otherRuleSetReferenceId + " as it is scheduled for removal from PMD." + " Future versions of PMD will remove support for this Rule."); + } } } diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/ant/Formatter.java b/pmd-core/src/main/java/net/sourceforge/pmd/ant/Formatter.java index 69049df0ee..591653a492 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/ant/Formatter.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/ant/Formatter.java @@ -101,15 +101,15 @@ public class Formatter { } private static String unknownRendererMessage(String userSpecifiedType) { - StringBuilder sb = new StringBuilder(100); - sb.append("Formatter type must be one of: '"); String[] typeCodes = validRendererCodes(); - sb.append(typeCodes[0]); + StringBuilder sb = new StringBuilder(100); + sb.append("Formatter type must be one of: '") + .append(typeCodes[0]); for (int i = 1; i < typeCodes.length; i++) { sb.append("', '").append(typeCodes[i]); } - sb.append("', or a class name; you specified: "); - sb.append(userSpecifiedType); + sb.append("', or a class name; you specified: ") + .append(userSpecifiedType); return sb.toString(); } diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/benchmark/Benchmarker.java b/pmd-core/src/main/java/net/sourceforge/pmd/benchmark/Benchmarker.java index 2629f6d61c..34f4b79d86 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/benchmark/Benchmarker.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/benchmark/Benchmarker.java @@ -185,7 +185,7 @@ public class Benchmarker { } } - private static final Map BenchmarksByName = new HashMap(); + private static final Map BENCHMARKS_BY_NAME = new HashMap(); /** * @param type Benchmark @@ -212,16 +212,16 @@ public class Benchmarker { } else if (typeName == null) { typeName = name; } - BenchmarkResult benchmarkResult = BenchmarksByName.get(typeName); + BenchmarkResult benchmarkResult = BENCHMARKS_BY_NAME.get(typeName); if (benchmarkResult == null) { benchmarkResult = new BenchmarkResult(type, typeName); - BenchmarksByName.put(typeName, benchmarkResult); + BENCHMARKS_BY_NAME.put(typeName, benchmarkResult); } benchmarkResult.update(time, count); } public static void reset() { - BenchmarksByName.clear(); + BENCHMARKS_BY_NAME.clear(); } /** @@ -229,6 +229,6 @@ public class Benchmarker { * @return Map */ public static Map values() { - return BenchmarksByName; + return BENCHMARKS_BY_NAME; } } diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/benchmark/TextReport.java b/pmd-core/src/main/java/net/sourceforge/pmd/benchmark/TextReport.java index 77f81990a2..bab6a8e33d 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/benchmark/TextReport.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/benchmark/TextReport.java @@ -25,10 +25,6 @@ public class TextReport implements BenchmarkReport { private static final int NAME_COLUMN_WIDTH = 50; private static final int VALUE_COLUMN_WIDTH = 8; - public TextReport() { - - } - /** * * @param stressResults Set diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/cli/PMDCommandLineInterface.java b/pmd-core/src/main/java/net/sourceforge/pmd/cli/PMDCommandLineInterface.java index ed1ab3f7e2..8f0f66538f 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/cli/PMDCommandLineInterface.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/cli/PMDCommandLineInterface.java @@ -56,8 +56,9 @@ public class PMDCommandLineInterface { String allCommandsDescription = null; if ( jcommander != null && jcommander.getCommands() != null ) { - for ( String command : jcommander.getCommands().keySet() ) + for ( String command : jcommander.getCommands().keySet() ) { allCommandsDescription += jcommander.getCommandDescription(command) + PMD.EOL; + } } // TODO: Externalize that to a file available within the classpath ? - with a poor's man templating ? @@ -150,7 +151,9 @@ public class PMDCommandLineInterface { buf.append(" ").append(property.name()).append(" - "); buf.append(property.description()); Object deflt = property.defaultValue(); - if (deflt != null) buf.append(" default: ").append(deflt); + if (deflt != null) { + buf.append(" default: ").append(deflt); + } buf.append(PMD.EOL); } @@ -164,10 +167,11 @@ public class PMDCommandLineInterface { } public static void setStatusCodeOrExit(int status) { - if ( isExitAfterRunSet() ) + if ( isExitAfterRunSet() ) { System.exit(status); - else + } else { setStatusCode(status); + } } private static boolean isExitAfterRunSet() { diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/cli/PMDParameters.java b/pmd-core/src/main/java/net/sourceforge/pmd/cli/PMDParameters.java index 75e72faaf5..e1504ee342 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/cli/PMDParameters.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/cli/PMDParameters.java @@ -78,14 +78,15 @@ public class PMDParameters { // this has to be a public static class, so that JCommander can use it! public static class PropertyConverter implements IStringConverter { - private static final char separator = '='; + private static final char SEPARATOR = '='; public Properties convert(String value) { Properties properties = new Properties(); - int indexOfSeparator = value.indexOf(separator); - if (indexOfSeparator < 0) + int indexOfSeparator = value.indexOf(SEPARATOR); + if (indexOfSeparator < 0) { throw new ParameterException( "Property name must be separated with an = sign from it value: name=value."); + } String propertyName = value.substring(0, indexOfSeparator); String propertyValue = value.substring(indexOfSeparator + 1); properties.put(propertyName, propertyValue); @@ -98,9 +99,10 @@ public class PMDParameters { public int validate(String value) throws ParameterException { int minPriorityValue = Integer.parseInt(value); - if (minPriorityValue < 0 || minPriorityValue > 5) + if (minPriorityValue < 0 || minPriorityValue > 5) { throw new ParameterException("Priority values can only be integer value, between 0 and 5," + value + " is not valid"); + } return minPriorityValue; } diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/cli/XPathCLI.java b/pmd-core/src/main/java/net/sourceforge/pmd/cli/XPathCLI.java index 14bcf7106d..91a91978fd 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/cli/XPathCLI.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/cli/XPathCLI.java @@ -61,7 +61,9 @@ public class XPathCLI { for (Iterator i = ctx.getReport().iterator(); i.hasNext();) { RuleViolation rv = i.next(); - StringBuilder sb = new StringBuilder("Match at line " + rv.getBeginLine() + " column " + rv.getBeginColumn()); + StringBuilder sb = new StringBuilder(60) + .append("Match at line ").append(rv.getBeginLine()) + .append(" column ").append(rv.getBeginColumn()); if (StringUtil.isNotEmpty(rv.getPackageName())) { sb.append("; package name '" + rv.getPackageName() + "'"); } diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/cpd/CPDCommandLineInterface.java b/pmd-core/src/main/java/net/sourceforge/pmd/cpd/CPDCommandLineInterface.java index 50854db38d..b3a140b6b2 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/cpd/CPDCommandLineInterface.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/cpd/CPDCommandLineInterface.java @@ -22,13 +22,14 @@ public class CPDCommandLineInterface { public static final String NO_EXIT_AFTER_RUN = "net.sourceforge.pmd.cli.noExit"; public static final String STATUS_CODE_PROPERTY = "net.sourceforge.pmd.cli.status"; - private static final String progName = "cpd"; + private static final String PROGRAM_NAME = "cpd"; public static void setStatusCodeOrExit(int status) { - if (isExitAfterRunSet()) + if (isExitAfterRunSet()) { System.exit(status); - else + } else { setStatusCode(status); + } } private static boolean isExitAfterRunSet() { @@ -46,7 +47,7 @@ public class CPDCommandLineInterface { public static void main(String[] args) { CPDConfiguration arguments = new CPDConfiguration(); JCommander jcommander = new JCommander(arguments); - jcommander.setProgramName(progName); + jcommander.setProgramName(PROGRAM_NAME); try { jcommander.parse(args); @@ -91,10 +92,11 @@ public class CPDCommandLineInterface { private static void addSourcesFilesToCPD(List files, CPD cpd, boolean recursive) { try { for (String file : files) - if (recursive) + if (recursive) { cpd.addRecursively(file); - else + } else { cpd.addAllInDirectory(file); + } } catch (IOException e) { throw new IllegalStateException(e); } diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/cpd/CPDConfiguration.java b/pmd-core/src/main/java/net/sourceforge/pmd/cpd/CPDConfiguration.java index 339d500177..8a0a66866e 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/cpd/CPDConfiguration.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/cpd/CPDConfiguration.java @@ -122,12 +122,15 @@ public class CPDConfiguration extends AbstractConfiguration { if (!getEncoding().equals(System.getProperty("file.encoding"))) System.setProperty("file.encoding", getEncoding()); } - if ( this.getLanguage() == null ) + if ( this.getLanguage() == null ) { this.setLanguage(CPDConfiguration.getLanguageFromString(DEFAULT_LANGUAGE)); - if (this.getRendererName() == null ) + } + if (this.getRendererName() == null ) { this.setRendererName(DEFAULT_RENDERER); - if ( this.getRenderer() == null ) + } + if ( this.getRenderer() == null ) { this.setRenderer(getRendererFromString(getRendererName())); + } } public static Renderer getRendererFromString(String name /* , String encoding */) { @@ -211,14 +214,16 @@ public class CPDConfiguration extends AbstractConfiguration { } public Tokenizer tokenizer() { - if ( language == null ) + if ( language == null ) { throw new IllegalStateException("Language is null."); + } return language.getTokenizer(); } public FilenameFilter filenameFilter() { - if (language == null) + if (language == null) { throw new IllegalStateException("Language is null."); + } final FilenameFilter languageFilter = language.getFileFilter(); final Set exclusions = new HashSet(); diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/cpd/CSVRenderer.java b/pmd-core/src/main/java/net/sourceforge/pmd/cpd/CSVRenderer.java index 98077b93cc..d94cff6937 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/cpd/CSVRenderer.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/cpd/CSVRenderer.java @@ -23,21 +23,21 @@ public class CSVRenderer implements Renderer { } public String render(Iterator matches) { - StringBuilder rpt = new StringBuilder(1000); - rpt.append("lines").append(separator); - rpt.append("tokens").append(separator); - rpt.append("occurrences"); - rpt.append(PMD.EOL); + StringBuilder rpt = new StringBuilder(1000) + .append("lines").append(separator) + .append("tokens").append(separator) + .append("occurrences") + .append(PMD.EOL); while (matches.hasNext()) { Match match = matches.next(); - rpt.append(match.getLineCount()).append(separator); - rpt.append(match.getTokenCount()).append(separator); - rpt.append(match.getMarkCount()).append(separator); + rpt.append(match.getLineCount()).append(separator) + .append(match.getTokenCount()).append(separator) + .append(match.getMarkCount()).append(separator); for (Iterator marks = match.iterator(); marks.hasNext();) { TokenEntry mark = marks.next(); - rpt.append(mark.getBeginLine()).append(separator); - rpt.append(mark.getTokenSrcID()); + rpt.append(mark.getBeginLine()).append(separator) + .append(mark.getTokenSrcID()); if (marks.hasNext()) { rpt.append(separator); } diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/cpd/LanguageFactory.java b/pmd-core/src/main/java/net/sourceforge/pmd/cpd/LanguageFactory.java index a930e53f86..08f72667b9 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/cpd/LanguageFactory.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/cpd/LanguageFactory.java @@ -8,7 +8,7 @@ import java.util.Map; import java.util.Properties; import java.util.ServiceLoader; -public class LanguageFactory { +public final class LanguageFactory { public static final String EXTENSION = "extension"; public static final String BY_EXTENSION = "by_extension"; diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/cpd/TokenEntry.java b/pmd-core/src/main/java/net/sourceforge/pmd/cpd/TokenEntry.java index 35016b42b5..c4a08024a5 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/cpd/TokenEntry.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/cpd/TokenEntry.java @@ -19,13 +19,13 @@ public class TokenEntry implements Comparable { private int identifier; private int hashCode; - private static ThreadLocal> TOKENS = new ThreadLocal>(){ + private static final ThreadLocal> TOKENS = new ThreadLocal>(){ @Override protected Map initialValue() { return new HashMap(); } }; - private static ThreadLocal tokenCount = new ThreadLocal(){ + private static final ThreadLocal TOKEN_COUNT = new ThreadLocal(){ @Override protected AtomicInteger initialValue() { return new AtomicInteger(0); @@ -46,18 +46,18 @@ public class TokenEntry implements Comparable { this.identifier = i.intValue(); this.tokenSrcID = tokenSrcID; this.beginLine = beginLine; - this.index = tokenCount.get().getAndIncrement(); + this.index = TOKEN_COUNT.get().getAndIncrement(); } public static TokenEntry getEOF() { - tokenCount.get().getAndIncrement(); + TOKEN_COUNT.get().getAndIncrement(); return EOF; } public static void clearImages() { TOKENS.get().clear(); TOKENS.remove(); - tokenCount.remove(); + TOKEN_COUNT.remove(); } /** * Helper class to preserve and restore the current state @@ -68,12 +68,12 @@ public class TokenEntry implements Comparable { private Map tokens; private List entries; public State(List entries) { - this.tokenCount = TokenEntry.tokenCount.get().intValue(); + this.tokenCount = TokenEntry.TOKEN_COUNT.get().intValue(); this.tokens = new HashMap(TokenEntry.TOKENS.get()); this.entries = new ArrayList(entries); } public List restore() { - TokenEntry.tokenCount.get().set(tokenCount); + TokenEntry.TOKEN_COUNT.get().set(tokenCount); TOKENS.get().clear(); TOKENS.get().putAll(tokens); return entries; diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/Language.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/Language.java index cd9c2e5e81..102106c86b 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/Language.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/Language.java @@ -27,7 +27,7 @@ import java.util.List; */ public interface Language { - static final String LANGUAGE_MODULES_CLASS_NAMES_PROPERTY = "languageModulesClassNames"; + String LANGUAGE_MODULES_CLASS_NAMES_PROPERTY = "languageModulesClassNames"; /** * Get the full name of this Language. This is generally the name of this diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/LanguageRegistry.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/LanguageRegistry.java index 1ea3478353..0177bd209a 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/LanguageRegistry.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/LanguageRegistry.java @@ -13,7 +13,7 @@ import java.util.ServiceLoader; /** * Created by christoferdutz on 20.09.14. */ -public class LanguageRegistry { +public final class LanguageRegistry { private static LanguageRegistry instance; @@ -58,8 +58,8 @@ public class LanguageRegistry { public static LanguageVersion findLanguageVersionByTerseName(String terseName) { String version = null; if(terseName.contains(" ")) { - version = terseName.substring(terseName.lastIndexOf(" ") + 1); - terseName = terseName.substring(0, terseName.lastIndexOf(" ")); + version = terseName.substring(terseName.lastIndexOf(' ') + 1); + terseName = terseName.substring(0, terseName.lastIndexOf(' ')); } Language language = findLanguageByTerseName(terseName); if(language != null) { diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/AbstractNode.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/AbstractNode.java index 0d5626cd58..75ca4b7a85 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/AbstractNode.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/ast/AbstractNode.java @@ -351,7 +351,9 @@ public abstract class AbstractNode implements Node { */ public final boolean hasDecendantOfAnyType(Class... types) { for (Class type : types) { - if (hasDescendantOfType(type)) return true; + if (hasDescendantOfType(type)) { + return true; + } } return false; } diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/dfa/AbstractDataFlowNode.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/dfa/AbstractDataFlowNode.java index cc80f56df6..dd37c23529 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/dfa/AbstractDataFlowNode.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/dfa/AbstractDataFlowNode.java @@ -5,9 +5,7 @@ package net.sourceforge.pmd.lang.dfa; import java.util.ArrayList; import java.util.BitSet; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.StringTokenizer; import net.sourceforge.pmd.lang.ast.Node; diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/dfa/DFAGraphRule.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/dfa/DFAGraphRule.java index b8e3a68662..d9d2a7b42b 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/dfa/DFAGraphRule.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/dfa/DFAGraphRule.java @@ -8,5 +8,5 @@ import java.util.List; import net.sourceforge.pmd.Rule; public interface DFAGraphRule extends Rule { - public List getMethods(); + List getMethods(); } diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/dfa/Linker.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/dfa/Linker.java index d35744d7f5..b5df4fc5c6 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/dfa/Linker.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/dfa/Linker.java @@ -45,15 +45,19 @@ public class Linker { ); } if (sc.getFirstIndex() < 0 || sc.getLastIndex() < 0) { + if (LOGGER.isLoggable(Level.SEVERE)) { LOGGER.severe("Sequence Checker problem: getFirstIndex()==" + sc.getFirstIndex() + ", getLastIndex()==" + sc.getLastIndex() ); + } throw new SequenceException("computePaths(): return index < 0"); } StackObject firstStackObject = braceStack.get(sc.getFirstIndex()); + if (LOGGER.isLoggable(Level.FINE)) { LOGGER.fine("Checking first braceStack element of type=="+ NodeType.stringFromType(firstStackObject.getType()) ); + } switch (firstStackObject.getType()) { case NodeType.IF_EXPR: LOGGER.finest("IF_EXPR"); @@ -93,12 +97,18 @@ public class Linker { default: } + if (LOGGER.isLoggable(Level.FINEST)) { LOGGER.finest("Removing braces from Last to first: " + sc.getLastIndex() + " to " + sc.getFirstIndex()); + } for (int y = sc.getLastIndex(); y >= sc.getFirstIndex(); y--) { + if (LOGGER.isLoggable(Level.FINEST)) { LOGGER.finest("Removing brace : " + y ); + } braceStack.remove(y); } + if (LOGGER.isLoggable(Level.FINE)) { LOGGER.fine("Completed Sequence checking loop" + braceStack ); + } } if (LOGGER.isLoggable(Level.FINER)) { @@ -324,20 +334,24 @@ public class Linker { DataFlowNode sEnd = this.braceStack.get(lastIndex).getDataFlowNode(); DataFlowNode end = sEnd.getChildren().get(0); + if (LOGGER.isLoggable(Level.FINE)) { LOGGER.fine( "Stack(sStart)=>" + sStart +",Stack(sEnd)=>" + sEnd +",end=>" + end ); + } for (int i = 0; i < diff - 2; i++) { StackObject so = this.braceStack.get(firstIndex + 2 + i); DataFlowNode node = so.getDataFlowNode(); + if (LOGGER.isLoggable(Level.FINE)) { LOGGER.fine( "so(" + (firstIndex + 2 + i) + ")=>" + so +" has dfn=>" + node +" with first child =>" + node.getChildren().get(0) ); + } sStart.addPathToChild(node.getChildren().get(0)); if (so.getType() == NodeType.SWITCH_LAST_DEFAULT_STATEMENT) { diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/dfa/NodeType.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/dfa/NodeType.java index 02fadc3861..3de99d107c 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/dfa/NodeType.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/dfa/NodeType.java @@ -45,42 +45,42 @@ public class NodeType { public static final int THROW_STATEMENT = 70; //Poor Man's Enum until we convert the class to real enum - private static final Map typeMap = new HashMap(); + private static final Map TYPE_MAP = new HashMap(); static { - typeMap.put(NodeType.IF_EXPR, "IF_EXPR"); - typeMap.put(NodeType.IF_LAST_STATEMENT, "IF_LAST_STATEMENT"); - typeMap.put(NodeType.IF_LAST_STATEMENT_WITHOUT_ELSE, "IF_LAST_STATEMENT_WITHOUT_ELSE"); - typeMap.put(NodeType.ELSE_LAST_STATEMENT, "ELSE_LAST_STATEMENT"); - typeMap.put(NodeType.WHILE_LAST_STATEMENT, "WHILE_LAST_STATEMENT"); - typeMap.put(NodeType.WHILE_EXPR, "WHILE_EXPR"); - typeMap.put(NodeType.SWITCH_START, "SWITCH_START"); - typeMap.put(NodeType.CASE_LAST_STATEMENT, "CASE_LAST_STATEMENT"); - typeMap.put(NodeType.SWITCH_LAST_DEFAULT_STATEMENT, "SWITCH_LAST_DEFAULT_STATEMENT"); - typeMap.put(NodeType.SWITCH_END, "SWITCH_END"); - typeMap.put(NodeType.FOR_INIT, "FOR_INIT"); - typeMap.put(NodeType.FOR_EXPR, "FOR_EXPR"); - typeMap.put(NodeType.FOR_UPDATE, "FOR_UPDATE"); - typeMap.put(NodeType.FOR_BEFORE_FIRST_STATEMENT, "FOR_BEFORE_FIRST_STATEMENT"); - typeMap.put(NodeType.FOR_END, "FOR_END"); - typeMap.put(NodeType.DO_BEFORE_FIRST_STATEMENT, "DO_BEFORE_FIRST_STATEMENT"); - typeMap.put(NodeType.DO_EXPR, "DO_EXPR"); - typeMap.put(NodeType.RETURN_STATEMENT, "RETURN_STATEMENT"); - typeMap.put(NodeType.BREAK_STATEMENT, "BREAK_STATEMENT"); - typeMap.put(NodeType.CONTINUE_STATEMENT, "CONTINUE_STATEMENT"); - typeMap.put(NodeType.LABEL_STATEMENT, "LABEL_STATEMENT"); - typeMap.put(NodeType.LABEL_LAST_STATEMENT, "LABEL_END"); - typeMap.put(NodeType.THROW_STATEMENT, "THROW_STATEMENT"); + TYPE_MAP.put(NodeType.IF_EXPR, "IF_EXPR"); + TYPE_MAP.put(NodeType.IF_LAST_STATEMENT, "IF_LAST_STATEMENT"); + TYPE_MAP.put(NodeType.IF_LAST_STATEMENT_WITHOUT_ELSE, "IF_LAST_STATEMENT_WITHOUT_ELSE"); + TYPE_MAP.put(NodeType.ELSE_LAST_STATEMENT, "ELSE_LAST_STATEMENT"); + TYPE_MAP.put(NodeType.WHILE_LAST_STATEMENT, "WHILE_LAST_STATEMENT"); + TYPE_MAP.put(NodeType.WHILE_EXPR, "WHILE_EXPR"); + TYPE_MAP.put(NodeType.SWITCH_START, "SWITCH_START"); + TYPE_MAP.put(NodeType.CASE_LAST_STATEMENT, "CASE_LAST_STATEMENT"); + TYPE_MAP.put(NodeType.SWITCH_LAST_DEFAULT_STATEMENT, "SWITCH_LAST_DEFAULT_STATEMENT"); + TYPE_MAP.put(NodeType.SWITCH_END, "SWITCH_END"); + TYPE_MAP.put(NodeType.FOR_INIT, "FOR_INIT"); + TYPE_MAP.put(NodeType.FOR_EXPR, "FOR_EXPR"); + TYPE_MAP.put(NodeType.FOR_UPDATE, "FOR_UPDATE"); + TYPE_MAP.put(NodeType.FOR_BEFORE_FIRST_STATEMENT, "FOR_BEFORE_FIRST_STATEMENT"); + TYPE_MAP.put(NodeType.FOR_END, "FOR_END"); + TYPE_MAP.put(NodeType.DO_BEFORE_FIRST_STATEMENT, "DO_BEFORE_FIRST_STATEMENT"); + TYPE_MAP.put(NodeType.DO_EXPR, "DO_EXPR"); + TYPE_MAP.put(NodeType.RETURN_STATEMENT, "RETURN_STATEMENT"); + TYPE_MAP.put(NodeType.BREAK_STATEMENT, "BREAK_STATEMENT"); + TYPE_MAP.put(NodeType.CONTINUE_STATEMENT, "CONTINUE_STATEMENT"); + TYPE_MAP.put(NodeType.LABEL_STATEMENT, "LABEL_STATEMENT"); + TYPE_MAP.put(NodeType.LABEL_LAST_STATEMENT, "LABEL_END"); + TYPE_MAP.put(NodeType.THROW_STATEMENT, "THROW_STATEMENT"); } public static Map getTypeMap() { - return typeMap; + return TYPE_MAP; } public static String stringFromType(int intype) { if(-1 == intype) { return "" ; } - if (!typeMap.containsKey(intype) ) { + if (!TYPE_MAP.containsKey(intype) ) { throw new RuntimeException("Couldn't find NodeType type id " + intype); } - return typeMap.get(intype); + return TYPE_MAP.get(intype); } } diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/dfa/SequenceChecker.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/dfa/SequenceChecker.java index ee34a71a3b..b369c6f7e3 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/dfa/SequenceChecker.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/dfa/SequenceChecker.java @@ -5,6 +5,7 @@ package net.sourceforge.pmd.lang.dfa; import java.util.ArrayList; import java.util.List; +import java.util.logging.Level; import java.util.logging.Logger; @@ -188,15 +189,16 @@ public class SequenceChecker { int maximumIterations = this.bracesList.size() * this.bracesList.size() ; for (int i = 0, l = 0; i < this.bracesList.size(); l++, i++) { StackObject so = bracesList.get(i); + if (LOGGER.isLoggable(Level.FINEST)) { LOGGER.finest("Processing bracesList(l,i)=("+l+","+i+") of Type " + NodeType.stringFromType(so.getType()) + " with State (aktStatus) = " + aktStatus ); - //LOGGER.finest("StackObject of Type="+so.getType()); LOGGER.finest("DataFlowNode @ line "+ so.getDataFlowNode().getLine() + " and index=" + so.getDataFlowNode().getIndex() ); + } //Attempt to get to this StackObject's NodeType from the current State aktStatus = this.aktStatus.step(so.getType()); @@ -212,7 +214,9 @@ public class SequenceChecker { //Cope with incorrect bracesList contents else if (l > maximumIterations ) { - LOGGER.severe("aktStatus is NULL: maximum Iterations exceeded, abort "+i); + if (LOGGER.isLoggable(Level.SEVERE)) { + LOGGER.severe("aktStatus is NULL: maximum Iterations exceeded, abort "+i); + } LOGGER.exiting(this.getClass().getCanonicalName(),"run", false); return false; } @@ -220,13 +224,17 @@ public class SequenceChecker { this.aktStatus = root; this.firstIndex = i; i--; - LOGGER.finest("aktStatus is NULL: Restarting search continue i==" +i + ", firstIndex=" + this.firstIndex ); + if (LOGGER.isLoggable(Level.FINEST)) { + LOGGER.finest("aktStatus is NULL: Restarting search continue i==" +i + ", firstIndex=" + this.firstIndex ); + } continue; } } else { // This NodeType _is_ a valid transition from the previous State if (aktStatus.isLastStep() && !aktStatus.hasMoreSteps()) { //Terminal State this.lastIndex = i; + if (LOGGER.isLoggable(Level.FINEST)) { LOGGER.finest("aktStatus is NOT NULL: lastStep reached and no moreSteps - firstIndex=" + firstIndex + ", lastIndex=" + lastIndex); + } LOGGER.exiting(this.getClass().getCanonicalName(),"run", false); return false; } else if (aktStatus.isLastStep() && aktStatus.hasMoreSteps()) { @@ -236,7 +244,9 @@ public class SequenceChecker { } } } + if (LOGGER.isLoggable(Level.FINEST)) { LOGGER.finer("Completed search: firstIndex=" + firstIndex + ", lastIndex=" + lastIndex); + } LOGGER.exiting(this.getClass().getCanonicalName(),"run", this.firstIndex == this.lastIndex); return this.firstIndex == this.lastIndex; } diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/dfa/Structure.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/dfa/Structure.java index 9534bb913d..d266937415 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/dfa/Structure.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/dfa/Structure.java @@ -5,6 +5,7 @@ package net.sourceforge.pmd.lang.dfa; import java.util.ArrayList; import java.util.List; +import java.util.logging.Level; import java.util.logging.Logger; import java.util.Stack; @@ -69,16 +70,20 @@ public class Structure { || type == NodeType.CONTINUE_STATEMENT || type == NodeType.THROW_STATEMENT) { // ugly solution - stores the type information in two ways continueBreakReturnStack.push(obj); + if (LOGGER.isLoggable(Level.FINEST)) { LOGGER.finest("continueBreakReturnStack: line " + node.getNode().getBeginLine() + ", column " + node.getNode().getBeginColumn() +" - " + node.toString() ); + } } else { braceStack.push(obj); + if (LOGGER.isLoggable(Level.FINEST)) { LOGGER.finest("braceStack: line " + node.getNode().getBeginLine() + ", column " + node.getNode().getBeginColumn() +" - " + node.toString() ); + } } node.setType(type); } @@ -96,9 +101,9 @@ public class Structure { * @return formatted dump of the DFA Structure's */ public String dump() { - StringBuilder stringDump = new StringBuilder() ; - stringDump.append ("Data Flow Analysis Structure:\n"); - stringDump.append (" Edge Nodes (ContinueBraceReturn) :"); + StringBuilder stringDump = new StringBuilder(120) + .append ("Data Flow Analysis Structure:\n") + .append (" Edge Nodes (ContinueBraceReturn) :"); for (StackObject stackObject : continueBreakReturnStack ) { stringDump.append("\nCBR => ").append(stackObject.toString()); diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/dfa/report/ReportHTMLPrintVisitor.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/dfa/report/ReportHTMLPrintVisitor.java index 31f09426e5..12c1f7bddb 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/dfa/report/ReportHTMLPrintVisitor.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/dfa/report/ReportHTMLPrintVisitor.java @@ -26,9 +26,9 @@ import org.apache.commons.io.IOUtils; public class ReportHTMLPrintVisitor extends ReportVisitor { @SuppressWarnings("PMD.AvoidStringBufferField") - private StringBuilder packageBuf = new StringBuilder(); + private StringBuilder packageBuf = new StringBuilder(30); @SuppressWarnings("PMD.AvoidStringBufferField") - private StringBuilder classBuf = new StringBuilder(); + private StringBuilder classBuf = new StringBuilder(60); private int length; private String baseDir; diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/ImportWrapper.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/ImportWrapper.java index b5b953a691..e6f42841e4 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/ImportWrapper.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/ImportWrapper.java @@ -17,11 +17,15 @@ public class ImportWrapper { } public boolean equals(Object other) { - if (other == null) return false; - if (other == this) return true; + if (other == null) { + return false; + } + if (other == this) { + return true; + } if (other instanceof ImportWrapper) { ImportWrapper i = (ImportWrapper) other; - if(name == null && i.getName() == null){ + if (name == null && i.getName() == null) { return i.getFullName().equals(fullname); } return i.getName().equals(name); diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/ParametricRuleViolation.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/ParametricRuleViolation.java index 2987073f4a..5d2fc02faf 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/ParametricRuleViolation.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/ParametricRuleViolation.java @@ -71,7 +71,9 @@ public class ParametricRuleViolation implements RuleViolation { protected String expandVariables(String message) { - if (message.indexOf("${") < 0) return message; + if (message.indexOf("${") < 0) { + return message; + } StringBuilder buf = new StringBuilder(message); int startIndex = -1; diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/RuleReference.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/RuleReference.java index ca75024cfb..2138f75166 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/RuleReference.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/RuleReference.java @@ -301,7 +301,9 @@ public class RuleReference extends AbstractDelegateRule { // not sure if we should go all the way through to the real thing? getRule().useDefaultValueFor(desc); - if (propertyValues == null) return; + if (propertyValues == null) { + return; + } propertyValues.remove(desc); diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/AbstractNumericProperty.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/AbstractNumericProperty.java index 161eac8fc2..270791c9e8 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/AbstractNumericProperty.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/AbstractNumericProperty.java @@ -23,7 +23,7 @@ public abstract class AbstractNumericProperty extends AbstractScalarProperty< private Number lowerLimit; private Number upperLimit; - public static final Map numberFieldTypesByKey = BasicPropertyDescriptorFactory.expectedFieldTypesWith( + public static final Map NUMBER_FIELD_TYPES_BY_KEY = BasicPropertyDescriptorFactory.expectedFieldTypesWith( new String[] { MIN, MAX}, new Boolean[] { Boolean.TRUE, Boolean.TRUE} ); @@ -78,10 +78,10 @@ public abstract class AbstractNumericProperty extends AbstractScalarProperty< * @return String */ public String rangeString() { - StringBuilder sb = new StringBuilder(); - sb.append('(').append(lowerLimit); - sb.append(" -> ").append(upperLimit); - sb.append(')'); + StringBuilder sb = new StringBuilder() + .append('(').append(lowerLimit) + .append(" -> ").append(upperLimit) + .append(')'); return sb.toString(); } diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/AbstractPackagedProperty.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/AbstractPackagedProperty.java index 6dd28ee423..15cb14a1f2 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/AbstractPackagedProperty.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/AbstractPackagedProperty.java @@ -26,7 +26,7 @@ public abstract class AbstractPackagedProperty extends AbstractProperty { private static final char PACKAGE_NAME_DELIMITER = ' '; - protected static final Map packagedFieldTypesByKey = BasicPropertyDescriptorFactory.expectedFieldTypesWith( + protected static final Map PACKAGED_FIELD_TYPES_BY_KEY = BasicPropertyDescriptorFactory.expectedFieldTypesWith( new String[] { LEGAL_PACKAGES}, new Boolean[] { Boolean.FALSE} ); diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/DoubleMultiProperty.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/DoubleMultiProperty.java index 9ee159313c..1f66032590 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/DoubleMultiProperty.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/DoubleMultiProperty.java @@ -16,7 +16,7 @@ import net.sourceforge.pmd.lang.rule.properties.factories.BasicPropertyDescripto */ public class DoubleMultiProperty extends AbstractMultiNumericProperty { - public static final PropertyDescriptorFactory FACTORY = new BasicPropertyDescriptorFactory(Double[].class, numberFieldTypesByKey) { + public static final PropertyDescriptorFactory FACTORY = new BasicPropertyDescriptorFactory(Double[].class, NUMBER_FIELD_TYPES_BY_KEY) { public DoubleMultiProperty createWith(Map valuesById) { final String[] minMax = minMaxFrom(valuesById); diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/DoubleProperty.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/DoubleProperty.java index ffa2868903..dd1f9934c8 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/DoubleProperty.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/DoubleProperty.java @@ -16,7 +16,7 @@ import net.sourceforge.pmd.lang.rule.properties.factories.BasicPropertyDescripto */ public class DoubleProperty extends AbstractNumericProperty { - public static final PropertyDescriptorFactory FACTORY = new BasicPropertyDescriptorFactory(Double.class, numberFieldTypesByKey) { + public static final PropertyDescriptorFactory FACTORY = new BasicPropertyDescriptorFactory(Double.class, NUMBER_FIELD_TYPES_BY_KEY) { public DoubleProperty createWith(Map valuesById) { final String[] minMax = minMaxFrom(valuesById); diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/FloatMultiProperty.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/FloatMultiProperty.java index 55458bca3d..de82ccc31e 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/FloatMultiProperty.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/FloatMultiProperty.java @@ -15,7 +15,7 @@ import net.sourceforge.pmd.lang.rule.properties.factories.BasicPropertyDescripto */ public class FloatMultiProperty extends AbstractMultiNumericProperty { - public static final PropertyDescriptorFactory FACTORY = new BasicPropertyDescriptorFactory(Float[].class, numberFieldTypesByKey) { + public static final PropertyDescriptorFactory FACTORY = new BasicPropertyDescriptorFactory(Float[].class, NUMBER_FIELD_TYPES_BY_KEY) { public FloatMultiProperty createWith(Map valuesById) { final String[] minMax = minMaxFrom(valuesById); diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/FloatProperty.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/FloatProperty.java index c71b5dbb1d..30298d9787 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/FloatProperty.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/FloatProperty.java @@ -15,7 +15,7 @@ import net.sourceforge.pmd.lang.rule.properties.factories.BasicPropertyDescripto */ public class FloatProperty extends AbstractNumericProperty { - public static final PropertyDescriptorFactory FACTORY = new BasicPropertyDescriptorFactory(float.class, numberFieldTypesByKey) { + public static final PropertyDescriptorFactory FACTORY = new BasicPropertyDescriptorFactory(float.class, NUMBER_FIELD_TYPES_BY_KEY) { public FloatProperty createWith(Map valuesById) { final String[] minMax = minMaxFrom(valuesById); diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/IntegerMultiProperty.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/IntegerMultiProperty.java index e6a3e38f47..c26463b290 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/IntegerMultiProperty.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/IntegerMultiProperty.java @@ -15,7 +15,7 @@ import net.sourceforge.pmd.lang.rule.properties.factories.BasicPropertyDescripto */ public class IntegerMultiProperty extends AbstractMultiNumericProperty { - public static final PropertyDescriptorFactory FACTORY = new BasicPropertyDescriptorFactory(Integer[].class, numberFieldTypesByKey) { + public static final PropertyDescriptorFactory FACTORY = new BasicPropertyDescriptorFactory(Integer[].class, NUMBER_FIELD_TYPES_BY_KEY) { public IntegerMultiProperty createWith(Map valuesById) { final String[] minMax = minMaxFrom(valuesById); diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/IntegerProperty.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/IntegerProperty.java index 9d47204067..c0e6bf1c91 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/IntegerProperty.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/IntegerProperty.java @@ -15,7 +15,7 @@ import net.sourceforge.pmd.lang.rule.properties.factories.BasicPropertyDescripto */ public class IntegerProperty extends AbstractNumericProperty { - public static final PropertyDescriptorFactory FACTORY = new BasicPropertyDescriptorFactory(Integer.class, numberFieldTypesByKey) { + public static final PropertyDescriptorFactory FACTORY = new BasicPropertyDescriptorFactory(Integer.class, NUMBER_FIELD_TYPES_BY_KEY) { public IntegerProperty createWith(Map valuesById) { final String[] minMax = minMaxFrom(valuesById); diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/LongMultiProperty.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/LongMultiProperty.java index ae17f80b05..003ffde1b0 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/LongMultiProperty.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/LongMultiProperty.java @@ -15,7 +15,7 @@ import net.sourceforge.pmd.lang.rule.properties.factories.BasicPropertyDescripto */ public class LongMultiProperty extends AbstractMultiNumericProperty { - public static final PropertyDescriptorFactory FACTORY = new BasicPropertyDescriptorFactory(Long[].class, numberFieldTypesByKey) { + public static final PropertyDescriptorFactory FACTORY = new BasicPropertyDescriptorFactory(Long[].class, NUMBER_FIELD_TYPES_BY_KEY) { public LongMultiProperty createWith(Map valuesById) { final String[] minMax = minMaxFrom(valuesById); diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/LongProperty.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/LongProperty.java index 2cdc98c07a..c02c3aa04b 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/LongProperty.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/LongProperty.java @@ -15,7 +15,7 @@ import net.sourceforge.pmd.lang.rule.properties.factories.BasicPropertyDescripto */ public class LongProperty extends AbstractNumericProperty { - public static final PropertyDescriptorFactory FACTORY = new BasicPropertyDescriptorFactory(Long.class, numberFieldTypesByKey) { + public static final PropertyDescriptorFactory FACTORY = new BasicPropertyDescriptorFactory(Long.class, NUMBER_FIELD_TYPES_BY_KEY) { public LongProperty createWith(Map valuesById) { final String[] minMax = minMaxFrom(valuesById); diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/MethodMultiProperty.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/MethodMultiProperty.java index bff946d919..c86bec4f5c 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/MethodMultiProperty.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/MethodMultiProperty.java @@ -21,7 +21,7 @@ import net.sourceforge.pmd.util.StringUtil; */ public class MethodMultiProperty extends AbstractMultiPackagedProperty { - public static final PropertyDescriptorFactory FACTORY = new BasicPropertyDescriptorFactory(Method[].class, packagedFieldTypesByKey) { + public static final PropertyDescriptorFactory FACTORY = new BasicPropertyDescriptorFactory(Method[].class, PACKAGED_FIELD_TYPES_BY_KEY) { public MethodMultiProperty createWith(Map valuesById) { return new MethodMultiProperty( diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/MethodProperty.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/MethodProperty.java index e9ec28765f..b4c458af02 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/MethodProperty.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/MethodProperty.java @@ -30,7 +30,7 @@ public class MethodProperty extends AbstractPackagedProperty { private static final String ARRAY_FLAG = "[]"; private static final Map, String> TYPE_SHORTCUTS = ClassUtil.getClassShortNames(); - public static final PropertyDescriptorFactory FACTORY = new BasicPropertyDescriptorFactory(Method.class, packagedFieldTypesByKey) { + public static final PropertyDescriptorFactory FACTORY = new BasicPropertyDescriptorFactory(Method.class, PACKAGED_FIELD_TYPES_BY_KEY) { public MethodProperty createWith(Map valuesById) { return new MethodProperty( diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/TypeMultiProperty.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/TypeMultiProperty.java index ca1f4ae03b..a42e9ba2f0 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/TypeMultiProperty.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/TypeMultiProperty.java @@ -19,7 +19,7 @@ import net.sourceforge.pmd.util.StringUtil; public class TypeMultiProperty extends AbstractMultiPackagedProperty { - public static final PropertyDescriptorFactory FACTORY = new BasicPropertyDescriptorFactory(Class[].class, packagedFieldTypesByKey) { + public static final PropertyDescriptorFactory FACTORY = new BasicPropertyDescriptorFactory(Class[].class, PACKAGED_FIELD_TYPES_BY_KEY) { public TypeMultiProperty createWith(Map valuesById) { return new TypeMultiProperty( diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/TypeProperty.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/TypeProperty.java index 372456ba6a..0de0dd8f81 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/TypeProperty.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/TypeProperty.java @@ -18,7 +18,7 @@ import net.sourceforge.pmd.util.ClassUtil; */ public class TypeProperty extends AbstractPackagedProperty { - public static final PropertyDescriptorFactory FACTORY = new BasicPropertyDescriptorFactory(Class.class, packagedFieldTypesByKey) { + public static final PropertyDescriptorFactory FACTORY = new BasicPropertyDescriptorFactory(Class.class, PACKAGED_FIELD_TYPES_BY_KEY) { public TypeProperty createWith(Map valuesById) { return new TypeProperty( diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/factories/BasicPropertyDescriptorFactory.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/factories/BasicPropertyDescriptorFactory.java index 747adb88d5..4fbda3e158 100755 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/factories/BasicPropertyDescriptorFactory.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/properties/factories/BasicPropertyDescriptorFactory.java @@ -33,14 +33,14 @@ public class BasicPropertyDescriptorFactory implements PropertyDescriptorFact private final Class valueType; private final Map fieldTypesByKey; - protected static final Map coreFieldTypesByKey = CollectionUtil.mapFrom( + protected static final Map CORE_FIELD_TYPES_BY_KEY = CollectionUtil.mapFrom( new String[] { NAME, DESC, DEFAULT_VALUE}, new Boolean[] { Boolean.TRUE, Boolean.TRUE, Boolean.TRUE} ); public BasicPropertyDescriptorFactory(Class theValueType) { valueType = theValueType; - fieldTypesByKey = Collections.unmodifiableMap(coreFieldTypesByKey); + fieldTypesByKey = Collections.unmodifiableMap(CORE_FIELD_TYPES_BY_KEY); } // public interface WrapperBuilder { @@ -56,8 +56,8 @@ public class BasicPropertyDescriptorFactory implements PropertyDescriptorFact public BasicPropertyDescriptorFactory(Class theValueType, Map additionalFieldTypesByKey) { valueType = theValueType; - Map temp = new HashMap(coreFieldTypesByKey.size() + additionalFieldTypesByKey.size()); - temp.putAll(coreFieldTypesByKey); + Map temp = new HashMap(CORE_FIELD_TYPES_BY_KEY.size() + additionalFieldTypesByKey.size()); + temp.putAll(CORE_FIELD_TYPES_BY_KEY); temp.putAll(additionalFieldTypesByKey); fieldTypesByKey = Collections.unmodifiableMap(temp); @@ -210,8 +210,8 @@ public class BasicPropertyDescriptorFactory implements PropertyDescriptorFact } public static Map expectedFieldTypesWith(String[] otherKeys, Boolean[] otherValues) { - Map largerMap = new HashMap(otherKeys.length + coreFieldTypesByKey.size()); - largerMap.putAll(coreFieldTypesByKey); + Map largerMap = new HashMap(otherKeys.length + CORE_FIELD_TYPES_BY_KEY.size()); + largerMap.putAll(CORE_FIELD_TYPES_BY_KEY); for (int i=0; i> ComparatorByOrder = new Comparator>() { + public static final Comparator> COMPARATOR_BY_ORDER = new Comparator>() { public int compare(PropertyDescriptor pd1, PropertyDescriptor pd2) { return pd2.uiOrder() > pd1.uiOrder() ? -1 : 1; } }; - private static final Map descriptorFactoriesByType; + private static final Map DESCRIPTOR_FACTORIES_BY_TYPE; static { Map temp = new HashMap(18); @@ -72,17 +72,17 @@ public class PropertyDescriptorUtil { temp.put("File", FileProperty.FACTORY); - descriptorFactoriesByType = Collections.unmodifiableMap(temp); + DESCRIPTOR_FACTORIES_BY_TYPE = Collections.unmodifiableMap(temp); } public static PropertyDescriptorFactory factoryFor(String typeId) { - return descriptorFactoriesByType.get(typeId); + return DESCRIPTOR_FACTORIES_BY_TYPE.get(typeId); } public static String typeIdFor(Class valueType) { // a reverse lookup, not very efficient but fine for now - for (Map.Entry entry : descriptorFactoriesByType.entrySet()) { + for (Map.Entry entry : DESCRIPTOR_FACTORIES_BY_TYPE.entrySet()) { if (entry.getValue().valueType() == valueType) { return entry.getKey(); } diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/xpath/JaxenXPathRuleQuery.java b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/xpath/JaxenXPathRuleQuery.java index 22315cf9e8..8025fa94ca 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/xpath/JaxenXPathRuleQuery.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/lang/rule/xpath/JaxenXPathRuleQuery.java @@ -101,9 +101,11 @@ public class JaxenXPathRuleQuery extends AbstractXPathRuleQuery { if (initializationStatus == InitializationStatus.FULL) { return; } else if (initializationStatus == InitializationStatus.PARTIAL && navigator == null) { + if (LOG.isLoggable(Level.SEVERE)) { LOG.severe("XPathRule is not initialized because no navigator was provided. " + "Please make sure to implement getXPathHandler in the handler of the language. " + "See also AbstractLanguageVersionHandler."); + } return; } diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/processor/MonoThreadProcessor.java b/pmd-core/src/main/java/net/sourceforge/pmd/processor/MonoThreadProcessor.java index 24581b6dc2..c71fc8e620 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/processor/MonoThreadProcessor.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/processor/MonoThreadProcessor.java @@ -60,7 +60,9 @@ public final class MonoThreadProcessor extends AbstractPMDProcessor { ctx.setLanguageVersion(null); processor.processSourceCode(stream, rs, ctx); } catch (PMDException pmde) { - LOG.log(Level.FINE, "Error while processing file: "+niceFileName, pmde.getCause()); + if (LOG.isLoggable(Level.FINE)) { + LOG.log(Level.FINE, "Error while processing file: "+niceFileName, pmde.getCause()); + } report.addError(new Report.ProcessingError(pmde.getMessage(), niceFileName)); } catch (IOException ioe) { diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/processor/PmdRunnable.java b/pmd-core/src/main/java/net/sourceforge/pmd/processor/PmdRunnable.java index 0c83a62428..6e898d6495 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/processor/PmdRunnable.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/processor/PmdRunnable.java @@ -77,7 +77,9 @@ public class PmdRunnable extends PMD implements Callable { ctx.setLanguageVersion(null); this.getSourceCodeProcessor().processSourceCode(stream, rs, ctx); } catch (PMDException pmde) { + if (LOG.isLoggable(Level.FINE)) { LOG.log(Level.FINE, "Error while processing file: "+fileName, pmde.getCause()); + } addError(report, pmde, fileName); } catch (IOException ioe) { addErrorAndShutdown(report, ioe, "IOException during processing of "+ fileName ); diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/renderers/CSVRenderer.java b/pmd-core/src/main/java/net/sourceforge/pmd/renderers/CSVRenderer.java index c8f0ca0bf2..eea547f9bb 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/renderers/CSVRenderer.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/renderers/CSVRenderer.java @@ -29,14 +29,14 @@ public class CSVRenderer extends AbstractIncrementingRenderer { private CSVWriter csvWriter; - private static final String DefaultSeparator = ","; + private static final String DEFAULT_SEPARATOR = ","; - private static final Map propertyDescriptorsById = new HashMap(); + private static final Map PROPERTY_DESCRIPTORS_BY_ID = new HashMap(); public static final String NAME = "csv"; @SuppressWarnings("unchecked") - private static final ColumnDescriptor[] AllColumns = new ColumnDescriptor[] { + private static final ColumnDescriptor[] ALL_COLUMNS = new ColumnDescriptor[] { new ColumnDescriptor("problem", "Problem", new Accessor() { public String get(int idx, RuleViolation rv, String cr) { return Integer.toString(idx); }} ), new ColumnDescriptor("package", "Package", new Accessor() { public String get(int idx, RuleViolation rv, String cr) { return rv.getPackageName(); }} ), new ColumnDescriptor("file", "File", new Accessor() { public String get(int idx, RuleViolation rv, String cr) { return rv.getFilename(); }} ), @@ -50,11 +50,13 @@ public class CSVRenderer extends AbstractIncrementingRenderer { private static BooleanProperty booleanPropertyFor(String id, String label) { - BooleanProperty prop = propertyDescriptorsById.get(id); - if (prop != null) return prop; + BooleanProperty prop = PROPERTY_DESCRIPTORS_BY_ID.get(id); + if (prop != null) { + return prop; + } prop = new BooleanProperty(id, "Include " + label + " column", true, 1.0f); - propertyDescriptorsById.put(id, prop); + PROPERTY_DESCRIPTORS_BY_ID.put(id, prop); return prop; } @@ -73,7 +75,7 @@ public class CSVRenderer extends AbstractIncrementingRenderer { List> actives = new ArrayList>(); - for (ColumnDescriptor desc : AllColumns) { + for (ColumnDescriptor desc : ALL_COLUMNS) { BooleanProperty prop = booleanPropertyFor(desc.id, null); if (getProperty(prop)) { actives.add(desc); @@ -85,14 +87,16 @@ public class CSVRenderer extends AbstractIncrementingRenderer { } private CSVWriter csvWriter() { - if (csvWriter != null) return csvWriter; + if (csvWriter != null) { + return csvWriter; + } csvWriter = new CSVWriter(activeColumns(), separator, cr); return csvWriter; } public CSVRenderer() { - this( AllColumns, DefaultSeparator, PMD.EOL); + this( ALL_COLUMNS, DEFAULT_SEPARATOR, PMD.EOL); } /** diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/renderers/CSVWriter.java b/pmd-core/src/main/java/net/sourceforge/pmd/renderers/CSVWriter.java index 0bb6020ec8..0a0b643429 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/renderers/CSVWriter.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/renderers/CSVWriter.java @@ -64,7 +64,9 @@ public class CSVWriter { } private void quote(StringBuilder buffer, String s) { - if (s == null) return; + if (s == null) { + return; + } buffer.append('"').append(s).append('"'); } diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/renderers/HTMLRenderer.java b/pmd-core/src/main/java/net/sourceforge/pmd/renderers/HTMLRenderer.java index 900bcb4f01..703eb57a92 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/renderers/HTMLRenderer.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/renderers/HTMLRenderer.java @@ -137,7 +137,9 @@ public class HTMLRenderer extends AbstractIncrementingRenderer { private void glomProcessingErrors(Writer writer, List errors) throws IOException { - if (errors.isEmpty()) return; + if (errors.isEmpty()) { + return; + } writer.write("
"); writer.write("

Processing errors

"); @@ -163,7 +165,9 @@ public class HTMLRenderer extends AbstractIncrementingRenderer { } private void glomSuppressions(Writer writer, List suppressed) throws IOException { - if (suppressed.isEmpty()) return; + if (suppressed.isEmpty()) { + return; + } writer.write("
"); writer.write("

Suppressed warnings

"); diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/renderers/RendererFactory.java b/pmd-core/src/main/java/net/sourceforge/pmd/renderers/RendererFactory.java index 6e63795348..132c0051b9 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/renderers/RendererFactory.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/renderers/RendererFactory.java @@ -10,6 +10,7 @@ import java.util.Collections; import java.util.Map; import java.util.Properties; import java.util.TreeMap; +import java.util.logging.Level; import java.util.logging.Logger; import net.sourceforge.pmd.PropertyDescriptor; @@ -78,9 +79,11 @@ public class RendererFactory { } // Warn about legacy report format usages if (REPORT_FORMAT_TO_RENDERER.containsKey(reportFormat) && !reportFormat.equals(renderer.getName())) { + if (LOG.isLoggable(Level.WARNING)) { LOG.warning("Report format '" + reportFormat + "' is deprecated, and has been replaced with '" + renderer.getName() + "'. Future versions of PMD will remove support for this deprecated Report format usage."); + } } return renderer; } diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/renderers/SummaryHTMLRenderer.java b/pmd-core/src/main/java/net/sourceforge/pmd/renderers/SummaryHTMLRenderer.java index 86b6ba3950..79969c0309 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/renderers/SummaryHTMLRenderer.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/renderers/SummaryHTMLRenderer.java @@ -51,20 +51,20 @@ public class SummaryHTMLRenderer extends AbstractAccumulatingRenderer { * @throws IOException */ public void renderSummary() throws IOException { - StringBuilder buf = new StringBuilder(500); - buf.append("

Summary

"); - buf.append(""); - buf.append(""); - buf.append(""); + StringBuilder buf = new StringBuilder(500) + .append("

Summary

") + .append("
Rule nameNumber of violations
") + .append("") + .append(""); writer.write(buf.toString()); Map summary = report.getSummary(); for (Map.Entry entry : summary.entrySet()) { String ruleName = entry.getKey(); buf.setLength(0); - buf.append(""); - buf.append(""); - buf.append(""); - buf.append(""); + buf.append("") + .append("") + .append("") + .append(""); writer.write(buf.toString()); } writer.write("
Rule nameNumber of violations
" + ruleName + "" + entry.getValue().intValue() + "
").append(ruleName).append("").append(entry.getValue().intValue()).append("
"); diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/renderers/VBHTMLRenderer.java b/pmd-core/src/main/java/net/sourceforge/pmd/renderers/VBHTMLRenderer.java index b8b94fb957..510df6a039 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/renderers/VBHTMLRenderer.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/renderers/VBHTMLRenderer.java @@ -115,22 +115,22 @@ public class VBHTMLRenderer extends AbstractIncrementingRenderer { } private String header() { - StringBuilder sb = new StringBuilder(600); - sb.append("PMD"); - sb.append(""); - sb.append("
"); + StringBuilder sb = new StringBuilder(600) + .append("PMD") + .append("") + .append("
"); return sb.toString(); } diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/util/ClasspathClassLoader.java b/pmd-core/src/main/java/net/sourceforge/pmd/util/ClasspathClassLoader.java index c955c5aebb..8f603122ab 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/util/ClasspathClassLoader.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/util/ClasspathClassLoader.java @@ -87,10 +87,10 @@ public class ClasspathClassLoader extends URLClassLoader { public String toString() { StringBuilder sb = new StringBuilder(getClass().getSimpleName()); sb.append("[["); - StringUtil.asStringOn(sb, getURLs(), ":"); - sb.append("] parent: "); - sb.append(getParent()); - sb.append(']'); + StringUtil.asStringOn(sb, getURLs(), ":"); + sb.append("] parent: ") + .append(getParent()) + .append(']'); return sb.toString(); } diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/util/CollectionUtil.java b/pmd-core/src/main/java/net/sourceforge/pmd/util/CollectionUtil.java index 189a5fd4ee..38082bd9e0 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/util/CollectionUtil.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/util/CollectionUtil.java @@ -48,7 +48,9 @@ public final class CollectionUtil { int added = 0; for (String item : source) { - if (target.contains(item)) continue; + if (target.contains(item)) { + continue; + } target.add(item); added++; } @@ -253,10 +255,14 @@ public final class CollectionUtil { if (a == null) { return isEmpty(b); } if (b == null) { return isEmpty(a); } - if (a.length != b.length) return false; + if (a.length != b.length) { + return false; + } for (int i=0; i */ -public class EmptyIterator implements Iterator { +public final class EmptyIterator implements Iterator { @SuppressWarnings("rawtypes") - public static final Iterator instance = new EmptyIterator(); + public static final Iterator INSTANCE = new EmptyIterator(); @SuppressWarnings("unchecked") public static final Iterator instance() { - return instance; + return INSTANCE; } private EmptyIterator() {} diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/util/FileIterable.java b/pmd-core/src/main/java/net/sourceforge/pmd/util/FileIterable.java index 28cb576c32..60c8c52902 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/util/FileIterable.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/util/FileIterable.java @@ -34,12 +34,14 @@ public class FileIterable implements Iterable { protected void finalize() throws Throwable { try { - if (lineReader!= null) + if (lineReader!= null) { lineReader.close(); + } } catch (IOException e) { throw new IllegalStateException(e); } + super.finalize(); } public Iterator iterator() { diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/util/FileUtil.java b/pmd-core/src/main/java/net/sourceforge/pmd/util/FileUtil.java index 2f33230a70..c9cbc7844b 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/util/FileUtil.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/util/FileUtil.java @@ -121,8 +121,9 @@ public final class FileUtil { FileIterable it = new FileIterable(file); for ( String line : it ){ matcher.reset( line ); //reset the input - if ( matcher.find() ) + if ( matcher.find() ) { return true; + } } return false; } diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/util/IOUtil.java b/pmd-core/src/main/java/net/sourceforge/pmd/util/IOUtil.java index 17eb9aa682..37f6cb2705 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/util/IOUtil.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/util/IOUtil.java @@ -11,13 +11,11 @@ import java.io.OutputStreamWriter; import java.io.Reader; import java.io.Writer; -import net.sourceforge.pmd.lang.ast.ParseException; - /** * * @author Brian Remedios */ -public class IOUtil { +public final class IOUtil { private IOUtil() { } diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/util/StringUtil.java b/pmd-core/src/main/java/net/sourceforge/pmd/util/StringUtil.java index ab0c2cacef..96b83c4094 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/util/StringUtil.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/util/StringUtil.java @@ -46,7 +46,9 @@ public final class StringUtil { public static boolean isAnyOf(String text, String... tests) { for (String test : tests) { - if (text.equals(test)) return true; + if (text.equals(test)) { + return true; + } } return false; diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/util/database/DBMSMetadata.java b/pmd-core/src/main/java/net/sourceforge/pmd/util/database/DBMSMetadata.java index 9771f4a8f9..774d2170b5 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/util/database/DBMSMetadata.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/util/database/DBMSMetadata.java @@ -126,7 +126,9 @@ public class DBMSMetadata mergedProperties.put("password", password) ; connection = DriverManager.getConnection(urlString, mergedProperties ); - LOGGER.fine("we have a connection="+connection); + if (LOGGER.isLoggable(Level.FINE)) { + LOGGER.fine("we have a connection="+connection); + } } @@ -148,9 +150,13 @@ public class DBMSMetadata mergedProperties.putAll(dbURIParameters) ; mergedProperties.putAll(properties) ; - LOGGER.fine("Retrieving connection for urlString"+urlString); + if (LOGGER.isLoggable(Level.FINE)) { + LOGGER.fine("Retrieving connection for urlString"+urlString); + } connection = DriverManager.getConnection(urlString ,mergedProperties); - LOGGER.fine("Secured Connection for DBURI"+dbURI); + if (LOGGER.isLoggable(Level.FINE)) { + LOGGER.fine("Secured Connection for DBURI"+dbURI); + } } /** @@ -186,13 +192,19 @@ public class DBMSMetadata this.returnSourceCodeObjectsStatement = dbURI.getDbType().getProperties().getProperty(GET_SOURCE_OBJECTS_STATEMENT); this.returnSourceCodeStatement = dbURI.getDbType().getProperties().getProperty(GET_SOURCE_CODE_STATEMENT); this.returnType = dbURI.getSourceCodeType(); - LOGGER.fine("returnSourceCodeStatement="+returnSourceCodeStatement +", returnType="+returnType); + if (LOGGER.isLoggable(Level.FINE)) { + LOGGER.fine("returnSourceCodeStatement="+returnSourceCodeStatement +", returnType="+returnType); + } String driverClass = dbURI.getDriverClass(); String urlString = dbURI.getURL().toString(); - LOGGER.fine("driverClass="+driverClass+", urlString="+urlString); + if (LOGGER.isLoggable(Level.FINE)) { + LOGGER.fine("driverClass="+driverClass+", urlString="+urlString); + } Class.forName(driverClass); - LOGGER.fine("Located class for driverClass="+driverClass); + if (LOGGER.isLoggable(Level.FINE)) { + LOGGER.fine("Located class for driverClass="+driverClass); + } return urlString; } @@ -232,8 +244,10 @@ public class DBMSMetadata /* Only define callableStatement once and reuse it for subsequent calls to getSourceCode()*/ if (null == callableStatement) { + if (LOGGER.isLoggable(Level.FINEST)) { LOGGER.finest("getSourceCode: returnSourceCodeStatement=\""+returnSourceCodeStatement+"\""); LOGGER.finest("getSourceCode: returnType=\""+returnType+"\""); + } callableStatement = getConnection().prepareCall(returnSourceCodeStatement); callableStatement.registerOutParameter(1, returnType); } diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/util/database/DBType.java b/pmd-core/src/main/java/net/sourceforge/pmd/util/database/DBType.java index 594e9e9428..b521ac4b3c 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/util/database/DBType.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/util/database/DBType.java @@ -42,10 +42,19 @@ public class DBType RETURN_TYPE("returnType", "int equivalent of java.sql.Types return type of getSourceCodeStatement"); private String name; + private String description; private property(String name, String description) { - this.name = name; + this.name = name; + this.description = description; + } + + public String getPropertyName() { + return name; + } + public String getDescription() { + return description; } } @@ -93,7 +102,9 @@ public class DBType public DBType(String subProtocol, String subnamePrefix) throws IOException { - LOGGER.fine("subProtocol="+subProtocol+", subnamePrefix="+subnamePrefix); + if (LOGGER.isLoggable(Level.FINE)) { + LOGGER.fine("subProtocol="+subProtocol+", subnamePrefix="+subnamePrefix); + } if (null == subProtocol && null == subnamePrefix) { @@ -109,11 +120,11 @@ public class DBType && null != (properties = loadDBProperties(subnamePrefix)) ) { - LOGGER.log(Level.FINE, "DBType found using subnamePrefix={0}", subnamePrefix); + LOGGER.log(Level.FINE, "DBType found using subnamePrefix={0}", subnamePrefix); } else if (null != (properties = loadDBProperties(subProtocol) ) ) { - LOGGER.log(Level.FINE, "DBType found using subProtocol={0}", subProtocol); + LOGGER.log(Level.FINE, "DBType found using subProtocol={0}", subProtocol); } else { @@ -146,7 +157,9 @@ public class DBType //Locale locale = Control.g; ResourceBundle resourceBundle = null; - LOGGER.finest("class_path+"+System.getProperty("java.class.path")); + if (LOGGER.isLoggable(Level.FINEST)) { + LOGGER.finest("class_path+"+System.getProperty("java.class.path")); + } /* * Attempt to match properties files in this order:- @@ -158,28 +171,36 @@ public class DBType */ try { File propertiesFile = new File(matchString); - LOGGER.finest("Attempting File no file suffix: " + matchString); + if (LOGGER.isLoggable(Level.FINEST)) { + LOGGER.finest("Attempting File no file suffix: " + matchString); + } resourceBundle = new PropertyResourceBundle(new FileInputStream(propertiesFile)); propertiesSource = propertiesFile.getAbsolutePath(); LOGGER.finest("FileSystemWithoutExtension"); } catch (FileNotFoundException notFoundOnFilesystemWithoutExtension) { - LOGGER.finest("notFoundOnFilesystemWithoutExtension"); - LOGGER.finest("Attempting File with added file suffix: " - + matchString + ".properties"); + if (LOGGER.isLoggable(Level.FINEST)) { + LOGGER.finest("notFoundOnFilesystemWithoutExtension"); + LOGGER.finest("Attempting File with added file suffix: " + + matchString + ".properties"); + } try { File propertiesFile = new File(matchString + ".properties"); resourceBundle = new PropertyResourceBundle(new FileInputStream(propertiesFile)); propertiesSource = propertiesFile.getAbsolutePath(); LOGGER.finest("FileSystemWithExtension"); } catch (FileNotFoundException notFoundOnFilesystemWithExtensionTackedOn) { - LOGGER.finest("Attempting JARWithoutClassPrefix: " + matchString); + if (LOGGER.isLoggable(Level.FINEST)) { + LOGGER.finest("Attempting JARWithoutClassPrefix: " + matchString); + } try { resourceBundle = ResourceBundle.getBundle(matchString); propertiesSource = "[" + INTERNAL_SETTINGS + "]" + File.separator + matchString + ".properties"; LOGGER.finest("InJarWithoutPath"); } catch (Exception notInJarWithoutPath) { - LOGGER.finest("Attempting JARWithClass prefix: " + DBType.CLASS_NAME + "." + matchString); + if (LOGGER.isLoggable(Level.FINEST)) { + LOGGER.finest("Attempting JARWithClass prefix: " + DBType.CLASS_NAME + "." + matchString); + } try { resourceBundle = ResourceBundle.getBundle(DBType.CLASS_NAME + "." + matchString); propertiesSource = "[" + INTERNAL_SETTINGS + "]" + File.separator @@ -247,21 +268,65 @@ public class DBType return properties; } - public boolean equals(DBType other) - { - - return - this.getPropertiesSource().equals(other.getPropertiesSource()) && - this.getProperties().equals(other.getProperties()) && - this.getDriverClass().equals(other.getDriverClass()) && - this.getCharacterSet().equals(other.getCharacterSet()) && - this.getSourceCodeTypes().equals(other.getSourceCodeTypes()) && - this.getLanguages().equals(other.getLanguages()) && - this.getSourceCodeReturnType() == other.getSourceCodeReturnType() - ; + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((characterSet == null) ? 0 : characterSet.hashCode()); + result = prime * result + ((driverClass == null) ? 0 : driverClass.hashCode()); + result = prime * result + ((languages == null) ? 0 : languages.hashCode()); + result = prime * result + ((properties == null) ? 0 : properties.hashCode()); + result = prime * result + ((propertiesSource == null) ? 0 : propertiesSource.hashCode()); + result = prime * result + sourceCodeReturnType; + result = prime * result + ((sourceCodeTypes == null) ? 0 : sourceCodeTypes.hashCode()); + return result; } - /** + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + DBType other = (DBType) obj; + if (characterSet == null) { + if (other.characterSet != null) + return false; + } else if (!characterSet.equals(other.characterSet)) + return false; + if (driverClass == null) { + if (other.driverClass != null) + return false; + } else if (!driverClass.equals(other.driverClass)) + return false; + if (languages == null) { + if (other.languages != null) + return false; + } else if (!languages.equals(other.languages)) + return false; + if (properties == null) { + if (other.properties != null) + return false; + } else if (!properties.equals(other.properties)) + return false; + if (propertiesSource == null) { + if (other.propertiesSource != null) + return false; + } else if (!propertiesSource.equals(other.propertiesSource)) + return false; + if (sourceCodeReturnType != other.sourceCodeReturnType) + return false; + if (sourceCodeTypes == null) { + if (other.sourceCodeTypes != null) + return false; + } else if (!sourceCodeTypes.equals(other.sourceCodeTypes)) + return false; + return true; + } + +/** * @return the driverClass */ public String getDriverClass() { diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/util/database/ResourceResolver.java b/pmd-core/src/main/java/net/sourceforge/pmd/util/database/ResourceResolver.java index 496155a146..4f4950ade9 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/util/database/ResourceResolver.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/util/database/ResourceResolver.java @@ -14,9 +14,10 @@ public class ResourceResolver implements URIResolver public Source resolve(String href, String base) throws TransformerException { - if(null==href || href.length() == 0 ) + if(null==href || href.length() == 0 ) { return null; // will make Oracle XSLT processor explode, - // even though it's correct + // even though it's correct + } try { String resource = href; ResourceLoader loader = new ResourceLoader(); diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/util/database/SourceObject.java b/pmd-core/src/main/java/net/sourceforge/pmd/util/database/SourceObject.java index ab89f5d7b0..2077d43ccb 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/util/database/SourceObject.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/util/database/SourceObject.java @@ -121,26 +121,27 @@ public class SourceObject { public String getSuffixFromType() { LOG.entering(CLASS_NAME, "getSuffixFromType", this);//.entering("type="+type.toUpperCase()); - if (null == type || type.isEmpty()) + if (null == type || type.isEmpty()) { return ""; - else if (type.toUpperCase().indexOf("JAVA") >= 0) + } else if (type.toUpperCase().indexOf("JAVA") >= 0) { return ".java"; - else if (type.toUpperCase().indexOf("TRIGGER") >= 0) + } else if (type.toUpperCase().indexOf("TRIGGER") >= 0) { return ".trg"; - else if (type.toUpperCase().indexOf("FUNCTION") >= 0) + } else if (type.toUpperCase().indexOf("FUNCTION") >= 0) { return ".fnc"; - else if (type.toUpperCase().indexOf("PROCEDURE") >= 0) + } else if (type.toUpperCase().indexOf("PROCEDURE") >= 0) { return ".prc"; - else if (type.toUpperCase().indexOf("PACKAGE_BODY") >= 0) + } else if (type.toUpperCase().indexOf("PACKAGE_BODY") >= 0) { return ".pkb"; - else if (type.toUpperCase().indexOf("PACKAGE") >= 0) + } else if (type.toUpperCase().indexOf("PACKAGE") >= 0) { return ".pks"; - else if (type.toUpperCase().indexOf("TYPE_BODY") >= 0) + } else if (type.toUpperCase().indexOf("TYPE_BODY") >= 0) { return ".tpb"; - else if (type.toUpperCase().indexOf("TYPE") >= 0) + } else if (type.toUpperCase().indexOf("TYPE") >= 0) { return ".tps"; - else + } else { return ""; + } } /** diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/util/viewer/model/ViewerModel.java b/pmd-core/src/main/java/net/sourceforge/pmd/util/viewer/model/ViewerModel.java index a5117f3a87..f9792e8561 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/util/viewer/model/ViewerModel.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/util/viewer/model/ViewerModel.java @@ -6,6 +6,7 @@ package net.sourceforge.pmd.util.viewer.model; import java.io.StringReader; import java.util.ArrayList; import java.util.List; +import java.util.logging.Level; import java.util.logging.Logger; import net.sourceforge.pmd.lang.LanguageVersion; @@ -63,11 +64,15 @@ public class ViewerModel { public void evaluateXPathExpression(String xPath, Object evaluator) throws ParseException, JaxenException { try { - LOGGER.finest("xPath="+xPath); - LOGGER.finest("evaluator="+evaluator); + if (LOGGER.isLoggable(Level.FINEST)) { + LOGGER.finest("xPath="+xPath); + LOGGER.finest("evaluator="+evaluator); + } XPath xpath = new BaseXPath(xPath, new DocumentNavigator()); - LOGGER.finest("xpath="+xpath); - LOGGER.finest("rootNode="+rootNode); + if (LOGGER.isLoggable(Level.FINEST)) { + LOGGER.finest("xpath="+xpath); + LOGGER.finest("rootNode="+rootNode); + } try { evaluationResults = xpath.selectNodes(rootNode); @@ -77,7 +82,9 @@ public class ViewerModel { LOGGER.finest("selectNodes problem:"); e.printStackTrace(System.err); } - LOGGER.finest("evaluationResults="+evaluationResults); + if (LOGGER.isLoggable(Level.FINEST)) { + LOGGER.finest("evaluationResults="+evaluationResults); + } fireViewerModelEvent(new ViewerModelEvent(evaluator, ViewerModelEvent.PATH_EXPRESSION_EVALUATED)); } catch (JaxenException je)