EA-64506 (correct handling of empty file header template) appcode/140.2297 clion/140.2298
authorRoman Shevchenko <roman.shevchenko@jetbrains.com>
Sun, 8 Feb 2015 11:09:52 +0000 (12:09 +0100)
committerRoman Shevchenko <roman.shevchenko@jetbrains.com>
Sun, 8 Feb 2015 11:09:52 +0000 (12:09 +0100)
java/java-impl/src/com/intellij/codeInspection/defaultFileTemplateUsage/FileHeaderChecker.java
java/java-tests/testSrc/com/intellij/codeInspection/DefaultFileTemplateUsageInspectionTest.java

index d79baf1abf0906df5c60f56489f003efbf953d06..d3a707544a49f7481995d96f9b6e59388ae9b59a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2014 JetBrains s.r.o.
+ * Copyright 2000-2015 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -102,15 +102,20 @@ public class FileHeaderChecker {
 
         String newText;
         try {
-          newText = template.getText(computeProperties(matcher, offsetToProperty, project));
+          newText = template.getText(computeProperties(matcher, offsetToProperty, project)).trim();
         }
         catch (IOException e) {
           LOG.error(e);
           return;
         }
 
-        PsiDocComment newComment = JavaPsiFacade.getElementFactory(project).createDocCommentFromText(newText);
-        element.replace(newComment);
+        if (!newText.isEmpty()) {
+          PsiDocComment newComment = JavaPsiFacade.getElementFactory(project).createDocCommentFromText(newText);
+          element.replace(newComment);
+        }
+        else {
+          element.delete();
+        }
       }
     };
 
index 3230fa6f1483aca18429e6a548aeae0703aece5d..87c1cdf583903c1739db5938f4c8e5a323f2c54f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2014 JetBrains s.r.o.
+ * Copyright 2000-2015 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -30,8 +30,12 @@ public class DefaultFileTemplateUsageInspectionTest extends LightCodeInsightFixt
   public void testX3() { doTest(); }
   public void testRange() { doTest(); }
 
-  public void doTest() {
+  private void doTest() {
     myFixture.enableInspections(new DefaultFileTemplateUsageInspection());
     myFixture.testHighlighting(true, false, true, getTestName(false) + ".java");
   }
+
+  public void testWtf() throws Exception {
+
+  }
 }