no separate exception for conflicts
authorMaxim.Mossienko <Maxim.Mossienko@jetbrains.com>
Wed, 28 Oct 2009 09:47:33 +0000 (12:47 +0300)
committerMaxim.Mossienko <Maxim.Mossienko@jetbrains.com>
Wed, 28 Oct 2009 09:47:33 +0000 (12:47 +0300)
platform/lang-impl/src/com/intellij/refactoring/BaseRefactoringProcessor.java

index 1ece805c0359046e01d167257b45d63ab13310ee..e23f0549a2c610a41de1c87db8420d8f2cddd7c6 100644 (file)
@@ -464,9 +464,30 @@ public abstract class BaseRefactoringProcessor {
     performPsiSpoilingRefactoring();
   }
 
+  public static class ConflictsInTestsException extends RuntimeException {
+      private final Collection<? extends String> messages;
+
+      public ConflictsInTestsException(Collection<? extends String> messages) {
+        this.messages = messages;
+      }
+
+    public Collection<String> getMessages() {
+        List<String> result = new ArrayList<String>(messages);
+        for (int i = 0; i < messages.size(); i++) {
+          result.set(i, result.get(i).replaceAll("<[^>]+>", ""));
+        }
+        return result;
+      }
+
+    @Override
+    public String getMessage() {
+      return StringUtil.join(messages, "\n");
+    }
+  }
+
   protected boolean showConflicts(final MultiMap<PsiElement,String> conflicts) {
     if (!conflicts.isEmpty() && ApplicationManager.getApplication().isUnitTestMode()) {
-      throw new RuntimeException(StringUtil.join(conflicts.values(), "\n"));
+      throw new ConflictsInTestsException(conflicts.values());
     }
 
     if (myPrepareSuccessfulSwingThreadCallback != null && !conflicts.isEmpty()) {