Exceptions.stripBoringPrefixes calls removeAllFromStart once with all prefixes


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/702e1205
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/702e1205
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/702e1205

Branch: refs/heads/master
Commit: 702e1205811920e9a4c9c00cf79a523bfe200b23
Parents: 28f7c59
Author: Sam Corbett <[email protected]>
Authored: Tue May 12 20:28:48 2015 +0100
Committer: Sam Corbett <[email protected]>
Committed: Thu May 14 11:05:31 2015 +0100

----------------------------------------------------------------------
 .../brooklyn/util/exceptions/Exceptions.java    | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/702e1205/utils/common/src/main/java/brooklyn/util/exceptions/Exceptions.java
----------------------------------------------------------------------
diff --git 
a/utils/common/src/main/java/brooklyn/util/exceptions/Exceptions.java 
b/utils/common/src/main/java/brooklyn/util/exceptions/Exceptions.java
index 4303e4e..57dbf54 100644
--- a/utils/common/src/main/java/brooklyn/util/exceptions/Exceptions.java
+++ b/utils/common/src/main/java/brooklyn/util/exceptions/Exceptions.java
@@ -24,6 +24,7 @@ import static 
com.google.common.base.Throwables.getCausalChain;
 
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.UndeclaredThrowableException;
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 import java.util.concurrent.ExecutionException;
@@ -35,6 +36,7 @@ import com.google.common.base.Predicates;
 import com.google.common.base.Throwables;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
 
 public class Exceptions {
 
@@ -69,14 +71,16 @@ public class Exceptions {
     }
 
     private static String stripBoringPrefixes(String s) {
-        String was;
-        do {
-            was = s;
-            for (Class<? extends Throwable> type: 
BORING_PREFIX_THROWABLE_EXACT_TYPES) {
-                s = Strings.removeAllFromStart(s, type.getCanonicalName(), 
type.getName(), type.getSimpleName(), ":", " ");
-            }
-        } while (!was.equals(s));
-        return s;
+        ArrayList<String> prefixes = Lists.newArrayListWithCapacity(2 + 
BORING_PREFIX_THROWABLE_EXACT_TYPES.size() * 3);
+        for (Class<? extends Throwable> type : 
BORING_PREFIX_THROWABLE_EXACT_TYPES) {
+            prefixes.add(type.getCanonicalName());
+            prefixes.add(type.getName());
+            prefixes.add(type.getSimpleName());
+        }
+        prefixes.add(":");
+        prefixes.add(" ");
+        String[] ps = prefixes.toArray(new String[prefixes.size()]);
+        return Strings.removeAllFromStart(s, ps);
     }
 
     /**

Reply via email to