You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by bo...@apache.org on 2017/10/13 06:43:05 UTC

[1/2] ant git commit: Fix the problem of using '+=' operator to concatenate strings a in a loop.

Repository: ant
Updated Branches:
  refs/heads/1.9.x f8b5fda65 -> 013e9159e


Fix the problem of using '+=' operator to concatenate strings a in a loop.

The method is building a String using concatenation in a loop.
In each iteration, the String is converted to a StringBuilder, appended to, and converted back to a String.
This can lead to a cost quadratic in the number of iterations, as the growing string is recopied in each iteration.
Better performance can be obtained by using a StringBuilder explicitly.
http://findbugs.sourceforge.net/bugDescriptions.html#SBSC_USE_STRINGBUFFER_CONCATENATION


Project: http://git-wip-us.apache.org/repos/asf/ant/repo
Commit: http://git-wip-us.apache.org/repos/asf/ant/commit/c141ef40
Tree: http://git-wip-us.apache.org/repos/asf/ant/tree/c141ef40
Diff: http://git-wip-us.apache.org/repos/asf/ant/diff/c141ef40

Branch: refs/heads/1.9.x
Commit: c141ef400975be45469a0f7e4fcb2d9c5d9e6a1b
Parents: f8b5fda
Author: Kui LIU <br...@gmail.com>
Authored: Wed Oct 11 15:01:48 2017 +0200
Committer: Stefan Bodewig <bo...@apache.org>
Committed: Fri Oct 13 08:32:09 2017 +0200

----------------------------------------------------------------------
 src/main/org/apache/tools/ant/Main.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ant/blob/c141ef40/src/main/org/apache/tools/ant/Main.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/Main.java b/src/main/org/apache/tools/ant/Main.java
index b104fd3..a7d4776 100644
--- a/src/main/org/apache/tools/ant/Main.java
+++ b/src/main/org/apache/tools/ant/Main.java
@@ -1292,9 +1292,9 @@ public class Main implements AntMain {
         // now, start printing the targets and their descriptions
         final String lSep = System.getProperty("line.separator");
         // got a bit annoyed that I couldn't find a pad function
-        String spaces = "    ";
+        StringBuilder spaces = new StringBuilder("    ");
         while (spaces.length() <= maxlen) {
-            spaces += spaces;
+            spaces.append(spaces);
         }
         final StringBuilder msg = new StringBuilder();
         msg.append(heading).append(lSep).append(lSep);


[2/2] ant git commit: Fix the inefficient use of keySet iterator with entrySet iterator.

Posted by bo...@apache.org.
Fix the inefficient use of keySet iterator with entrySet iterator.

The current source code accesses the key and value of a Hashtable entry, using a key that is retrieved from a keySet iterator.
It is more efficient to use an iterator on the entrySet of the Hashtable, to avoid the Map.get(key) lookup.


Project: http://git-wip-us.apache.org/repos/asf/ant/repo
Commit: http://git-wip-us.apache.org/repos/asf/ant/commit/013e9159
Tree: http://git-wip-us.apache.org/repos/asf/ant/tree/013e9159
Diff: http://git-wip-us.apache.org/repos/asf/ant/diff/013e9159

Branch: refs/heads/1.9.x
Commit: 013e9159e927cf96493a5f8577cfd2807cb045c8
Parents: c141ef4
Author: Kui LIU <br...@gmail.com>
Authored: Wed Oct 11 14:18:19 2017 +0200
Committer: Stefan Bodewig <bo...@apache.org>
Committed: Fri Oct 13 08:42:41 2017 +0200

----------------------------------------------------------------------
 src/main/org/apache/tools/ant/filters/ReplaceTokens.java | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ant/blob/013e9159/src/main/org/apache/tools/ant/filters/ReplaceTokens.java
----------------------------------------------------------------------
diff --git a/src/main/org/apache/tools/ant/filters/ReplaceTokens.java b/src/main/org/apache/tools/ant/filters/ReplaceTokens.java
index 74da64a..bcbc312 100644
--- a/src/main/org/apache/tools/ant/filters/ReplaceTokens.java
+++ b/src/main/org/apache/tools/ant/filters/ReplaceTokens.java
@@ -23,6 +23,7 @@ import java.io.InputStream;
 import java.io.Reader;
 import java.util.Enumeration;
 import java.util.Hashtable;
+import java.util.Map;
 import java.util.Properties;
 import java.util.SortedMap;
 import java.util.TreeMap;
@@ -116,8 +117,8 @@ public final class ReplaceTokens
 
         if (!resolvedTokensBuilt) {
             // build the resolved tokens tree map.
-            for (String key : hash.keySet()) {
-                resolvedTokens.put(beginToken + key + endToken, hash.get(key));
+            for (Map.Entry<String, String> entry : hash.entrySet()) {
+                resolvedTokens.put(beginToken + entry.getKey() + endToken, entry.getValue());
             }
             resolvedTokensBuilt = true;
         }