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); } /**
