Browse Source

Checkstyle and simplify, next iteration

master
Gintas Grigelionis 7 years ago
parent
commit
dccbf1fcec
59 changed files with 325 additions and 443 deletions
  1. +6
    -10
      src/main/org/apache/tools/ant/AntClassLoader.java
  2. +1
    -5
      src/main/org/apache/tools/ant/PathTokenizer.java
  3. +4
    -4
      src/main/org/apache/tools/ant/Project.java
  4. +11
    -19
      src/main/org/apache/tools/ant/PropertyHelper.java
  5. +12
    -13
      src/main/org/apache/tools/ant/RuntimeConfigurable.java
  6. +1
    -2
      src/main/org/apache/tools/ant/XmlLogger.java
  7. +1
    -2
      src/main/org/apache/tools/ant/attribute/BaseIfAttribute.java
  8. +11
    -20
      src/main/org/apache/tools/ant/filters/ClassConstants.java
  9. +1
    -3
      src/main/org/apache/tools/ant/filters/ExpandProperties.java
  10. +2
    -4
      src/main/org/apache/tools/ant/filters/LineContainsRegExp.java
  11. +1
    -2
      src/main/org/apache/tools/ant/filters/StripJavaComments.java
  12. +2
    -4
      src/main/org/apache/tools/ant/filters/util/JavaClassHelper.java
  13. +79
    -71
      src/main/org/apache/tools/ant/helper/ProjectHelper2.java
  14. +42
    -33
      src/main/org/apache/tools/ant/helper/ProjectHelperImpl.java
  15. +3
    -6
      src/main/org/apache/tools/ant/taskdefs/AntStructure.java
  16. +4
    -7
      src/main/org/apache/tools/ant/taskdefs/Concat.java
  17. +12
    -10
      src/main/org/apache/tools/ant/taskdefs/Expand.java
  18. +2
    -3
      src/main/org/apache/tools/ant/taskdefs/Get.java
  19. +3
    -3
      src/main/org/apache/tools/ant/taskdefs/Javac.java
  20. +7
    -22
      src/main/org/apache/tools/ant/taskdefs/Manifest.java
  21. +1
    -2
      src/main/org/apache/tools/ant/taskdefs/Recorder.java
  22. +1
    -1
      src/main/org/apache/tools/ant/taskdefs/Replace.java
  23. +1
    -4
      src/main/org/apache/tools/ant/taskdefs/Rmic.java
  24. +6
    -6
      src/main/org/apache/tools/ant/taskdefs/UpToDate.java
  25. +3
    -3
      src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java
  26. +7
    -12
      src/main/org/apache/tools/ant/taskdefs/condition/IsReference.java
  27. +2
    -2
      src/main/org/apache/tools/ant/taskdefs/condition/Os.java
  28. +1
    -1
      src/main/org/apache/tools/ant/taskdefs/optional/NetRexxC.java
  29. +10
    -16
      src/main/org/apache/tools/ant/taskdefs/optional/SchemaValidate.java
  30. +2
    -2
      src/main/org/apache/tools/ant/taskdefs/optional/depend/AntAnalyzer.java
  31. +12
    -21
      src/main/org/apache/tools/ant/taskdefs/optional/ejb/IPlanetEjbc.java
  32. +1
    -2
      src/main/org/apache/tools/ant/taskdefs/optional/jlink/ClassNameReader.java
  33. +4
    -6
      src/main/org/apache/tools/ant/taskdefs/optional/junit/JUnitTask.java
  34. +9
    -9
      src/main/org/apache/tools/ant/taskdefs/optional/native2ascii/BuiltinNative2Ascii.java
  35. +2
    -9
      src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java
  36. +1
    -2
      src/main/org/apache/tools/ant/taskdefs/optional/net/FTPTaskMirrorImpl.java
  37. +1
    -1
      src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHExec.java
  38. +1
    -3
      src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpFromMessage.java
  39. +2
    -4
      src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpFromMessageBySftp.java
  40. +3
    -5
      src/main/org/apache/tools/ant/types/AbstractFileSet.java
  41. +4
    -8
      src/main/org/apache/tools/ant/types/CommandlineJava.java
  42. +1
    -2
      src/main/org/apache/tools/ant/types/PropertySet.java
  43. +1
    -4
      src/main/org/apache/tools/ant/types/resources/PropertyResource.java
  44. +3
    -3
      src/main/org/apache/tools/ant/types/resources/URLResource.java
  45. +1
    -4
      src/main/org/apache/tools/ant/types/resources/comparators/ResourceComparator.java
  46. +8
    -11
      src/main/org/apache/tools/ant/util/DOMElementWriter.java
  47. +2
    -2
      src/main/org/apache/tools/ant/util/DateUtils.java
  48. +4
    -8
      src/main/org/apache/tools/ant/util/FileUtils.java
  49. +1
    -1
      src/main/org/apache/tools/ant/util/LayoutPreservingProperties.java
  50. +3
    -3
      src/main/org/apache/tools/ant/util/LazyHashtable.java
  51. +2
    -7
      src/main/org/apache/tools/ant/util/ResourceUtils.java
  52. +1
    -2
      src/main/org/apache/tools/ant/util/regexp/Jdk14RegexpMatcher.java
  53. +2
    -4
      src/main/org/apache/tools/bzip2/BlockSort.java
  54. +5
    -3
      src/main/org/apache/tools/bzip2/CBZip2InputStream.java
  55. +5
    -13
      src/main/org/apache/tools/tar/TarEntry.java
  56. +2
    -4
      src/main/org/apache/tools/zip/ZipEightByteInteger.java
  57. +1
    -4
      src/main/org/apache/tools/zip/ZipLong.java
  58. +1
    -4
      src/main/org/apache/tools/zip/ZipShort.java
  59. +3
    -2
      src/tests/junit/org/apache/tools/ant/taskdefs/DirnameTest.java

+ 6
- 10
src/main/org/apache/tools/ant/AntClassLoader.java View File

