diff --git a/platform/lang-impl/src/com/intellij/psi/formatter/CompositeWhiteSpaceFormattingStrategy.java b/platform/lang-impl/src/com/intellij/psi/formatter/CompositeWhiteSpaceFormattingStrategy.java index c00986e54832..3d18061beac2 100644 --- a/platform/lang-impl/src/com/intellij/psi/formatter/CompositeWhiteSpaceFormattingStrategy.java +++ b/platform/lang-impl/src/com/intellij/psi/formatter/CompositeWhiteSpaceFormattingStrategy.java @@ -37,8 +37,12 @@ public class CompositeWhiteSpaceFormattingStrategy implements WhiteSpaceFormatti private final List myStrategies = new ArrayList(); private boolean myReplaceDefaultStrategy; - public CompositeWhiteSpaceFormattingStrategy(@NotNull Collection strategies) { - myStrategies.addAll(strategies); + public CompositeWhiteSpaceFormattingStrategy(@NotNull Collection strategies) + throws IllegalArgumentException + { + for (WhiteSpaceFormattingStrategy strategy : strategies) { + addStrategy(strategy); + } } @Override @@ -64,9 +68,9 @@ public class CompositeWhiteSpaceFormattingStrategy implements WhiteSpaceFormatti return myReplaceDefaultStrategy; } - public void addStrategy(@NotNull WhiteSpaceFormattingStrategy strategy) throws IllegalStateException { + public void addStrategy(@NotNull WhiteSpaceFormattingStrategy strategy) throws IllegalArgumentException { if (myReplaceDefaultStrategy && strategy.replaceDefaultStrategy()) { - throw new IllegalStateException(String.format( + throw new IllegalArgumentException(String.format( "Can't combine strategy '%s' with already registered strategies (%s). Reason: given strategy is marked to replace " + "all existing strategies but strategy with such characteristics is already registered", strategy, myStrategies ));