From e830f257496133d5d5a7810d6ccb732f89de88d8 Mon Sep 17 00:00:00 2001 From: Ekaterina Tuzova Date: Tue, 31 May 2011 16:14:19 +0400 Subject: [PATCH] fixed NPE in docstring quickfix --- .../python/actions/DocstringQuickFix.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/python/src/com/jetbrains/python/actions/DocstringQuickFix.java b/python/src/com/jetbrains/python/actions/DocstringQuickFix.java index 5d80c9aff862..b558894696f9 100644 --- a/python/src/com/jetbrains/python/actions/DocstringQuickFix.java +++ b/python/src/com/jetbrains/python/actions/DocstringQuickFix.java @@ -18,16 +18,18 @@ import org.jetbrains.annotations.NotNull; public class DocstringQuickFix implements LocalQuickFix { PyParameter myMissing; - String myMissingText; + String myMissingText = ""; String myUnexpected; String myPrefix; public DocstringQuickFix(PyParameter missing, String unexpected) { myMissing = missing; - if (myMissing.getText().startsWith("*")) - myMissingText = myMissing.getText(); - else - myMissingText = myMissing.getName(); + if (myMissing != null) { + if (myMissing.getText().startsWith("*")) + myMissingText = myMissing.getText(); + else + myMissingText = myMissing.getName(); + } myUnexpected = unexpected; } @@ -48,6 +50,7 @@ public class DocstringQuickFix implements LocalQuickFix { PyDocStringOwner docStringOwner = PsiTreeUtil.getParentOfType(descriptor.getPsiElement(), PyDocStringOwner.class); if (docStringOwner == null) return; PyStringLiteralExpression element = docStringOwner.getDocStringExpression(); + if (element == null) return; PyElementGenerator elementGenerator = PyElementGenerator.getInstance(project); PyDocumentationSettings documentationSettings = PyDocumentationSettings.getInstance(element.getProject()); if (documentationSettings.isEpydocFormat(element.getContainingFile())) @@ -64,7 +67,7 @@ public class DocstringQuickFix implements LocalQuickFix { } if (!replacement.equals(element.getText())) { PyStringLiteralExpression str = (PyStringLiteralExpression)elementGenerator.createFromText(LanguageLevel.forElement(element), - PyExpressionStatement.class, replacement.toString()).getExpression(); + PyExpressionStatement.class, replacement).getExpression(); element.replace(str); } }