@@ -539,15 +539,11 @@ public class AntClassLoader extends ClassLoader implements SubBuildListener, Clo
*/
public String getClasspath() {
final StringBuilder sb = new StringBuilder();
boolean firstPass = true;
final Enumeration<File> componentEnum = pathComponents.elements();
while (componentEnum.hasMoreElements()) {
if (!firstPass) {
sb.append(System.getProperty("path.separator"));
} else {
firstPass = false;
for (final File component : pathComponents) {
if (sb.length() > 0) {
sb.append(File.pathSeparator);
}
sb.append(componentEnum.nextElement().getAbsolutePath());
sb.append(component.getAbsolutePath());
}
return sb.toString();
}
@@ -1407,8 +1403,8 @@ public class AntClassLoader extends ClassLoader implements SubBuildListener, Clo
* files are closed.
*/
public synchronized void cleanup() {
for (final Enumeration<JarFile> e = jarFiles.elements(); e.hasMoreElements();) {
FileUtils.close(e.nextElement());
for (final JarFile jarFile : jarFiles.values()) {
FileUtils.close(jarFile);
}
jarFiles = new Hashtable<>();
if (project != null) {


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

@@ -83,11 +83,7 @@ public class PathTokenizer {
* in the string after the current position; <code>false</code> otherwise.
*/
public boolean hasMoreTokens() {
if (lookahead != null) {
return true;
}

return tokenizer.hasMoreTokens();
return lookahead != null || tokenizer.hasMoreTokens();
}

/**


+ 4
- 4
src/main/org/apache/tools/ant/Project.java View File

@@ -1828,10 +1828,10 @@ public class Project implements ResourceFactory {
+ root);
}
}
final StringBuilder buf = new StringBuilder("Build sequence for target(s)");
for (int j = 0; j < roots.length; j++) {
buf.append((j == 0) ? " `" : ", `").append(roots[j]).append('\'');
final StringBuilder buf = new StringBuilder();
for (String root : roots) {
buf.append((buf.length() == 0) ? "Build sequence for target(s) `"
: ", `").append(root).append('\'');
}
buf.append(" is ").append(ret);
log(buf.toString(), MSG_VERBOSE);


+ 11
- 19
src/main/org/apache/tools/ant/PropertyHelper.java View File

@@ -20,10 +20,10 @@ package org.apache.tools.ant;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Enumeration;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Vector;

@@ -974,14 +974,11 @@ public class PropertyHelper implements GetProperty {
public void copyInheritedProperties(Project other) {
//avoid concurrent modification:
synchronized (inheritedProperties) {
Enumeration<String> e = inheritedProperties.keys();
while (e.hasMoreElements()) {
String arg = e.nextElement();
if (other.getUserProperty(arg) != null) {
continue;
for (Map.Entry<String, Object> entry : inheritedProperties.entrySet()) {
String arg = entry.getKey();
if (other.getUserProperty(arg) == null) {
other.setInheritedProperty(arg, entry.getValue().toString());
}
Object value = inheritedProperties.get(arg);
other.setInheritedProperty(arg, value.toString());
}
}
}
@@ -1004,14 +1001,11 @@ public class PropertyHelper implements GetProperty {
public void copyUserProperties(Project other) {
//avoid concurrent modification:
synchronized (userProperties) {
Enumeration<String> e = userProperties.keys();
while (e.hasMoreElements()) {
Object arg = e.nextElement();
if (inheritedProperties.containsKey(arg)) {
continue;
for (Map.Entry<String, Object> entry : userProperties.entrySet()) {
String arg = entry.getKey();
if (!inheritedProperties.containsKey(arg)) {
other.setUserProperty(arg, entry.getValue().toString());
}
Object value = userProperties.get(arg);
other.setUserProperty(arg.toString(), value.toString());
}
}
}
@@ -1123,16 +1117,14 @@ public class PropertyHelper implements GetProperty {
* @return Set&lt;Class&gt;
* @since Ant 1.8.0
*/
@SuppressWarnings("unchecked")
protected static Set<Class<? extends Delegate>> getDelegateInterfaces(Delegate d) {
final HashSet<Class<? extends Delegate>> result = new HashSet<>();
Class<?> c = d.getClass();
while (c != null) {
for (Class<?> ifc : c.getInterfaces()) {
if (Delegate.class.isAssignableFrom(ifc)) {
@SuppressWarnings("unchecked")
final Class<? extends Delegate> delegateInterface =
(Class<? extends Delegate>) ifc;
result.add(delegateInterface);
result.add((Class<? extends Delegate>) ifc);
}
}
c = c.getSuperclass();


+ 12
- 13
src/main/org/apache/tools/ant/RuntimeConfigurable.java View File

@@ -531,23 +531,22 @@ public class RuntimeConfigurable implements Serializable {
ih.setAttribute(p, target, name, attrValue);
} catch (UnsupportedAttributeException be) {
// id attribute must be set externally
if ("id".equals(name)) {
// Do nothing
} else if (getElementTag() == null) {
throw be;
} else {
throw new BuildException(
getElementTag() + " doesn't support the \""
+ be.getAttribute() + "\" attribute", be);
if (!"id".equals(name)) {
if (getElementTag() == null) {
throw be;
} else {
throw new BuildException(
getElementTag() + " doesn't support the \""
+ be.getAttribute() + "\" attribute", be);
}
}
} catch (BuildException be) {
if ("id".equals(name)) {
// Assume that this is an not supported attribute type
// thrown for example by a dynamic attribute task
// Do nothing
} else {
if (!"id".equals(name)) {
throw be;
}
// Assume that this is an not supported attribute type
// thrown for example by a dynamic attribute task --
// do nothing
}
}
}


+ 1
- 2
src/main/org/apache/tools/ant/XmlLogger.java View File

@@ -207,12 +207,11 @@ public class XmlLogger implements BuildLogger {
* @return the stack of timed elements for the current thread
*/
private Stack<TimedElement> getStack() {
Stack<TimedElement> threadStack = threadStacks.computeIfAbsent(Thread.currentThread(), k -> new Stack<>());
/* For debugging purposes uncomment:
org.w3c.dom.Comment s = doc.createComment("stack=" + threadStack);
buildElement.element.appendChild(s);
*/
return threadStack;
return threadStacks.computeIfAbsent(Thread.currentThread(), k -> new Stack<>());
}

/**


+ 1
- 2
src/main/org/apache/tools/ant/attribute/BaseIfAttribute.java View File

@@ -73,11 +73,10 @@ public abstract class BaseIfAttribute
Hashtable<String, Object> attributes = rc.getAttributeMap(); // This does a copy!
for (Map.Entry<String, Object> entry : attributes.entrySet()) {
String key = entry.getKey();
String value = (String) entry.getValue();
if (key.startsWith("ant-attribute:param")) {
int pos = key.lastIndexOf(':');
ret.put(key.substring(pos + 1),
el.getProject().replaceProperties(value));
el.getProject().replaceProperties((String) entry.getValue()));
}
}
return ret;


+ 11
- 20
src/main/org/apache/tools/ant/filters/ClassConstants.java View File

@@ -86,41 +86,27 @@ public final class ClassConstants
* be read (for example due to the class not being found).
*/
public int read() throws IOException {

int ch = -1;

if (queuedData != null && queuedData.length() == 0) {
queuedData = null;
}

if (queuedData != null) {
ch = queuedData.charAt(0);
queuedData = queuedData.substring(1);
if (queuedData.length() == 0) {
queuedData = null;
}
} else {
if (queuedData == null) {
final String clazz = readFully();
if (clazz == null || clazz.length() == 0) {
ch = -1;
} else {
final byte[] bytes = clazz.getBytes(ResourceUtils.ISO_8859_1);
try {
final Class<?> javaClassHelper =
Class.forName(JAVA_CLASS_HELPER);
final Class<?> javaClassHelper = Class.forName(JAVA_CLASS_HELPER);
if (javaClassHelper != null) {
final Class<?>[] params = {
byte[].class
};
final Method getConstants =
javaClassHelper.getMethod("getConstants", params);
final Object[] args = {
bytes
};
javaClassHelper.getMethod("getConstants", byte[].class);
// getConstants is a static method, no need to
// pass in the object
final StringBuffer sb = (StringBuffer)
getConstants.invoke(null, args);
getConstants.invoke(null, (Object) bytes);
if (sb.length() > 0) {
queuedData = sb.toString();
return read();
@@ -141,6 +127,12 @@ public final class ClassConstants
throw new BuildException(ex);
}
}
} else {
ch = queuedData.charAt(0);
queuedData = queuedData.substring(1);
if (queuedData.length() == 0) {
queuedData = null;
}
}
return ch;
}
@@ -156,7 +148,6 @@ public final class ClassConstants
* the specified reader
*/
public Reader chain(final Reader rdr) {
ClassConstants newFilter = new ClassConstants(rdr);
return newFilter;
return new ClassConstants(rdr);
}
}

+ 1
- 3
src/main/org/apache/tools/ant/filters/ExpandProperties.java View File

@@ -19,7 +19,6 @@ package org.apache.tools.ant.filters;

import java.io.IOException;
import java.io.Reader;
import java.util.Properties;

import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
@@ -98,8 +97,7 @@ public final class ExpandProperties
if (propertySet == null) {
getProperty = PropertyHelper.getPropertyHelper(project);
} else {
final Properties props = propertySet.getProperties();
getProperty = props::getProperty;
getProperty = propertySet.getProperties()::getProperty;
}
Object expanded = new ParseProperties(project, PropertyHelper
.getPropertyHelper(project)


+ 2
- 4
src/main/org/apache/tools/ant/filters/LineContainsRegExp.java View File

@@ -186,10 +186,8 @@ public final class LineContainsRegExp
LineContainsRegExp newFilter = new LineContainsRegExp(rdr);
newFilter.setRegexps(getRegexps());
newFilter.setNegate(isNegated());
newFilter
.setCaseSensitive(!RegexpUtil.hasFlag(regexpOptions,
Regexp.MATCH_CASE_INSENSITIVE)
);
newFilter.setCaseSensitive(!RegexpUtil.hasFlag(regexpOptions,
Regexp.MATCH_CASE_INSENSITIVE));
return newFilter;
}



+ 1
- 2
src/main/org/apache/tools/ant/filters/StripJavaComments.java View File

@@ -139,7 +139,6 @@ public final class StripJavaComments
*/

public Reader chain(final Reader rdr) {
StripJavaComments newFilter = new StripJavaComments(rdr);
return newFilter;
return new StripJavaComments(rdr);
}
}

+ 2
- 4
src/main/org/apache/tools/ant/filters/util/JavaClassHelper.java View File

@@ -46,14 +46,12 @@ public final class JavaClassHelper {
final StringBuffer sb = new StringBuffer();
final ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
final ClassParser parser = new ClassParser(bis, "");
final JavaClass javaClass = parser.parse();
final Field[] fields = javaClass.getFields();
for (final Field field : fields) {
for (final Field field : parser.parse().getFields()) {
if (field != null) {
final ConstantValue cv = field.getConstantValue();
if (cv != null) {
String cvs = cv.toString();
//Remove start and end quotes if field is a String
// Remove start and end quotes if field is a String
if (cvs.startsWith("\"") && cvs.endsWith("\"")) {
cvs = cvs.substring(1, cvs.length() - 1);
}


+ 79
- 71
src/main/org/apache/tools/ant/helper/ProjectHelper2.java View File

@@ -274,12 +274,10 @@ public class ProjectHelper2 extends ProjectHelper {
+ uri + (zf != null ? " from a zip file" : ""),
Project.MSG_VERBOSE);

DefaultHandler hb = handler;

parser.setContentHandler(hb);
parser.setEntityResolver(hb);
parser.setErrorHandler(hb);
parser.setDTDHandler(hb);
parser.setContentHandler(handler);
parser.setEntityResolver(handler);
parser.setErrorHandler(handler);
parser.setDTDHandler(handler);
parser.parse(inputSource);
} catch (SAXParseException exc) {
Location location = new Location(exc.getSystemId(), exc.getLineNumber(), exc
@@ -603,8 +601,7 @@ public class ProjectHelper2 extends ProjectHelper {
@Override
public void endElement(String uri, String name, String qName) throws SAXException {
currentHandler.onEndElement(uri, name, context);
AntHandler prev = antHandlers.pop();
currentHandler = prev;
currentHandler = antHandlers.pop();
if (currentHandler != null) {
currentHandler.onEndChild(uri, name, qName, context);
}
@@ -729,45 +726,49 @@ public class ProjectHelper2 extends ProjectHelper {
if (attrUri != null && !attrUri.isEmpty() && !attrUri.equals(uri)) {
continue; // Ignore attributes from unknown uris
}
String key = attrs.getLocalName(i);
String value = attrs.getValue(i);

if ("default".equals(key)) {
if (value != null && !value.isEmpty()) {
if (!context.isIgnoringProjectTag()) {
project.setDefault(value);
switch (attrs.getLocalName(i)) {
case "default":
if (value != null && !value.isEmpty()) {
if (!context.isIgnoringProjectTag()) {
project.setDefault(value);
}
}
}
} else if ("name".equals(key)) {
if (value != null) {
context.setCurrentProjectName(value);
nameAttributeSet = true;
if (!context.isIgnoringProjectTag()) {
project.setName(value);
project.addReference(value, project);
} else if (isInIncludeMode()) {
if (!"".equals(value) && getCurrentTargetPrefix()!= null && getCurrentTargetPrefix().endsWith(ProjectHelper.USE_PROJECT_NAME_AS_TARGET_PREFIX)) {
String newTargetPrefix = getCurrentTargetPrefix().replace(ProjectHelper.USE_PROJECT_NAME_AS_TARGET_PREFIX, value);
// help nested include tasks
setCurrentTargetPrefix(newTargetPrefix);
break;
case "name":
if (value != null) {
context.setCurrentProjectName(value);
nameAttributeSet = true;
if (!context.isIgnoringProjectTag()) {
project.setName(value);
project.addReference(value, project);
} else if (isInIncludeMode()) {
if (!value.isEmpty() && getCurrentTargetPrefix() != null
&& getCurrentTargetPrefix().endsWith(ProjectHelper.USE_PROJECT_NAME_AS_TARGET_PREFIX)) {
String newTargetPrefix = getCurrentTargetPrefix().replace(ProjectHelper.USE_PROJECT_NAME_AS_TARGET_PREFIX, value);
// help nested include tasks
setCurrentTargetPrefix(newTargetPrefix);
}
}
}
}
} else if ("id".equals(key)) {
if (value != null) {
// What's the difference between id and name ?
break;
case "id":
if (value != null) {
// What's the difference between id and name ?
if (!context.isIgnoringProjectTag()) {
project.addReference(value, project);
}
}
break;
case "basedir":
if (!context.isIgnoringProjectTag()) {
project.addReference(value, project);
baseDir = value;
}
}
} else if ("basedir".equals(key)) {
if (!context.isIgnoringProjectTag()) {
baseDir = value;
}
} else {
// TODO ignore attributes in a different NS ( maybe store them ? )
throw new SAXParseException("Unexpected attribute \"" + attrs.getQName(i)
+ "\"", context.getLocator());
break;
default:
// TODO ignore attributes in a different NS ( maybe store them ? )
throw new SAXParseException("Unexpected attribute \"" + attrs.getQName(i)
+ "\"", context.getLocator());
}
}

@@ -914,37 +915,44 @@ public class ProjectHelper2 extends ProjectHelper {
if (attrUri != null && !attrUri.isEmpty() && !attrUri.equals(uri)) {
continue; // Ignore attributes from unknown uris
}
String key = attrs.getLocalName(i);
String value = attrs.getValue(i);

if ("name".equals(key)) {
name = value;
if (name.isEmpty()) {
throw new BuildException("name attribute must " + "not be empty");
}
} else if ("depends".equals(key)) {
depends = value;
} else if ("if".equals(key)) {
target.setIf(value);
} else if ("unless".equals(key)) {
target.setUnless(value);
} else if ("id".equals(key)) {
if (value != null && !value.isEmpty()) {
context.getProject().addReference(value, target);
}
} else if ("description".equals(key)) {
target.setDescription(value);
} else if ("extensionOf".equals(key)) {
extensionPoint = value;
} else if ("onMissingExtensionPoint".equals(key)) {
try {
extensionPointMissing = OnMissingExtensionPoint.valueOf(value);
} catch (IllegalArgumentException e) {
throw new BuildException("Invalid onMissingExtensionPoint " + value);
}
} else {
throw new SAXParseException("Unexpected attribute \"" + key + "\"", context
.getLocator());
switch (attrs.getLocalName(i)) {
case "name":
name = value;
if (name.isEmpty()) {
throw new BuildException("name attribute must not be empty");
}
break;
case "depends":
depends = value;
break;
case "if":
target.setIf(value);
break;
case "unless":
target.setUnless(value);
break;
case "id":
if (value != null && !value.isEmpty()) {
context.getProject().addReference(value, target);
}
break;
case "description":
target.setDescription(value);
break;
case "extensionOf":
extensionPoint = value;
break;
case "onMissingExtensionPoint":
try {
extensionPointMissing = OnMissingExtensionPoint.valueOf(value);
} catch (IllegalArgumentException e) {
throw new BuildException("Invalid onMissingExtensionPoint " + value);
}
break;
default:
throw new SAXParseException("Unexpected attribute \"" + attrs.getQName(i)
+ "\"", context.getLocator());
}
}



+ 42
- 33
src/main/org/apache/tools/ant/helper/ProjectHelperImpl.java View File

@@ -389,19 +389,22 @@ public class ProjectHelperImpl extends ProjectHelper {
for (int i = 0; i < attrs.getLength(); i++) {
String key = attrs.getName(i);
String value = attrs.getValue(i);

if ("default".equals(key)) {
def = value;
} else if ("name".equals(key)) {
name = value;
} else if ("id".equals(key)) {
id = value;
} else if ("basedir".equals(key)) {
baseDir = value;
} else {
throw new SAXParseException(
"Unexpected attribute \"" + attrs.getName(i)
+ "\"", helperImpl.locator);
switch (key) {
case "default":
def = value;
break;
case "name":
name = value;
break;
case "id":
id = value;
break;
case "basedir":
baseDir = value;
break;
default:
throw new SAXParseException("Unexpected attribute \"" + attrs.getName(i)
+ "\"", helperImpl.locator);
}
}

@@ -525,26 +528,32 @@ public class ProjectHelperImpl extends ProjectHelper {
for (int i = 0; i < attrs.getLength(); i++) {
String key = attrs.getName(i);
String value = attrs.getValue(i);

if ("name".equals(key)) {
name = value;
if (name.isEmpty()) {
throw new BuildException("name attribute must not" + " be empty",
new Location(helperImpl.locator));
}
} else if ("depends".equals(key)) {
depends = value;
} else if ("if".equals(key)) {
ifCond = value;
} else if ("unless".equals(key)) {
unlessCond = value;
} else if ("id".equals(key)) {
id = value;
} else if ("description".equals(key)) {
description = value;
} else {
throw new SAXParseException("Unexpected attribute \"" + key + "\"",
helperImpl.locator);
switch (key) {
case "name":
name = value;
if (name.isEmpty()) {
throw new BuildException("name attribute must not be empty",
new Location(helperImpl.locator));
}
break;
case "depends":
depends = value;
break;
case "if":
ifCond = value;
break;
case "unless":
unlessCond = value;
break;
case "id":
id = value;
break;
case "description":
description = value;
break;
default:
throw new SAXParseException("Unexpected attribute \"" + key + "\"",
helperImpl.locator);
}
}



+ 3
- 6
src/main/org/apache/tools/ant/taskdefs/AntStructure.java View File

@@ -348,19 +348,16 @@ public class AntStructure extends Task {
sb.append(LINE_SEP).append(" ")
.append(attrName).append(" ");
final Class<?> type = ih.getAttributeType(attrName);
if (type.equals(Boolean.class)
|| type.equals(Boolean.TYPE)) {
if (type.equals(Boolean.class) || type.equals(Boolean.TYPE)) {
sb.append(BOOLEAN).append(" ");
} else if (Reference.class.isAssignableFrom(type)) {
sb.append("IDREF ");
} else if (EnumeratedAttribute.class.isAssignableFrom(type)) {
try {
final EnumeratedAttribute ea =
type.asSubclass(EnumeratedAttribute.class)
.newInstance();
type.asSubclass(EnumeratedAttribute.class).newInstance();
final String[] values = ea.getValues();
if (values == null
|| values.length == 0
if (values == null || values.length == 0
|| !areNmtokens(values)) {
sb.append("CDATA ");
} else {


+ 4
- 7
src/main/org/apache/tools/ant/taskdefs/Concat.java View File

@@ -595,7 +595,7 @@ public class Concat extends Task implements ResourceCollection {
*/
@Deprecated
public void setForce(boolean forceOverwrite) {
this.forceOverwrite = forceOverwrite;
setOverwrite(forceOverwrite);
}

/**
@@ -606,7 +606,7 @@ public class Concat extends Task implements ResourceCollection {
* @since Ant 1.8.2
*/
public void setOverwrite(boolean forceOverwrite) {
setForce(forceOverwrite);
this.forceOverwrite = forceOverwrite;
}

/**
@@ -923,11 +923,8 @@ public class Concat extends Task implements ResourceCollection {
}

private boolean isUpToDate(ResourceCollection c) {
if (dest == null || forceOverwrite) {
return false;
}
return c.stream().noneMatch(r -> SelectorUtils.isOutOfDate(r, dest,
FILE_UTILS.getFileTimestampGranularity()));
return dest != null && !forceOverwrite
&& c.stream().noneMatch(r -> SelectorUtils.isOutOfDate(r, dest, FILE_UTILS.getFileTimestampGranularity()));
}

/**


+ 12
- 10
src/main/org/apache/tools/ant/taskdefs/Expand.java View File

@@ -270,7 +270,6 @@ public class Expand extends Task {
String name = entryName.replace('/', File.separatorChar)
.replace('\\', File.separatorChar);

boolean included = false;
Set<String> includePatterns = new HashSet<>();
Set<String> excludePatterns = new HashSet<>();
for (PatternSet p : patternsets) {
@@ -302,20 +301,23 @@ public class Expand extends Task {
}
}

for (Iterator<String> iter = includePatterns.iterator();
!included && iter.hasNext();) {
String pattern = iter.next();
included = SelectorUtils.matchPath(pattern, name);
boolean included = false;
for (String pattern : includePatterns) {
if (SelectorUtils.matchPath(pattern, name)) {
included = true;
break;
}
}

for (Iterator<String> iter = excludePatterns.iterator();
included && iter.hasNext();) {
String pattern = iter.next();
included = !SelectorUtils.matchPath(pattern, name);
for (String pattern : excludePatterns) {
if (SelectorUtils.matchPath(pattern, name)) {
included = false;
break;
}
}

if (!included) {
//Do not process this file
// Do not process this file
log("skipping " + entryName
+ " as it is excluded or not included.",
Project.MSG_VERBOSE);


+ 2
- 3
src/main/org/apache/tools/ant/taskdefs/Get.java View File

@@ -28,6 +28,8 @@ import java.net.URL;
import java.net.URLConnection;
import java.nio.file.Files;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.zip.GZIPInputStream;

import org.apache.tools.ant.BuildException;
@@ -46,9 +48,6 @@ import org.apache.tools.ant.util.FileNameMapper;
import org.apache.tools.ant.util.FileUtils;
import org.apache.tools.ant.util.StringUtils;

import java.util.LinkedHashMap;
import java.util.Map;

/**
* Gets a particular file from a URL source.
* Options include verbose reporting, timestamp based fetches and controlling


+ 3
- 3
src/main/org/apache/tools/ant/taskdefs/Javac.java View File

@@ -834,7 +834,7 @@ public class Javac extends MatchingTask {
* @return whether or not the ant classpath is to be included in the classpath
*/
public boolean getIncludeantruntime() {
return includeAntRuntime != null ? includeAntRuntime : true;
return includeAntRuntime == null || includeAntRuntime;
}

/**
@@ -1509,10 +1509,10 @@ public class Javac extends MatchingTask {
* @return a mapping from module name to module source roots
* @since 1.9.7
*/
private static Map<String,Collection<File>> resolveModuleSourcePathElement(
private static Map<String, Collection<File>> resolveModuleSourcePathElement(
final File projectDir,
final String element) {
final Map<String,Collection<File>> result = new TreeMap<>();
final Map<String, Collection<File>> result = new TreeMap<>();
for (CharSequence resolvedElement : expandGroups(element)) {
findModules(projectDir, resolvedElement.toString(), result);
}


+ 7
- 22
src/main/org/apache/tools/ant/taskdefs/Manifest.java View File

@@ -193,12 +193,8 @@ public class Manifest {
Attribute rhsAttribute = (Attribute) rhs;
String lhsKey = getKey();
String rhsKey = rhsAttribute.getKey();
if ((lhsKey == null && rhsKey != null)
|| (lhsKey != null && !lhsKey.equals(rhsKey))) {
return false;
}

return values.equals(rhsAttribute.values);
return (lhsKey != null || rhsKey == null)
&& (lhsKey == null || lhsKey.equals(rhsKey)) && values.equals(rhsAttribute.values);
}

/**
@@ -243,10 +239,7 @@ public class Manifest {
* @return the attribute's key.
*/
public String getKey() {
if (name == null) {
return null;
}
return name.toLowerCase(Locale.ENGLISH);
return name == null ? null : name.toLowerCase(Locale.ENGLISH);
}

/**
@@ -302,8 +295,7 @@ public class Manifest {
* @param line the continuation line.
*/
public void addContinuation(String line) {
String currentValue = values.elementAt(currentIndex);
setValue(currentValue + line.substring(1));
setValue(values.elementAt(currentIndex) + line.substring(1));
}

/**
@@ -607,10 +599,7 @@ public class Manifest {
*/
public String getAttributeValue(String attributeName) {
Attribute attribute = getAttribute(attributeName.toLowerCase(Locale.ENGLISH));
if (attribute == null) {
return null;
}
return attribute.getValue();
return attribute == null ? null : attribute.getValue();
}

/**
@@ -723,8 +712,7 @@ public class Manifest {
if (attribute == null) {
return;
}
String attributeKey = attribute.getKey();
attributes.put(attributeKey, attribute);
attributes.put(attribute.getKey(), attribute);
}

/**
@@ -1113,11 +1101,8 @@ public class Manifest {
return false;
}

if (!mainSection.equals(rhsManifest.mainSection)) {
return false;
}
return mainSection.equals(rhsManifest.mainSection) && sections.equals(rhsManifest.sections);

return sections.equals(rhsManifest.sections);
}

/**


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

@@ -310,8 +310,7 @@ public class Recorder extends Task implements SubBuildListener {
Hashtable<String, RecorderEntry> entries
= (Hashtable<String, RecorderEntry>) recorderEntries.clone();
for (Map.Entry<String, RecorderEntry> entry : entries.entrySet()) {
RecorderEntry re = entry.getValue();
if (re.getProject() == getProject()) {
if (entry.getValue().getProject() == getProject()) {
recorderEntries.remove(entry.getKey());
}
}


+ 1
- 1
src/main/org/apache/tools/ant/taskdefs/Replace.java View File

@@ -286,7 +286,7 @@ public class Replace extends MatchingTask {
* The filter expects from the component providing the input that data
* is only added by that component to the end of this StringBuffer.
* This StringBuffer will be modified by this filter, and expects that
* another component will only added to this StringBuffer.
* another component will only append to this StringBuffer.
* @param input The input for this filter.
*/
void setInputBuffer(StringBuffer input) {


+ 1
- 4
src/main/org/apache/tools/ant/taskdefs/Rmic.java View File

@@ -775,10 +775,7 @@ public class Rmic extends MatchingTask {
try {
Class<?> testClass = loader.loadClass(classname);
// One cannot RMIC an interface for "classic" RMI (JRMP)
if (testClass.isInterface() && !iiop && !idl) {
return false;
}
return isValidRmiRemote(testClass);
return (!testClass.isInterface() || iiop || idl) && isValidRmiRemote(testClass);
} catch (ClassNotFoundException e) {
log(ERROR_UNABLE_TO_VERIFY_CLASS + classname + ERROR_NOT_FOUND,
Project.MSG_WARN);


+ 6
- 6
src/main/org/apache/tools/ant/taskdefs/UpToDate.java View File

@@ -24,7 +24,6 @@ import java.util.List;
import java.util.Vector;

import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.DirectoryScanner;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.taskdefs.condition.Condition;
@@ -205,11 +204,12 @@ public class UpToDate extends Task implements Condition {
// scan all filesets, even if we know the target is out of
// date after the first test.

Iterator<FileSet> iter = sourceFileSets.iterator();
while (upToDate && iter.hasNext()) {
FileSet fs = iter.next();
DirectoryScanner ds = fs.getDirectoryScanner(getProject());
upToDate = scanDir(fs.getDir(getProject()), ds.getIncludedFiles());
for (FileSet fs : sourceFileSets) {
if (!scanDir(fs.getDir(getProject()),
fs.getDirectoryScanner(getProject()).getIncludedFiles())) {
upToDate = false;
break;
}
}

if (upToDate) {


+ 3
- 3
src/main/org/apache/tools/ant/taskdefs/compilers/DefaultCompilerAdapter.java View File

@@ -696,8 +696,7 @@ public abstract class DefaultCompilerAdapter
*/
@Deprecated
protected boolean assumeJava19() {
return assumeJavaXY("javac1.9", JavaEnvUtils.JAVA_9)
|| assumeJavaXY("javac9", JavaEnvUtils.JAVA_9);
return assumeJava9();
}

/**
@@ -706,7 +705,8 @@ public abstract class DefaultCompilerAdapter
* @since Ant 1.9.8
*/
protected boolean assumeJava9() {
return assumeJava19();
return assumeJavaXY("javac1.9", JavaEnvUtils.JAVA_9)
|| assumeJavaXY("javac9", JavaEnvUtils.JAVA_9);
}

/**


+ 7
- 12
src/main/org/apache/tools/ant/taskdefs/condition/IsReference.java View File

@@ -60,31 +60,26 @@ public class IsReference extends ProjectComponent implements Condition {
public boolean eval() throws BuildException {
if (ref == null) {
throw new BuildException(
"No reference specified for isreference condition");
"No reference specified for isreference condition");
}

String key = ref.getRefId();
if (!getProject().hasReference(key)) {
return false;
}

if (type == null) {
return true;
}
Object o = getProject().getReference(key);
Class<?> typeClass =
getProject().getDataTypeDefinitions().get(type);

Class<?> typeClass = getProject().getDataTypeDefinitions().get(type);
if (typeClass == null) {
typeClass =
getProject().getTaskDefinitions().get(type);
typeClass = getProject().getTaskDefinitions().get(type);
}

if (typeClass == null) {
// don't know the type, should throw exception instead?
return false;
}
// if the type is unknown, throw exception instead?
return typeClass != null
&& typeClass.isAssignableFrom(getProject().getReference(key).getClass());

return typeClass.isAssignableFrom(o.getClass());
}

}

+ 2
- 2
src/main/org/apache/tools/ant/taskdefs/condition/Os.java View File

@@ -18,6 +18,7 @@

package org.apache.tools.ant.taskdefs.condition;

import java.io.File;
import java.util.Locale;

import org.apache.tools.ant.BuildException;
@@ -34,8 +35,7 @@ public class Os implements Condition {
System.getProperty("os.arch").toLowerCase(Locale.ENGLISH);
private static final String OS_VERSION =
System.getProperty("os.version").toLowerCase(Locale.ENGLISH);
private static final String PATH_SEP =
System.getProperty("path.separator");
private static final String PATH_SEP = File.pathSeparator;

/**
* OS family that can be tested for. {@value}


+ 1
- 1
src/main/org/apache/tools/ant/taskdefs/optional/NetRexxC.java View File

@@ -924,7 +924,7 @@ public class NetRexxC extends MatchingTask {
*/
private void addExistingToClasspath(StringBuilder target, String source) {
StringTokenizer tok = new StringTokenizer(source,
System.getProperty("path.separator"), false);
File.pathSeparator, false);

while (tok.hasMoreTokens()) {
File f = getProject().resolveFile(tok.nextToken());


+ 10
- 16
src/main/org/apache/tools/ant/taskdefs/optional/SchemaValidate.java View File

@@ -467,14 +467,9 @@ public class SchemaValidate extends XMLValidateTask {

final SchemaLocation schemaLocation = (SchemaLocation) o;

if (file != null ? !file.equals(schemaLocation.file) : schemaLocation.file != null) {
return false;
}
if (namespace != null ? !namespace.equals(schemaLocation.namespace)
: schemaLocation.namespace != null) {
return false;
}
return url != null ? url.equals(schemaLocation.url) : schemaLocation.url == null;
return (file == null ? schemaLocation.file == null : file.equals(schemaLocation.file))
&& (namespace == null ? schemaLocation.namespace == null : namespace.equals(schemaLocation.namespace))
&& (url == null ? schemaLocation.url == null : url.equals(schemaLocation.url));
}

/**
@@ -485,9 +480,9 @@ public class SchemaValidate extends XMLValidateTask {
public int hashCode() {
int result;
// CheckStyle:MagicNumber OFF
result = (namespace != null ? namespace.hashCode() : 0);
result = 29 * result + (file != null ? file.hashCode() : 0);
result = 29 * result + (url != null ? url.hashCode() : 0);
result = (namespace == null ? 0 : namespace.hashCode());
result = 29 * result + (file == null ? 0 : file.hashCode());
result = 29 * result + (url == null ? 0 : url.hashCode());
// CheckStyle:MagicNumber OFF
return result;
}
@@ -499,10 +494,9 @@ public class SchemaValidate extends XMLValidateTask {
*/
@Override
public String toString() {
String buffer = (namespace != null ? namespace : "(anonymous)")
+ ' ' + (url != null ? (url + " ") : "")
+ (file != null ? file.getAbsolutePath() : "");
return buffer;
return (namespace == null ? "(anonymous)" : namespace)
+ (url == null ? "" : " " + url)
+ (file == null ? "" : " " + file.getAbsolutePath());
}
} //SchemaLocation
}
}

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

@@ -20,11 +20,11 @@ package org.apache.tools.ant.taskdefs.optional.depend;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Vector;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;


+ 12
- 21
src/main/org/apache/tools/ant/taskdefs/optional/ejb/IPlanetEjbc.java View File

@@ -812,11 +812,7 @@ public class IPlanetEjbc {
String base = "\\ejb-jar\\enterprise-beans\\" + ejbType;

if ((base + "\\ejb-name").equals(currentLoc)) {
currentEjb = ejbs.get(value);
if (currentEjb == null) {
currentEjb = new EjbInfo(value);
ejbs.put(value, currentEjb);
}
currentEjb = ejbs.computeIfAbsent(value, EjbInfo::new);
} else if ((base + "\\home").equals(currentLoc)) {
currentEjb.setHome(value);
} else if ((base + "\\remote").equals(currentLoc)) {
@@ -846,18 +842,13 @@ public class IPlanetEjbc {
String base = "\\ias-ejb-jar\\enterprise-beans\\" + ejbType;

if ((base + "\\ejb-name").equals(currentLoc)) {
currentEjb = ejbs.get(value);
if (currentEjb == null) {
currentEjb = new EjbInfo(value);
ejbs.put(value, currentEjb);
}
currentEjb = ejbs.computeIfAbsent(value, EjbInfo::new);
} else if ((base + "\\iiop").equals(currentLoc)) {
currentEjb.setIiop(value);
} else if ((base + "\\failover-required").equals(currentLoc)) {
currentEjb.setHasession(value);
} else if ((base
+ "\\persistence-manager\\properties-file-location")
.equals(currentLoc)) {
+ "\\persistence-manager\\properties-file-location").equals(currentLoc)) {
currentEjb.addCmpDescriptor(value);
}
}
@@ -869,15 +860,15 @@ public class IPlanetEjbc {
*
*/
private class EjbInfo {
private String name; // EJB's display name
private Classname home; // EJB's home interface name
private Classname remote; // EJB's remote interface name
private Classname implementation; // EJB's implementation class
private Classname primaryKey; // EJB's primary key class
private String beantype = "entity"; // or "stateful" or "stateless"
private boolean cmp = false; // Does this EJB support CMP?
private boolean iiop = false; // Does this EJB support IIOP?
private boolean hasession = false; // Does this EJB require failover?
private String name; // EJB's display name
private Classname home; // EJB's home interface name
private Classname remote; // EJB's remote interface name
private Classname implementation; // EJB's implementation class
private Classname primaryKey; // EJB's primary key class
private String beantype = "entity"; // or "stateful" or "stateless"
private boolean cmp = false; // Does this EJB support CMP?
private boolean iiop = false; // Does this EJB support IIOP?
private boolean hasession = false; // Does this EJB require failover?
private List<String> cmpDescriptors = new ArrayList<>(); // CMP descriptor list

/**


+ 1
- 2
src/main/org/apache/tools/ant/taskdefs/optional/jlink/ClassNameReader.java View File

@@ -129,8 +129,7 @@ public class ClassNameReader {
/* int accessFlags = */ data.readUnsignedShort();
int classIndex = data.readUnsignedShort();
Integer stringIndex = (Integer) values[classIndex];
String className = (String) values[stringIndex];
return className;
return (String) values[stringIndex];
}

}


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

@@ -1429,10 +1429,8 @@ public class JUnitTask extends Task {
* @return created file
*/
private File createTempPropertiesFile(final String prefix) {
final File propsFile =
FILE_UTILS.createTempFile(prefix, ".properties",
tmpDir != null ? tmpDir : getProject().getBaseDir(), true, true);
return propsFile;
return FILE_UTILS.createTempFile(prefix, ".properties",
tmpDir != null ? tmpDir : getProject().getBaseDir(), true, true);
}


@@ -1701,8 +1699,8 @@ public class JUnitTask extends Task {
* @since 1.9.8
*/
private void checkModules() {
if (hasPath(getCommandline().getModulepath()) ||
hasPath(getCommandline().getUpgrademodulepath())) {
if (hasPath(getCommandline().getModulepath())
|| hasPath(getCommandline().getUpgrademodulepath())) {
if (!batchTests.stream().allMatch(BaseTest::getFork)
|| !tests.stream().allMatch(BaseTest::getFork)) {
throw new BuildException(


+ 9
- 9
src/main/org/apache/tools/ant/taskdefs/optional/native2ascii/BuiltinNative2Ascii.java View File

@@ -60,11 +60,11 @@ public class BuiltinNative2Ascii implements Native2AsciiAdapter {

private BufferedReader getReader(File srcFile, String encoding,
boolean reverse) throws IOException {
if (!reverse && encoding != null) {
return new BufferedReader(new InputStreamReader(
Files.newInputStream(srcFile.toPath()), encoding));
if (reverse || encoding == null) {
return new BufferedReader(new FileReader(srcFile));
}
return new BufferedReader(new FileReader(srcFile));
return new BufferedReader(new InputStreamReader(
Files.newInputStream(srcFile.toPath()), encoding));
}

private Writer getWriter(File destFile, String encoding,
@@ -72,12 +72,12 @@ public class BuiltinNative2Ascii implements Native2AsciiAdapter {
if (!reverse) {
encoding = "ASCII";
}
if (encoding != null) {
return new BufferedWriter(
new OutputStreamWriter(Files.newOutputStream(destFile.toPath()),
encoding));
if (encoding == null) {
return new BufferedWriter(new FileWriter(destFile));
}
return new BufferedWriter(new FileWriter(destFile));
return new BufferedWriter(
new OutputStreamWriter(Files.newOutputStream(destFile.toPath()),
encoding));
}

private void translate(BufferedReader input, Writer output,


+ 2
- 9
src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java View File

@@ -1202,13 +1202,7 @@ public class FTP extends Task implements FTPTaskConfig {
* @since ant 1.6
*/
private boolean isFunctioningAsFile(FTPClient ftp, String dir, FTPFile file) {
if (file.isDirectory()) {
return false;
}
if (file.isFile()) {
return true;
}
return !isFunctioningAsDirectory(ftp, dir, file);
return !file.isDirectory() && (file.isFile() || !isFunctioningAsDirectory(ftp, dir, file));
}

/**
@@ -1901,8 +1895,7 @@ public class FTP extends Task implements FTPTaskConfig {
* @return the filename as it will appear on the server.
*/
protected String resolveFile(String file) {
return file.replace(System.getProperty("file.separator").charAt(0),
remoteFileSep.charAt(0));
return file.replace(File.separator.charAt(0), remoteFileSep.charAt(0));
}

/**


+ 1
- 2
src/main/org/apache/tools/ant/taskdefs/optional/net/FTPTaskMirrorImpl.java View File

@@ -1280,8 +1280,7 @@ public class FTPTaskMirrorImpl implements FTPTaskMirror {
* @return the filename as it will appear on the server.
*/
protected String resolveFile(String file) {
return file.replace(System.getProperty("file.separator").charAt(0),
task.getSeparator().charAt(0));
return file.replace(File.separator.charAt(0), task.getSeparator().charAt(0));
}

/**


+ 1
- 1
src/main/org/apache/tools/ant/taskdefs/optional/ssh/SSHExec.java View File

@@ -218,7 +218,7 @@ public class SSHExec extends SSHBase {
* will be stored.
* @since Apache Ant 1.9.4
*/
public void setErrorproperty (final String property) {
public void setErrorproperty(final String property) {
errorProperty = property;
}



+ 1
- 3
src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpFromMessage.java View File

@@ -319,9 +319,7 @@ public class ScpFromMessage extends AbstractSshMessage {
throw new JSchException("failed to stat remote file", e);
}
FileUtils.getFileUtils().setFileLastModified(localFile,
((long) fileAttributes
.getMTime())
* 1000);
((long) fileAttributes.getMTime()) * 1000);
}

/**


+ 2
- 4
src/main/org/apache/tools/ant/taskdefs/optional/ssh/ScpFromMessageBySftp.java View File

@@ -132,7 +132,7 @@ public class ScpFromMessageBySftp extends ScpFromMessage {

private void getDir(final ChannelSftp channel,
final String remoteFile,
final File localFile) throws IOException, SftpException {
final File localFile) throws SftpException {
String pwd = remoteFile;
if (remoteFile.lastIndexOf('/') != -1) {
if (remoteFile.length() > 1) {
@@ -196,9 +196,7 @@ public class ScpFromMessageBySftp extends ScpFromMessage {
}
if (getPreserveLastModified()) {
FileUtils.getFileUtils().setFileLastModified(localFile,
((long) le.getAttrs()
.getMTime())
* 1000);
((long) le.getAttrs().getMTime()) * 1000);
}
}
}

+ 3
- 5
src/main/org/apache/tools/ant/types/AbstractFileSet.java View File

@@ -592,7 +592,7 @@ public abstract class AbstractFileSet extends DataType
return getRef(getProject()).hasSelectors();
}
dieOnCircularReference();
return !(selectors.isEmpty());
return !selectors.isEmpty();
}

/**
@@ -605,10 +605,8 @@ public abstract class AbstractFileSet extends DataType
return getRef(getProject()).hasPatterns();
}
dieOnCircularReference();
if (defaultPatterns.hasPatterns(getProject())) {
return true;
}
return additionalPatterns.stream().anyMatch(ps -> ps.hasPatterns(getProject()));
return defaultPatterns.hasPatterns(getProject())
|| additionalPatterns.stream().anyMatch(ps -> ps.hasPatterns(getProject()));
}

/**


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

@@ -113,11 +113,8 @@ public class CommandlineJava implements Cloneable {
}
}
Properties propertySetProperties = mergePropertySets();
for (Enumeration<?> e = propertySetProperties.keys();
e.hasMoreElements();) {
String key = (String) e.nextElement();
String value = propertySetProperties.getProperty(key);
listIt.add("-D" + key + "=" + value);
for (String key : propertySetProperties.stringPropertyNames()) {
listIt.add("-D" + key + "=" + propertySetProperties.getProperty(key));
}
}

@@ -140,10 +137,9 @@ public class CommandlineJava implements Cloneable {
try {
sys = System.getProperties();
Properties p = new Properties();
for (Enumeration<?> e = sys.propertyNames(); e.hasMoreElements();) {
String name = (String) e.nextElement();
for (String name : sys.stringPropertyNames()) {
String value = sys.getProperty(name);
if (name != null && value != null) {
if (value != null) {
p.put(name, value);
}
}


+ 1
- 2
src/main/org/apache/tools/ant/types/PropertySet.java View File

@@ -568,8 +568,7 @@ public class PropertySet extends DataType implements ResourceCollection {
pushAndInvokeCircularReferenceCheck(mapper, stk, p);
}
for (PropertySet propertySet : setRefs) {
pushAndInvokeCircularReferenceCheck(propertySet, stk,
p);
pushAndInvokeCircularReferenceCheck(propertySet, stk, p);
}
setChecked(true);
}


+ 1
- 4
src/main/org/apache/tools/ant/types/resources/PropertyResource.java View File

@@ -120,10 +120,7 @@ public class PropertyResource extends Resource {
*/
@Override
public boolean equals(Object o) {
if (super.equals(o)) {
return true;
}
return isReferenceOrProxy() && getReferencedOrProxied().equals(o);
return super.equals(o) || isReferenceOrProxy() && getReferencedOrProxied().equals(o);
}

/**


+ 3
- 3
src/main/org/apache/tools/ant/types/resources/URLResource.java View File

@@ -310,10 +310,10 @@ public class URLResource extends Resource implements URLProvider {
if (another == null || another.getClass() != getClass()) {
return false;
}
URLResource otheru = (URLResource) another;
URLResource other = (URLResource) another;
return getURL() == null
? otheru.getURL() == null
: getURL().equals(otheru.getURL());
? other.getURL() == null
: getURL().equals(other.getURL());
}

/**


+ 1
- 4
src/main/org/apache/tools/ant/types/resources/comparators/ResourceComparator.java View File

@@ -53,10 +53,7 @@ public abstract class ResourceComparator extends DataType implements Comparator<
if (isReference()) {
return getCheckedRef().equals(o);
}
if (o == null) {
return false;
}
return o == this || o.getClass().equals(getClass());
return o != null && (o == this || o.getClass().equals(getClass()));
}

/**


+ 8
- 11
src/main/org/apache/tools/ant/util/DOMElementWriter.java View File

@@ -434,10 +434,8 @@ public class DOMElementWriter {
}

private String encode(final String value, final boolean encodeWhitespace) {
final int len = value.length();
final StringBuilder sb = new StringBuilder(len);
for (int i = 0; i < len; i++) {
final char c = value.charAt(i);
final StringBuilder sb = new StringBuilder(value.length());
for (final char c : value.toCharArray()) {
switch (c) {
case '<':
sb.append("&lt;");
@@ -522,13 +520,12 @@ public class DOMElementWriter {
while (prevEnd < len) {
final int end = (cdataEndPos < 0 ? len : cdataEndPos);
// Write out stretches of legal characters in the range [prevEnd, end).
for (int prevLegalCharPos = prevEnd; prevLegalCharPos < end;/*empty*/) {
int illegalCharPos;
for (illegalCharPos = prevLegalCharPos; true; ++illegalCharPos) {
if (illegalCharPos >= end
|| !isLegalCharacter(value.charAt(illegalCharPos))) {
break;
}
int prevLegalCharPos = prevEnd;
while (prevLegalCharPos < end) {
int illegalCharPos = prevLegalCharPos;
while (illegalCharPos < end
&& isLegalCharacter(value.charAt(illegalCharPos))) {
++illegalCharPos;
}
out.write(value, prevLegalCharPos, illegalCharPos - prevLegalCharPos);
prevLegalCharPos = illegalCharPos + 1;


+ 2
- 2
src/main/org/apache/tools/ant/util/DateUtils.java View File

@@ -318,12 +318,12 @@ public final class DateUtils {
}
}

final private static ThreadLocal<DateFormat> iso8601WithTimeZone =
private static final ThreadLocal<DateFormat> iso8601WithTimeZone =
ThreadLocal.withInitial(() -> {
// An arbitrary easy-to-read format to normalize to.
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS Z");
});
final private static Pattern iso8601normalizer = Pattern.compile(
private static final Pattern iso8601normalizer = Pattern.compile(
"^(\\d{4,}-\\d{2}-\\d{2})[Tt ]" + // yyyy-MM-dd
"(\\d{2}:\\d{2}(:\\d{2}(\\.\\d{3})?)?) ?" + // HH:mm:ss.SSS
"(?:Z|([+-]\\d{2})(?::?(\\d{2}))?)?$"); // Z


+ 4
- 8
src/main/org/apache/tools/ant/util/FileUtils.java View File

@@ -1615,7 +1615,6 @@ public class FileUtils {
if (0 < toPathStack.length && 0 < fromPathStack.length) {
if (!fromPathStack[0].equals(toPathStack[0])) {
// not the same device (would be "" on Linux/Unix)

return getPath(Arrays.asList(toPathStack));
}
} else {
@@ -1623,14 +1622,11 @@ public class FileUtils {
return getPath(Arrays.asList(toPathStack));
}

int minLength = Math.min(fromPathStack.length, toPathStack.length);
int same = 1; // Used outside the for loop

// get index of parts which are equal
for (;
same < minLength && fromPathStack[same].equals(toPathStack[same]);
same++) {
// Do nothing
int minLength = Math.min(fromPathStack.length, toPathStack.length);
int same = 1;
while (same < minLength && fromPathStack[same].equals(toPathStack[same])) {
same++;
}

List<String> relativePathStack = new ArrayList<>();


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

@@ -338,7 +338,7 @@ public class LayoutPreservingProperties extends Properties {
s = "\n" + s;
} else {
// could be a comment, if first non-whitespace is a # or !
comment = s.matches("^( |\t|\f)*(#|!).*");
comment = s.matches("^([ \t\f])*([#!]).*");
}

// continuation if not a comment and the line ends is an


+ 3
- 3
src/main/org/apache/tools/ant/util/LazyHashtable.java View File

@@ -29,7 +29,7 @@ import java.util.Hashtable;
* @since Ant 1.6
*/
@Deprecated
public class LazyHashtable extends Hashtable {
public class LazyHashtable<K, V> extends Hashtable<K, V> {
// CheckStyle:VisibilityModifier OFF - bc
protected boolean initAllDone = false;
// CheckStyle:VisibilityModifier OFF - bc
@@ -55,7 +55,7 @@ public class LazyHashtable extends Hashtable {
* Get a enumeration over the elements.
* @return an enumeration.
*/
public Enumeration elements() {
public Enumeration<V> elements() {
initAll();
return super.elements();
}
@@ -111,7 +111,7 @@ public class LazyHashtable extends Hashtable {
* Get an enumeration over the keys.
* @return an enumeration.
*/
public Enumeration keys() {
public Enumeration<K> keys() {
initAll();
return super.keys();
}


+ 2
- 7
src/main/org/apache/tools/ant/util/ResourceUtils.java View File

@@ -796,14 +796,9 @@ public class ResourceUtils {
return false;
}
final FileProvider fileResource1 = resource1.as(FileProvider.class);
if (fileResource1 == null) {
return false;
}
final FileProvider fileResource2 = resource2.as(FileProvider.class);
if (fileResource2 == null) {
return false;
}
return FileUtils.getFileUtils().areSame(fileResource1.getFile(), fileResource2.getFile());
return fileResource1 != null && fileResource2 != null
&& FileUtils.getFileUtils().areSame(fileResource1.getFile(), fileResource2.getFile());
}

private static void log(final Project project, final String message) {


+ 1
- 2
src/main/org/apache/tools/ant/util/regexp/Jdk14RegexpMatcher.java View File

@@ -61,9 +61,8 @@ public class Jdk14RegexpMatcher implements RegexpMatcher {
*/
protected Pattern getCompiledPattern(int options)
throws BuildException {
int cOptions = getCompilerOptions(options);
try {
return Pattern.compile(this.pattern, cOptions);
return Pattern.compile(this.pattern, getCompilerOptions(options));
} catch (PatternSyntaxException e) {
throw new BuildException(e);
}


+ 2
- 4
src/main/org/apache/tools/bzip2/BlockSort.java View File

@@ -729,10 +729,8 @@ class BlockSort {
}
break;
} // while x > 0
else {
if ((block[i1] & 0xff) <= (block[i2] & 0xff)) {
break;
}
else if ((block[i1] & 0xff) <= (block[i2] & 0xff)) {
break;
}
} else if ((block[i1 + 5] & 0xff) <= (block[i2 + 5] & 0xff)) {
break;


+ 5
- 3
src/main/org/apache/tools/bzip2/CBZip2InputStream.java View File

@@ -74,7 +74,7 @@ public class CBZip2InputStream extends InputStream implements BZip2Constants {

private int currentChar = -1;

private static final int EOF = 0;
private static final int EOF = 0;
private static final int START_BLOCK_STATE = 1;
private static final int RAND_PART_A_STATE = 2;
private static final int RAND_PART_B_STATE = 3;
@@ -85,8 +85,10 @@ public class CBZip2InputStream extends InputStream implements BZip2Constants {

private int currentState = START_BLOCK_STATE;

private int storedBlockCRC, storedCombinedCRC;
private int computedBlockCRC, computedCombinedCRC;
private int storedBlockCRC;
private int storedCombinedCRC;
private int computedBlockCRC;
private int computedCombinedCRC;

// Variables used by setup* methods exclusively



+ 5
- 13
src/main/org/apache/tools/tar/TarEntry.java View File

@@ -343,10 +343,7 @@ public class TarEntry implements TarConstants {
*/
@Override
public boolean equals(Object it) {
if (it == null || getClass() != it.getClass()) {
return false;
}
return equals((TarEntry) it);
return it != null && getClass() == it.getClass() && equals((TarEntry) it);
}

/**
@@ -425,7 +422,7 @@ public class TarEntry implements TarConstants {
*/
@Deprecated
public int getUserId() {
return (int) (userId & 0xffffffff);
return (int) userId;
}

/**
@@ -466,7 +463,7 @@ public class TarEntry implements TarConstants {
*/
@Deprecated
public int getGroupId() {
return (int) (groupId & 0xffffffff);
return (int) groupId;
}

/**
@@ -753,13 +750,8 @@ public class TarEntry implements TarConstants {
* @return <i>true</i> if it is a 'normal' file
*/
public boolean isFile() {
if (file != null) {
return file.isFile();
}
if (linkFlag == LF_OLDNORM || linkFlag == LF_NORMAL) {
return true;
}
return !getName().endsWith("/");
return file != null ? file.isFile()
: linkFlag == LF_OLDNORM || linkFlag == LF_NORMAL || !getName().endsWith("/");
}

/**


+ 2
- 4
src/main/org/apache/tools/zip/ZipEightByteInteger.java View File

@@ -207,10 +207,8 @@ public final class ZipEightByteInteger {
*/
@Override
public boolean equals(Object o) {
if (o instanceof ZipEightByteInteger) {
return value.equals(((ZipEightByteInteger) o).getValue());
}
return false;
return o instanceof ZipEightByteInteger
&& value.equals(((ZipEightByteInteger) o).getValue());
}

/**


+ 1
- 4
src/main/org/apache/tools/zip/ZipLong.java View File

@@ -168,10 +168,7 @@ public final class ZipLong implements Cloneable {
*/
@Override
public boolean equals(Object o) {
if (o instanceof ZipLong) {
return value == ((ZipLong) o).getValue();
}
return false;
return o instanceof ZipLong && value == ((ZipLong) o).getValue();
}

/**


+ 1
- 4
src/main/org/apache/tools/zip/ZipShort.java View File

@@ -133,10 +133,7 @@ public final class ZipShort implements Cloneable {
*/
@Override
public boolean equals(Object o) {
if (o instanceof ZipShort) {
return value == ((ZipShort) o).getValue();
}
return false;
return o instanceof ZipShort && value == ((ZipShort) o).getValue();
}

/**


+ 3
- 2
src/tests/junit/org/apache/tools/ant/taskdefs/DirnameTest.java View File

@@ -29,6 +29,8 @@ import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;

import java.io.File;

/**
*/
public class DirnameTest {
@@ -75,8 +77,7 @@ public class DirnameTest {
public void test4() {
assumeFalse("Test not possible on DOS or Netware family OS", Os.isFamily("netware") || Os.isFamily("dos"));
buildRule.executeTarget("test4");
String filesep = System.getProperty("file.separator");
String expected = filesep + "usr" + filesep + "local";
String expected = File.separator + "usr" + File.separator + "local";
String checkprop = buildRule.getProject().getProperty("local.dir");
assertEquals("dirname failed", expected, checkprop);
}


Loading…
Cancel
Save