From ac9fe766c4d02f7ebf5f6a45661d37d4d62b53ea Mon Sep 17 00:00:00 2001 From: anna Date: Thu, 10 Nov 2011 19:07:21 +0100 Subject: [PATCH] EA-31560 - IOE: PsiJavaParserFacadeImpl.createExpressionFromText --- .../daemon/impl/quickfix/SimplifyBooleanExpressionFix.java | 3 ++- .../beforeBrokenInsidePolyadic.java | 6 ++++++ .../com/intellij/openapi/progress/util/ProgressWindow.java | 3 +++ 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/simplifyBooleanExpression/beforeBrokenInsidePolyadic.java diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SimplifyBooleanExpressionFix.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SimplifyBooleanExpressionFix.java index d41073ea3ae0..096fdc09a8f5 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SimplifyBooleanExpressionFix.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/SimplifyBooleanExpressionFix.java @@ -29,6 +29,7 @@ import com.intellij.openapi.util.Ref; import com.intellij.psi.*; import com.intellij.psi.codeStyle.CodeStyleManager; import com.intellij.psi.tree.IElementType; +import com.intellij.psi.util.PsiTreeUtil; import com.intellij.psi.util.PsiUtil; import com.intellij.util.IncorrectOperationException; import org.jetbrains.annotations.NonNls; @@ -254,7 +255,7 @@ public class SimplifyBooleanExpressionFix implements IntentionAction { } else { final PsiJavaToken javaToken = expression.getTokenBeforeOperand(operand); - if (javaToken != null) { + if (javaToken != null && !PsiTreeUtil.hasErrorElements(operand)) { resultExpression = JavaPsiFacade.getElementFactory(expression.getProject()).createExpressionFromText(lExpr.getText() + javaToken.getText() + operand.getText(), expression); } else { resultExpression = null; diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/simplifyBooleanExpression/beforeBrokenInsidePolyadic.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/simplifyBooleanExpression/beforeBrokenInsidePolyadic.java new file mode 100644 index 000000000000..0254dfb5a9f6 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/simplifyBooleanExpression/beforeBrokenInsidePolyadic.java @@ -0,0 +1,6 @@ +// "Simplify boolean expression" "false" +class X { + void f(int a, int b, int c) { + if ( b - a == b - c - == b) return; + } +} diff --git a/platform/platform-impl/src/com/intellij/openapi/progress/util/ProgressWindow.java b/platform/platform-impl/src/com/intellij/openapi/progress/util/ProgressWindow.java index 0953838084c0..31414335234c 100644 --- a/platform/platform-impl/src/com/intellij/openapi/progress/util/ProgressWindow.java +++ b/platform/platform-impl/src/com/intellij/openapi/progress/util/ProgressWindow.java @@ -210,6 +210,9 @@ public class ProgressWindow extends BlockingProgressIndicator implements Disposa } }); } + if (!myWasShown && object instanceof PaintEvent){ + return false; + } return isStarted() && !isRunning(); } });