I'm sure that my changes in most cases are of the paranoid type, ResourceUtils and FixCRLF look as if they really had a chance of running into trouble. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@274397 13f79535-47bb-0310-9956-ffa450edef68master
@@ -324,7 +324,7 @@ public class RuntimeConfigurable implements Serializable { | |||||
id = (String) attributeMap.get("id"); | id = (String) attributeMap.get("id"); | ||||
if (characters.length() != 0) { | if (characters.length() != 0) { | ||||
ProjectHelper.addText(p, wrappedObject, characters.toString()); | |||||
ProjectHelper.addText(p, wrappedObject, characters.substring(0)); | |||||
} | } | ||||
Enumeration enum = children.elements(); | Enumeration enum = children.elements(); | ||||
@@ -1,7 +1,7 @@ | |||||
/* | /* | ||||
* The Apache Software License, Version 1.1 | * The Apache Software License, Version 1.1 | ||||
* | * | ||||
* Copyright (c) 2002-2002 The Apache Software Foundation. All rights | |||||
* Copyright (c) 2002-2003 The Apache Software Foundation. All rights | |||||
* reserved. | * reserved. | ||||
* | * | ||||
* Redistribution and use in source and binary forms, with or without | * Redistribution and use in source and binary forms, with or without | ||||
@@ -158,7 +158,7 @@ public class MailLogger extends DefaultLogger { | |||||
String subject = getValue(properties, prefix + ".subject", | String subject = getValue(properties, prefix + ".subject", | ||||
(success) ? "Build Success" : "Build Failure"); | (success) ? "Build Success" : "Build Failure"); | ||||
sendMail(mailhost, port, from, toList, subject, buffer.toString()); | |||||
sendMail(mailhost, port, from, toList, subject, buffer.substring(0)); | |||||
} catch (Exception e) { | } catch (Exception e) { | ||||
System.out.println("MailLogger failed to send e-mail!"); | System.out.println("MailLogger failed to send e-mail!"); | ||||
e.printStackTrace(System.err); | e.printStackTrace(System.err); | ||||
@@ -1,7 +1,7 @@ | |||||
/* | /* | ||||
* The Apache Software License, Version 1.1 | * The Apache Software License, Version 1.1 | ||||
* | * | ||||
* Copyright (c) 2000-2002 The Apache Software Foundation. All rights | |||||
* Copyright (c) 2000-2003 The Apache Software Foundation. All rights | |||||
* reserved. | * reserved. | ||||
* | * | ||||
* Redistribution and use in source and binary forms, with or without | * Redistribution and use in source and binary forms, with or without | ||||
@@ -294,8 +294,8 @@ public class AntStructure extends Task { | |||||
sb.append(">"); | sb.append(">"); | ||||
out.println(sb); | out.println(sb); | ||||
sb.setLength(0); | |||||
sb.append("<!ATTLIST ").append(name); | |||||
sb = new StringBuffer("<!ATTLIST "); | |||||
sb.append(name); | |||||
sb.append(lSep).append(" id ID #IMPLIED"); | sb.append(lSep).append(" id ID #IMPLIED"); | ||||
enum = ih.getAttributes(); | enum = ih.getAttributes(); | ||||
@@ -412,7 +412,7 @@ public class Concat extends Task { | |||||
if (textBuffer != null) { | if (textBuffer != null) { | ||||
reader = new StringReader( | reader = new StringReader( | ||||
getProject().replaceProperties(textBuffer.toString())); | |||||
getProject().replaceProperties(textBuffer.substring(0))); | |||||
} else { | } else { | ||||
reader = new MultiReader(); | reader = new MultiReader(); | ||||
} | } | ||||
@@ -476,7 +476,7 @@ public class Concat extends Task { | |||||
*/ | */ | ||||
private void sanitizeText() { | private void sanitizeText() { | ||||
if (textBuffer != null) { | if (textBuffer != null) { | ||||
if (textBuffer.toString().trim().length() == 0) { | |||||
if (textBuffer.substring(0).trim().length() == 0) { | |||||
textBuffer = null; | textBuffer = null; | ||||
} | } | ||||
} | } | ||||
@@ -1,7 +1,7 @@ | |||||
/* | /* | ||||
* The Apache Software License, Version 1.1 | * The Apache Software License, Version 1.1 | ||||
* | * | ||||
* Copyright (c) 2000-2002 The Apache Software Foundation. All rights | |||||
* Copyright (c) 2000-2003 The Apache Software Foundation. All rights | |||||
* reserved. | * reserved. | ||||
* | * | ||||
* Redistribution and use in source and binary forms, with or without | * Redistribution and use in source and binary forms, with or without | ||||
@@ -720,7 +720,7 @@ public class FixCRLF extends MatchingTask { | |||||
// process sequences of white space | // process sequences of white space | ||||
// first convert all tabs to spaces | // first convert all tabs to spaces | ||||
linebuf.setLength(0); | |||||
linebuf = new StringBuffer(); | |||||
while ((nextTab = line.indexOf((int) '\t', place)) >= 0) { | while ((nextTab = line.indexOf((int) '\t', place)) >= 0) { | ||||
linebuf.append(line.substring(place, nextTab)); // copy to the TAB | linebuf.append(line.substring(place, nextTab)); // copy to the TAB | ||||
col += nextTab - place; | col += nextTab - place; | ||||
@@ -731,7 +731,7 @@ public class FixCRLF extends MatchingTask { | |||||
} // end of while | } // end of while | ||||
linebuf.append(line.substring(place, line.length())); | linebuf.append(line.substring(place, line.length())); | ||||
// if converting to spaces, all finished | // if converting to spaces, all finished | ||||
String linestring = new String(linebuf.toString()); | |||||
String linestring = new String(linebuf.substring(0)); | |||||
if (tabs == REMOVE) { | if (tabs == REMOVE) { | ||||
try { | try { | ||||
outWriter.write(linestring); | outWriter.write(linestring); | ||||
@@ -740,7 +740,7 @@ public class FixCRLF extends MatchingTask { | |||||
} // end of try-catch | } // end of try-catch | ||||
} else { // tabs == ADD | } else { // tabs == ADD | ||||
int tabCol; | int tabCol; | ||||
linebuf2.setLength(0); | |||||
linebuf2 = new StringBuffer(); | |||||
place = 0; | place = 0; | ||||
col = bufline.getColumn(); | col = bufline.getColumn(); | ||||
int placediff = col - 0; | int placediff = col - 0; | ||||
@@ -782,7 +782,7 @@ public class FixCRLF extends MatchingTask { | |||||
linebuf2.append(linestring.substring(place, linestring.length())); | linebuf2.append(linestring.substring(place, linestring.length())); | ||||
try { | try { | ||||
outWriter.write(linebuf2.toString()); | |||||
outWriter.write(linebuf2.substring(0)); | |||||
} catch (IOException e) { | } catch (IOException e) { | ||||
throw new BuildException(e); | throw new BuildException(e); | ||||
} // end of try-catch | } // end of try-catch | ||||
@@ -826,8 +826,8 @@ public class FixCRLF extends MatchingTask { | |||||
int ch = -1; | int ch = -1; | ||||
int eolcount = 0; | int eolcount = 0; | ||||
eolStr.setLength(0); | |||||
line.setLength(0); | |||||
eolStr = new StringBuffer(); | |||||
line = new StringBuffer(); | |||||
try { | try { | ||||
ch = reader.read(); | ch = reader.read(); | ||||
@@ -907,7 +907,7 @@ public class FixCRLF extends MatchingTask { | |||||
} | } | ||||
public String getEofStr() { | public String getEofStr() { | ||||
return eofStr.toString(); | |||||
return eofStr.substring(0); | |||||
} | } | ||||
public int getState() { | public int getState() { | ||||
@@ -928,7 +928,7 @@ public class FixCRLF extends MatchingTask { | |||||
throw new NoSuchElementException("OneLiner"); | throw new NoSuchElementException("OneLiner"); | ||||
} | } | ||||
BufferLine tmpLine = | BufferLine tmpLine = | ||||
new BufferLine(line.toString(), eolStr.toString()); | |||||
new BufferLine(line.toString(), eolStr.substring(0)); | |||||
nextLine(); | nextLine(); | ||||
return tmpLine; | return tmpLine; | ||||
} | } | ||||
@@ -362,7 +362,7 @@ public class Javadoc extends Task { | |||||
* @return the current text. | * @return the current text. | ||||
*/ | */ | ||||
public String getText() { | public String getText() { | ||||
return text.toString(); | |||||
return text.substring(0); | |||||
} | } | ||||
} | } | ||||
@@ -1,7 +1,7 @@ | |||||
/* | /* | ||||
* The Apache Software License, Version 1.1 | * The Apache Software License, Version 1.1 | ||||
* | * | ||||
* Copyright (c) 2000-2002 The Apache Software Foundation. All rights | |||||
* Copyright (c) 2000-2003 The Apache Software Foundation. All rights | |||||
* reserved. | * reserved. | ||||
* | * | ||||
* Redistribution and use in source and binary forms, with or without | * Redistribution and use in source and binary forms, with or without | ||||
@@ -124,7 +124,7 @@ public class Replace extends MatchingTask { | |||||
} | } | ||||
public String getText() { | public String getText() { | ||||
return buf.toString(); | |||||
return buf.substring(0); | |||||
} | } | ||||
} | } | ||||
@@ -555,7 +555,7 @@ public class SQLExec extends JDBCTask { | |||||
} | } | ||||
line.append(md.getColumnName(columnCount)); | line.append(md.getColumnName(columnCount)); | ||||
out.println(line); | out.println(line); | ||||
line.setLength(0); | |||||
line = new StringBuffer(); | |||||
} | } | ||||
while (rs.next()) { | while (rs.next()) { | ||||
boolean first = true; | boolean first = true; | ||||
@@ -573,7 +573,7 @@ public class SQLExec extends JDBCTask { | |||||
line.append(columnValue); | line.append(columnValue); | ||||
} | } | ||||
out.println(line); | out.println(line); | ||||
line.setLength(0); | |||||
line = new StringBuffer(); | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -1,7 +1,7 @@ | |||||
/* | /* | ||||
* The Apache Software License, Version 1.1 | * The Apache Software License, Version 1.1 | ||||
* | * | ||||
* Copyright (c) 2002 The Apache Software Foundation. All rights | |||||
* Copyright (c) 2002-2003 The Apache Software Foundation. All rights | |||||
* reserved. | * reserved. | ||||
* | * | ||||
* Redistribution and use in source and binary forms, with or without | * Redistribution and use in source and binary forms, with or without | ||||
@@ -162,7 +162,7 @@ public class Message extends ProjectComponent { | |||||
freader.close(); | freader.close(); | ||||
} | } | ||||
} else { | } else { | ||||
out.println(getProject().replaceProperties(buffer.toString())); | |||||
out.println(getProject().replaceProperties(buffer.substring(0))); | |||||
} | } | ||||
} | } | ||||
@@ -365,7 +365,7 @@ public class ReplaceRegExp extends Task { | |||||
pw.print(res); | pw.print(res); | ||||
pw.print('\r'); | pw.print('\r'); | ||||
linebuf.setLength(0); | |||||
linebuf = new StringBuffer(); | |||||
// hasCR is still true (for the second one) | // hasCR is still true (for the second one) | ||||
} else { | } else { | ||||
// first CR in this line | // first CR in this line | ||||
@@ -388,7 +388,7 @@ public class ReplaceRegExp extends Task { | |||||
} | } | ||||
pw.print('\n'); | pw.print('\n'); | ||||
linebuf.setLength(0); | |||||
linebuf = new StringBuffer(); | |||||
} else { // any other char | } else { // any other char | ||||
if ((hasCR) || (c < 0)) { | if ((hasCR) || (c < 0)) { | ||||
// Mac-style linebreak or EOF (or both) | // Mac-style linebreak or EOF (or both) | ||||
@@ -405,7 +405,7 @@ public class ReplaceRegExp extends Task { | |||||
hasCR = false; | hasCR = false; | ||||
} | } | ||||
linebuf.setLength(0); | |||||
linebuf = new StringBuffer(); | |||||
} | } | ||||
if (c >= 0) { | if (c >= 0) { | ||||
@@ -640,7 +640,7 @@ public class JUnitTask extends Task { | |||||
formatterArg.append(outFile); | formatterArg.append(outFile); | ||||
} | } | ||||
cmd.createArgument().setValue(formatterArg.toString()); | cmd.createArgument().setValue(formatterArg.toString()); | ||||
formatterArg.setLength(0); | |||||
formatterArg = new StringBuffer(); | |||||
} | } | ||||
// Create a temporary file to pass the Ant properties to the | // Create a temporary file to pass the Ant properties to the | ||||
@@ -145,7 +145,7 @@ public class P4Add extends P4Base { | |||||
filelist.append(" ").append('"').append(f.getAbsolutePath()).append('"'); | filelist.append(" ").append('"').append(f.getAbsolutePath()).append('"'); | ||||
if (filelist.length() > cmdLength) { | if (filelist.length() > cmdLength) { | ||||
execP4Add(filelist); | execP4Add(filelist); | ||||
filelist.setLength(0); | |||||
filelist = new StringBuffer(); | |||||
} | } | ||||
} | } | ||||
if (filelist.length() > 0) { | if (filelist.length() > 0) { | ||||
@@ -165,7 +165,7 @@ public class P4Fstat extends P4Base { | |||||
if (filelist.length() > cmdLength) { | if (filelist.length() > cmdLength) { | ||||
execP4Fstat(filelist); | execP4Fstat(filelist); | ||||
filelist.setLength(0); | |||||
filelist = new StringBuffer(); | |||||
} | } | ||||
} | } | ||||
if (filelist.length() > 0) { | if (filelist.length() > 0) { | ||||
@@ -1,7 +1,7 @@ | |||||
/* | /* | ||||
* The Apache Software License, Version 1.1 | * The Apache Software License, Version 1.1 | ||||
* | * | ||||
* Copyright (c) 2001-2002 The Apache Software Foundation. All rights | |||||
* Copyright (c) 2001-2003 The Apache Software Foundation. All rights | |||||
* reserved. | * reserved. | ||||
* | * | ||||
* Redistribution and use in source and binary forms, with or without | * Redistribution and use in source and binary forms, with or without | ||||
@@ -122,8 +122,8 @@ public class Utils { | |||||
StringBuffer param = new StringBuffer(); | StringBuffer param = new StringBuffer(); | ||||
i++; | i++; | ||||
while ((i = descriptor2java(descriptor, i, param)) < descriptor.length()) { | while ((i = descriptor2java(descriptor, i, param)) < descriptor.length()) { | ||||
params.add(param.toString()); | |||||
param.setLength(0); // reset | |||||
params.add(param.substring(0)); | |||||
param = new StringBuffer(); | |||||
if (descriptor.charAt(i) == ')') { | if (descriptor.charAt(i) == ')') { | ||||
i++; | i++; | ||||
break; | break; | ||||
@@ -1,7 +1,7 @@ | |||||
/* | /* | ||||
* The Apache Software License, Version 1.1 | * The Apache Software License, Version 1.1 | ||||
* | * | ||||
* Copyright (c) 2000-2002 The Apache Software Foundation. All rights | |||||
* Copyright (c) 2000-2003 The Apache Software Foundation. All rights | |||||
* reserved. | * reserved. | ||||
* | * | ||||
* Redistribution and use in source and binary forms, with or without | * Redistribution and use in source and binary forms, with or without | ||||
@@ -399,7 +399,7 @@ public class Commandline implements Cloneable { | |||||
} else if (" ".equals(nextTok)) { | } else if (" ".equals(nextTok)) { | ||||
if (lastTokenHasBeenQuoted || current.length() != 0) { | if (lastTokenHasBeenQuoted || current.length() != 0) { | ||||
v.addElement(current.toString()); | v.addElement(current.toString()); | ||||
current.setLength(0); | |||||
current = new StringBuffer(); | |||||
} | } | ||||
} else { | } else { | ||||
current.append(nextTok); | current.append(nextTok); | ||||
@@ -397,7 +397,6 @@ public class Path extends DataType implements Cloneable { | |||||
PathTokenizer tok = new PathTokenizer(source); | PathTokenizer tok = new PathTokenizer(source); | ||||
StringBuffer element = new StringBuffer(); | StringBuffer element = new StringBuffer(); | ||||
while (tok.hasMoreTokens()) { | while (tok.hasMoreTokens()) { | ||||
element.setLength(0); | |||||
String pathElement = tok.nextToken(); | String pathElement = tok.nextToken(); | ||||
try { | try { | ||||
element.append(resolveFile(project, pathElement)); | element.append(resolveFile(project, pathElement)); | ||||
@@ -410,6 +409,7 @@ public class Path extends DataType implements Cloneable { | |||||
translateFileSep(element, i); | translateFileSep(element, i); | ||||
} | } | ||||
result.addElement(element.toString()); | result.addElement(element.toString()); | ||||
element = new StringBuffer(); | |||||
} | } | ||||
String[] res = new String[result.size()]; | String[] res = new String[result.size()]; | ||||
result.copyInto(res); | result.copyInto(res); | ||||
@@ -80,7 +80,6 @@ import org.w3c.dom.Text; | |||||
public class DOMElementWriter { | public class DOMElementWriter { | ||||
private static String lSep = System.getProperty("line.separator"); | private static String lSep = System.getProperty("line.separator"); | ||||
private StringBuffer sb = new StringBuffer(); | |||||
/** | /** | ||||
* Don't try to be too smart but at least recognize the predefined | * Don't try to be too smart but at least recognize the predefined | ||||
@@ -204,7 +203,7 @@ public class DOMElementWriter { | |||||
* drop characters that are illegal in XML documents. | * drop characters that are illegal in XML documents. | ||||
*/ | */ | ||||
public String encode(String value) { | public String encode(String value) { | ||||
sb.setLength(0); | |||||
StringBuffer sb = new StringBuffer(); | |||||
int len = value.length(); | int len = value.length(); | ||||
for (int i = 0; i < len; i++) { | for (int i = 0; i < len; i++) { | ||||
char c = value.charAt(i); | char c = value.charAt(i); | ||||
@@ -254,7 +253,7 @@ public class DOMElementWriter { | |||||
*/ | */ | ||||
public String encodedata(final String value) { | public String encodedata(final String value) { | ||||
sb.setLength(0); | |||||
StringBuffer sb = new StringBuffer(); | |||||
for (int i = 0; i < value.length(); ++i) { | for (int i = 0; i < value.length(); ++i) { | ||||
char c = value.charAt(i); | char c = value.charAt(i); | ||||
if (isLegalCharacter(c)) { | if (isLegalCharacter(c)) { | ||||
@@ -1,7 +1,7 @@ | |||||
/* | /* | ||||
* The Apache Software License, Version 1.1 | * The Apache Software License, Version 1.1 | ||||
* | * | ||||
* Copyright (c) 2000,2002 The Apache Software Foundation. All rights | |||||
* Copyright (c) 2000,2002-2003 The Apache Software Foundation. All rights | |||||
* reserved. | * reserved. | ||||
* | * | ||||
* Redistribution and use in source and binary forms, with or without | * Redistribution and use in source and binary forms, with or without | ||||
@@ -133,7 +133,7 @@ public class RegexpPatternMapper implements FileNameMapper { | |||||
result.append(to[i]); | result.append(to[i]); | ||||
} | } | ||||
} | } | ||||
return result.toString(); | |||||
return result.substring(0); | |||||
} | } | ||||
} | } |
@@ -89,7 +89,6 @@ public class ResourceUtils { | |||||
FileNameMapper mapper, | FileNameMapper mapper, | ||||
ResourceFactory targets) { | ResourceFactory targets) { | ||||
long now = (new java.util.Date()).getTime(); | long now = (new java.util.Date()).getTime(); | ||||
StringBuffer targetList = new StringBuffer(); | |||||
/* | /* | ||||
If we're on Windows, we have to munge the time up to 2 secs to | If we're on Windows, we have to munge the time up to 2 secs to | ||||
@@ -116,7 +115,7 @@ public class ResourceUtils { | |||||
.replace('/', File.separatorChar)); | .replace('/', File.separatorChar)); | ||||
if (targetnames != null) { | if (targetnames != null) { | ||||
boolean added = false; | boolean added = false; | ||||
targetList.setLength(0); | |||||
StringBuffer targetList = new StringBuffer(); | |||||
for (int ctarget = 0; !added && ctarget < targetnames.length; | for (int ctarget = 0; !added && ctarget < targetnames.length; | ||||
ctarget++) { | ctarget++) { | ||||
Resource atarget = | Resource atarget = | ||||