diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/PsiJavaParserFacadeImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/PsiJavaParserFacadeImpl.java index 2ededda029f8..f4b54f174cfd 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/PsiJavaParserFacadeImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/PsiJavaParserFacadeImpl.java @@ -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. @@ -182,9 +182,11 @@ public class PsiJavaParserFacadeImpl implements PsiJavaParserFacade { @NotNull @Override public PsiDocComment createDocCommentFromText(@NotNull final String text) throws IncorrectOperationException { - final PsiMethod method = createMethodFromText(StringUtil.join(text, "void m();"), null); + final PsiMethod method = createMethodFromText(text.trim() + "void m();", null); final PsiDocComment comment = method.getDocComment(); - assert comment != null : text; + if (comment == null) { + throw new IncorrectOperationException("Incorrect comment '" + text + "'"); + } return comment; } diff --git a/java/java-tests/testSrc/com/intellij/psi/impl/JavaElementFactoryTest.java b/java/java-tests/testSrc/com/intellij/psi/impl/JavaElementFactoryTest.java new file mode 100644 index 000000000000..5947eb9367d0 --- /dev/null +++ b/java/java-tests/testSrc/com/intellij/psi/impl/JavaElementFactoryTest.java @@ -0,0 +1,42 @@ +/* + * 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intellij.psi.impl; + +import com.intellij.psi.PsiElementFactory; +import com.intellij.testFramework.LightIdeaTestCase; +import com.intellij.util.IncorrectOperationException; + +public class JavaElementFactoryTest extends LightIdeaTestCase { + private PsiElementFactory myFactory; + + @Override + protected void setUp() throws Exception { + super.setUp(); + myFactory = getJavaFacade().getElementFactory(); + } + + public void testDocCommentTrimming() { + myFactory.createDocCommentFromText(" /** ... */"); + } + + public void testDocCommentEmpty() { + try { + myFactory.createDocCommentFromText(""); + fail(); + } + catch (IncorrectOperationException ignored) { } + } +}